[TLOZ]: Fix determinism / Add Location Name Groups / Remove Level 9 Junk Fill (#3670)
* [TLOZ]: Fix determinism / Add Location Name Groups / Remove Level 9 Junk Fill Axing the final uses of world.multiworld.random that were missed before, hopefully fixing the determinism issue brought up in Issue #3664 (at least on TLOZ's end, leaving SMZ3 alone). Also adding location name groups finally, as well as axing the Level 9 Junk Fill because with the new location name groups players can choose to exclude Level 9 with exclude locations instead. * location name groups * add take any item and sword cave location name groups * use sets like you're supposed to, silly
This commit is contained in:
parent
ff680b26cc
commit
8756f48e46
|
@ -80,7 +80,7 @@ def generate_itempool(tlozworld):
|
|||
location.item.classification = ItemClassification.progression
|
||||
|
||||
def get_pool_core(world):
|
||||
random = world.multiworld.random
|
||||
random = world.random
|
||||
|
||||
pool = []
|
||||
placed_items = {}
|
||||
|
@ -132,14 +132,6 @@ def get_pool_core(world):
|
|||
else:
|
||||
pool.append(fragment)
|
||||
|
||||
# Level 9 junk fill
|
||||
if world.options.ExpandedPool > 0:
|
||||
spots = random.sample(level_locations[8], len(level_locations[8]) // 2)
|
||||
for spot in spots:
|
||||
junk = random.choice(list(minor_items.keys()))
|
||||
placed_items[spot] = junk
|
||||
minor_items[junk] -= 1
|
||||
|
||||
# Finish Pool
|
||||
final_pool = basic_pool
|
||||
if world.options.ExpandedPool:
|
||||
|
|
|
@ -99,6 +99,14 @@ shop_locations = [
|
|||
"Potion Shop Item Left", "Potion Shop Item Middle", "Potion Shop Item Right"
|
||||
]
|
||||
|
||||
take_any_locations = [
|
||||
"Take Any Item Left", "Take Any Item Middle", "Take Any Item Right"
|
||||
]
|
||||
|
||||
sword_cave_locations = [
|
||||
"Starting Sword Cave", "White Sword Pond", "Magical Sword Grave"
|
||||
]
|
||||
|
||||
food_locations = [
|
||||
"Level 7 Map", "Level 7 Boss", "Level 7 Triforce", "Level 7 Key Drop (Goriyas)",
|
||||
"Level 7 Bomb Drop (Moldorms North)", "Level 7 Bomb Drop (Goriyas North)",
|
||||
|
|
|
@ -12,7 +12,8 @@ from BaseClasses import Item, Location, Region, Entrance, MultiWorld, ItemClassi
|
|||
from .ItemPool import generate_itempool, starting_weapons, dangerous_weapon_locations
|
||||
from .Items import item_table, item_prices, item_game_ids
|
||||
from .Locations import location_table, level_locations, major_locations, shop_locations, all_level_locations, \
|
||||
standard_level_locations, shop_price_location_ids, secret_money_ids, location_ids, food_locations
|
||||
standard_level_locations, shop_price_location_ids, secret_money_ids, location_ids, food_locations, \
|
||||
take_any_locations, sword_cave_locations
|
||||
from .Options import TlozOptions
|
||||
from .Rom import TLoZDeltaPatch, get_base_rom_path, first_quest_dungeon_items_early, first_quest_dungeon_items_late
|
||||
from .Rules import set_rules
|
||||
|
@ -87,6 +88,21 @@ class TLoZWorld(World):
|
|||
}
|
||||
}
|
||||
|
||||
location_name_groups = {
|
||||
"Shops": set(shop_locations),
|
||||
"Take Any": set(take_any_locations),
|
||||
"Sword Caves": set(sword_cave_locations),
|
||||
"Level 1": set(level_locations[0]),
|
||||
"Level 2": set(level_locations[1]),
|
||||
"Level 3": set(level_locations[2]),
|
||||
"Level 4": set(level_locations[3]),
|
||||
"Level 5": set(level_locations[4]),
|
||||
"Level 6": set(level_locations[5]),
|
||||
"Level 7": set(level_locations[6]),
|
||||
"Level 8": set(level_locations[7]),
|
||||
"Level 9": set(level_locations[8])
|
||||
}
|
||||
|
||||
for k, v in item_name_to_id.items():
|
||||
item_name_to_id[k] = v + base_id
|
||||
|
||||
|
@ -307,7 +323,7 @@ class TLoZWorld(World):
|
|||
def get_filler_item_name(self) -> str:
|
||||
if self.filler_items is None:
|
||||
self.filler_items = [item for item in item_table if item_table[item].classification == ItemClassification.filler]
|
||||
return self.multiworld.random.choice(self.filler_items)
|
||||
return self.random.choice(self.filler_items)
|
||||
|
||||
def fill_slot_data(self) -> Dict[str, Any]:
|
||||
if self.options.ExpandedPool:
|
||||
|
|
Loading…
Reference in New Issue