DS3: Added DLC Items/Locations + corresponding option and added an option to enable materials/consumables/estus randomization (#1301)

- Added more progressive locations and associated items.
- Added an option to enable materials/consumables/estus randomization, some players complain about the number of locations and the randomness of those items.
- Added an option to add DLC Items and Locations to the pool, the player must own both the ASHES OF ARIANDEL and the RINGED CITY DLC.

Co-authored-by: Br00ty <83629348+Br00ty@users.noreply.github.com>
Co-authored-by: Friðberg Reynir Traustason <fridberg.traustason@gmail.com>
This commit is contained in:
Marech
2023-02-26 06:35:03 +01:00
committed by GitHub
parent 6c460bcbf7
commit 062d6eeace
8 changed files with 542 additions and 52 deletions

View File

@@ -1,10 +1,18 @@
import sys
from BaseClasses import Item
from worlds.dark_souls_3.data.items_data import item_tables
from worlds.dark_souls_3.data.items_data import item_tables, dlc_shields_table, dlc_weapons_upgrade_10_table, \
dlc_weapons_upgrade_5_table, dlc_goods_table, dlc_spells_table, dlc_armor_table, dlc_ring_table, dlc_misc_table, dlc_goods_2_table
class DarkSouls3Item(Item):
game: str = "Dark Souls III"
dlc_set = {**dlc_shields_table, **dlc_weapons_upgrade_10_table, **dlc_weapons_upgrade_5_table,
**dlc_goods_table, **dlc_spells_table, **dlc_armor_table, **dlc_ring_table, **dlc_misc_table}
dlc_progressive = {**dlc_goods_2_table}
@staticmethod
def get_name_to_id() -> dict:
base_id = 100000
@@ -12,6 +20,17 @@ class DarkSouls3Item(Item):
output = {}
for i, table in enumerate(item_tables):
if len(table) > table_offset:
raise Exception("An item table has {} entries, that is more than {} entries (table #{})".format(len(table), table_offset, i))
output.update({name: id for id, name in enumerate(table, base_id + (table_offset * i))})
return output
@staticmethod
def is_dlc_item(name) -> bool:
return name in DarkSouls3Item.dlc_set
@staticmethod
def is_dlc_progressive(name) -> bool:
return name in DarkSouls3Item.dlc_progressive