diff --git a/Main.py b/Main.py index 0e03ff96..11f41aef 100644 --- a/Main.py +++ b/Main.py @@ -336,14 +336,14 @@ def main(args, seed=None): return get_entrance_to_region(entrance.parent_region) # collect ER hint info - er_hint_data = {player: {} for player in range(1, world.players + 1) if world.shuffle[player] != "vanilla"} + er_hint_data = {player: {} for player in range(1, world.players + 1) if world.shuffle[player] != "vanilla" or world.retro[player]} from Regions import RegionType for region in world.regions: if region.player in er_hint_data and region.locations: main_entrance = get_entrance_to_region(region) for location in region.locations: if type(location.address) == int: # skips events and crystals - if location.address >= SHOP_ID_START: continue + if location.address >= SHOP_ID_START + 33: continue if lookup_vanilla_location_to_entrance[location.address] != main_entrance.name: er_hint_data[region.player][location.address] = main_entrance.name @@ -370,6 +370,20 @@ def main(args, seed=None): checks_in_area[location.player]["Dark World"].append(location.address) checks_in_area[location.player]["Total"] += 1 + oldmancaves = [] + for region in [world.get_region("Old Man Sword Cave", player) for player in range(1, world.players + 1) if world.retro[player]]: + item = ItemFactory(region.shop.inventory[0]['item'], region.player) + player = region.player + location_id = SHOP_ID_START + 33 + + if region.type == RegionType.LightWorld: + checks_in_area[player]["Light World"].append(location_id) + else: + checks_in_area[player]["Dark World"].append(location_id) + checks_in_area[player]["Total"] += 1 + + er_hint_data[player][location_id] = get_entrance_to_region(region).name + oldmancaves.append(((location_id, player), (item.code, player))) precollected_items = [[] for player in range(world.players)] for item in world.precollected_items: @@ -401,7 +415,7 @@ def main(args, seed=None): "locations": [((location.address, location.player), (location.item.code, location.item.player)) for location in world.get_filled_locations() if - type(location.address) is int], + type(location.address) is int] + oldmancaves, "checks_in_area": checks_in_area, "server_options": get_options()["server_options"], "er_hint_data": er_hint_data, diff --git a/Regions.py b/Regions.py index da04b359..fdd03fae 100644 --- a/Regions.py +++ b/Regions.py @@ -804,7 +804,18 @@ lookup_vanilla_location_to_entrance = {1572883: 'Kings Grave Inner Rocks', 19125 0x140064: 'Misery Mire', 0x140058: 'Turtle Rock', 0x140007: 'Dark Death Mountain Ledge (West)', 0x140040: 'Ganons Tower', 0x140043: 'Ganons Tower', - 0x14003a: 'Ganons Tower', 0x14001f: 'Ganons Tower'} + 0x14003a: 'Ganons Tower', 0x14001f: 'Ganons Tower', + 0x400000: 'Cave Shop (Dark Death Mountain)', 0x400001: 'Cave Shop (Dark Death Mountain)', 0x400002: 'Cave Shop (Dark Death Mountain)', + 0x400003: 'Red Shield Shop', 0x400004: 'Red Shield Shop', 0x400005: 'Red Shield Shop', + 0x400006: 'Dark Lake Hylia Shop', 0x400007: 'Dark Lake Hylia Shop', 0x400008: 'Dark Lake Hylia Shop', + 0x400009: 'Dark World Lumberjack Shop', 0x40000a: 'Dark World Lumberjack Shop', 0x40000b: 'Dark World Lumberjack Shop', + 0x40000c: 'Village of Outcasts Shop', 0x40000d: 'Village of Outcasts Shop', 0x40000e: 'Village of Outcasts Shop', + 0x40000f: 'Dark World Potion Shop', 0x400010: 'Dark World Potion Shop', 0x400011: 'Dark World Potion Shop', + 0x400012: 'Light World Death Mountain Shop', 0x400013: 'Light World Death Mountain Shop', 0x400014: 'Light World Death Mountain Shop', + 0x400015: 'Kakariko Shop', 0x400016: 'Kakariko Shop', 0x400017: 'Kakariko Shop', + 0x400018: 'Cave Shop (Lake Hylia)', 0x400019: 'Cave Shop (Lake Hylia)', 0x40001a: 'Cave Shop (Lake Hylia)', + 0x40001b: 'Potion Shop', 0x40001c: 'Potion Shop', 0x40001d: 'Potion Shop', + 0x40001e: 'Capacity Upgrade', 0x40001f: 'Capacity Upgrade', 0x400020: 'Capacity Upgrade'} lookup_prizes = {location for location in location_table if location.endswith(" - Prize")} lookup_boss_drops = {location for location in location_table if location.endswith(" - Boss")} \ No newline at end of file