forked from mirror/Archipelago
Some checks failed
Analyze modified files / flake8 (push) Failing after 2m28s
Build / build-win (push) Has been cancelled
Build / build-ubuntu2204 (push) Has been cancelled
ctest / Test C++ ubuntu-latest (push) Has been cancelled
ctest / Test C++ windows-latest (push) Has been cancelled
Analyze modified files / mypy (push) Has been cancelled
Build and Publish Docker Images / Push Docker image to Docker Hub (push) Successful in 5m4s
Native Code Static Analysis / scan-build (push) Failing after 5m2s
type check / pyright (push) Successful in 1m7s
unittests / Test Python 3.11.2 ubuntu-latest (push) Failing after 16m23s
unittests / Test Python 3.12 ubuntu-latest (push) Failing after 28m19s
unittests / Test Python 3.13 ubuntu-latest (push) Failing after 14m49s
unittests / Test hosting with 3.13 on ubuntu-latest (push) Successful in 5m0s
unittests / Test Python 3.13 macos-latest (push) Has been cancelled
unittests / Test Python 3.11 windows-latest (push) Has been cancelled
unittests / Test Python 3.13 windows-latest (push) Has been cancelled
1997 lines
55 KiB
Python
1997 lines
55 KiB
Python
from .Addresses import *
|
|
|
|
VERSION = "0.3.0"
|
|
ROM_HASH = "f2dc6c4e093e4f8c6cbea80e8dbd62cb"
|
|
|
|
STARTING_FLAGS = [
|
|
# Starting flags (these are in the same memory block so can be simplified, but it's called once and this is
|
|
# easier to bugfix)
|
|
[PHAddr.adv_flags_0, 0xef],
|
|
[PHAddr.adv_flags_1, 0x34],
|
|
[PHAddr.adv_flags_2, 0x2e],
|
|
[PHAddr.adv_flags_3, 0x3],
|
|
[PHAddr.adv_flags_4, 0xed],
|
|
[PHAddr.adv_flags_5, 0xb0],
|
|
[PHAddr.adv_flags_6, 0x40],
|
|
[PHAddr.adv_flags_7, 0xab],
|
|
[PHAddr.adv_flags_8, 0xff],
|
|
[PHAddr.adv_flags_9, 0xfb],
|
|
[PHAddr.adv_flags_10, 0x2f],
|
|
[PHAddr.adv_flags_11, 0xfc],
|
|
[PHAddr.adv_flags_12, 0x3b],
|
|
[PHAddr.adv_flags_13, 0x0],
|
|
[PHAddr.adv_flags_14, 0x4],
|
|
[PHAddr.adv_flags_15, 0x0],
|
|
[PHAddr.adv_flags_16, 0xd9],
|
|
[PHAddr.adv_flags_17, 0x4f],
|
|
[PHAddr.adv_flags_18, 0x12],
|
|
[PHAddr.adv_flags_19, 0x4],
|
|
[PHAddr.adv_flags_20, 0x2],
|
|
[PHAddr.adv_flags_21, 0x7e],
|
|
[PHAddr.adv_flags_22, 0x4],
|
|
[PHAddr.adv_flags_23, 0xea],
|
|
[PHAddr.adv_flags_24, 0x47],
|
|
[PHAddr.adv_flags_25, 0x0],
|
|
[PHAddr.adv_flags_26, 0xf8],
|
|
[PHAddr.adv_flags_27, 0xdf],
|
|
[PHAddr.adv_flags_28, 0x35],
|
|
[PHAddr.adv_flags_29, 0xe0],
|
|
[PHAddr.adv_flags_30, 0x10],
|
|
[PHAddr.adv_flags_31, 0xe0],
|
|
[PHAddr.adv_flags_32, 0x4e],
|
|
[PHAddr.adv_flags_33, 0xf9],
|
|
[PHAddr.adv_flags_34, 0xf],
|
|
[PHAddr.adv_flags_35, 0x5],
|
|
[PHAddr.adv_flags_36, 0x31],
|
|
[PHAddr.adv_flags_37, 0x0],
|
|
[PHAddr.adv_flags_38, 0x60],
|
|
[PHAddr.adv_flags_39, 0x20],
|
|
[PHAddr.adv_flags_40, 0x26],
|
|
[PHAddr.adv_flags_41, 0xcc],
|
|
[PHAddr.adv_flags_42, 0x0],
|
|
[PHAddr.adv_flags_43, 0xc8],
|
|
[PHAddr.adv_flags_44, 0x1f],
|
|
[PHAddr.adv_flags_45, 0x0],
|
|
[PHAddr.adv_flags_46, 0x8],
|
|
[PHAddr.adv_flags_47, 0x48],
|
|
[PHAddr.adv_flags_48, 0x78],
|
|
[PHAddr.adv_flags_49, 0x0],
|
|
[PHAddr.adv_flags_50, 0x0],
|
|
[PHAddr.adv_flags_51, 0x0],
|
|
# Set item can use flags
|
|
[PHAddr.boomerang_bit, 0x01],
|
|
[PHAddr.shovel_bit, 0x01],
|
|
[PHAddr.grapple_bit, 0x01],
|
|
[PHAddr.hammer_bit, 0x01],
|
|
# Starting items, Phantom Hourglass
|
|
[PHAddr.inventory_5, 0x01],
|
|
# Show treasure/ship part prices
|
|
[PHAddr.show_ship_prices, [0xFF]*9],
|
|
[PHAddr.show_treasure_prices, 0xFF],
|
|
# Starting treasure at 0 so incr works properly
|
|
[PHAddr.pink_coral_count, 0],
|
|
[PHAddr.wpl_count, 0],
|
|
[PHAddr.dpl_count, 0],
|
|
[PHAddr.zora_scale_count, 0],
|
|
[PHAddr.goron_amber_count, 0],
|
|
[PHAddr.ruto_crown_count, 0],
|
|
[PHAddr.roc_feather_count, 0],
|
|
[PHAddr.regal_ring_count, 0],
|
|
]
|
|
|
|
STARTING_FROG_FLAGS = [
|
|
[PHAddr.adv_flags_38, 0xE0],
|
|
[PHAddr.adv_flags_39, 0x3F]
|
|
]
|
|
|
|
FOG_SETTINGS_FLAGS = [
|
|
[[PHAddr.adv_flags_6, 0xC0], [PHAddr.adv_flags_47, 0x58]],
|
|
[],
|
|
[[PHAddr.adv_flags_2, 0x3E]]
|
|
]
|
|
|
|
STAGE_FLAGS = {
|
|
11: [0xC4, 0xDC, 0x06, 0x00], # Mercay
|
|
39: [0x40, 0x00, 0x00, 0x00], # Mountain Passage
|
|
37: [0xFE, 0xBE, 0xFB, 0xAF], # TotOK
|
|
0: [0x82, 0xFC, 0x66, 0xED], # Sea
|
|
13: [0xEC, 0x18, 0x17, 0x00], # Ember
|
|
28: [0x8E, 0xB9, 0x00, 0x00], # ToF
|
|
12: [0x34, 0x01, 0x00, 0x00], # Molida
|
|
14: [0x02, 0x02, 0x00, 0x00], # Gusts
|
|
29: [0x00, 0x10, 0x00, 0x00], # ToW
|
|
30: [0x00, 0x00, 0x02, 0x00], # ToC
|
|
41: [0xC2, 0x10, 0xED, 0x00], # Ghost Ship
|
|
16: [0x84, 0x13, 0x00, 0xE0], # Goron Island
|
|
32: [0x00, 0x00, 0x30, 0xF0], # Goron Temple
|
|
15: [0x00, 0x3C, 0x00, 0x40], # Isle of Frost
|
|
31: [0x00, 0x00, 0xD0, 0x00], # Temple of Ice
|
|
21: [0xB6, 0x01, 0x00, 0x00], # Isle of the Dead
|
|
17: [0x12, 0x4C, 0x43, 0x00], # Isle of ruins
|
|
18: [0x10, 0x4C, 0x43, 0x00], # Isle of ruins
|
|
36: [0x20, 0x00, 0x00, 0x00], # Bremeur's Temple
|
|
33: [0x00, 0x36, 0x00, 0x00], # Mutoh's Temple
|
|
}
|
|
|
|
SKIP_OCEAN_FIGHTS_FLAGS = [0x86, 0xFC, 0x66, 0xFD]
|
|
SPAWN_B3_REAPLING_FLAGS = [0xC2, 0x10, 0xED, 0x08]
|
|
|
|
STAGES = {
|
|
0: "Sea",
|
|
1: "Cannon Game",
|
|
2: "Fishing",
|
|
3: "Salvage",
|
|
4: "Linebeck's Ship",
|
|
5: "Beedle's Ship",
|
|
6: "Man of Smiles' Ship",
|
|
7: "PoRL's Ship",
|
|
8: "SS Wayfarer",
|
|
9: "Wayaway's Ship",
|
|
10: "Nyave's Ship",
|
|
11: "Mercay Island",
|
|
12: "Molida Island",
|
|
13: "Isle of Ember",
|
|
14: "Isle of Gust",
|
|
15: "Isle of Frost",
|
|
16: "Goron Island",
|
|
17: "Isle of Ruins (High Water)",
|
|
18: "Isle of Ruins (Low Water)",
|
|
19: "Cannon Island",
|
|
20: "Bannan Island",
|
|
21: "Isle of the Dead",
|
|
22: "Zauz's Island",
|
|
23: "Spirit Island",
|
|
24: "Harrow Island",
|
|
25: "Maze Island",
|
|
26: "Uncharted Island",
|
|
27: "Dee Ess Island",
|
|
28: "Temple of Fire",
|
|
29: "Temple of Wind",
|
|
30: "Temple of Courage",
|
|
31: "Temple of Ice",
|
|
32: "Goron Temple",
|
|
33: "Mutoh's Temple",
|
|
34: "Doylan's Temple",
|
|
35: "Max's Temple",
|
|
36: "Bremeur's Temple",
|
|
37: "Temple of the Ocean King",
|
|
38: "Temple of the Ocean King Entrance",
|
|
39: "Mountain Passage",
|
|
40: "Cannon Island Cave",
|
|
41: "Ghost Ship",
|
|
42: "Cyclok",
|
|
43: "Blaaz",
|
|
44: "Crayk",
|
|
45: "Gleeok",
|
|
46: "Dongorongo",
|
|
47: "Eox",
|
|
48: "Cubus Sisters",
|
|
49: "Bellum",
|
|
50: "Bellum's Ghost Ship",
|
|
51: "Bellumbeck",
|
|
0x36: "Credits",
|
|
|
|
}
|
|
|
|
ISLANDS = [
|
|
"Mercay Island",
|
|
"Cannon Island",
|
|
"Isle of Ember",
|
|
"Molida Island",
|
|
"Spirit Island",
|
|
"Isle of Gust",
|
|
"Bannan Island",
|
|
"Zauz's Island",
|
|
"Uncharted Island",
|
|
"Goron Island",
|
|
"Harrow Island",
|
|
"Dee Ess Island",
|
|
"Isle of Frost",
|
|
"Isle of the Dead",
|
|
"Maze Island",
|
|
"Isle of Ruins"
|
|
]
|
|
|
|
SEA_REGIONS = [
|
|
"Ocean SW",
|
|
"Ocean NW",
|
|
"Ocean NE",
|
|
"Ocean SE",
|
|
"Ocean Unspecific"
|
|
]
|
|
|
|
SEA_CHARTS = [
|
|
"SW Sea Chart",
|
|
"NW Sea Chart",
|
|
"SE Sea Chart",
|
|
"NE Sea Chart",
|
|
]
|
|
|
|
TREASURE_MAPS = [
|
|
"Treasure Map #1 (Molida SW)",
|
|
"Treasure Map #2 (Mercay NE)",
|
|
"Treasure Map #3 (Gusts SW)",
|
|
"Treasure Map #4 (Bannan SE)",
|
|
"Treasure Map #5 (Molida N)",
|
|
"Treasure Map #6 (Bannan W)",
|
|
"Treasure Map #7 (Gusts E)",
|
|
"Treasure Map #8 (Mercay SE)",
|
|
"Treasure Map #9 (Cannon W)",
|
|
"Treasure Map #10 (Gusts SE)",
|
|
"Treasure Map #11 (Gusts N)",
|
|
"Treasure Map #12 (Dee Ess N)",
|
|
"Treasure Map #13 (Harrow E)",
|
|
"Treasure Map #14 (Goron NW)",
|
|
"Treasure Map #15 (Goron W)",
|
|
"Treasure Map #16 (Goron NE)",
|
|
"Treasure Map #17 (Frost S)",
|
|
"Treasure Map #18 (Cannon S)",
|
|
"Treasure Map #19 (Gusts NE)",
|
|
"Treasure Map #20 (Bannan E)",
|
|
"Treasure Map #21 (Molida NW)",
|
|
"Treasure Map #22 (Harrow S)",
|
|
"Treasure Map #23 (Frost NW)",
|
|
"Treasure Map #24 (Ruins W)",
|
|
"Treasure Map #25 (Dead E)",
|
|
"Treasure Map #26 (Ruins SW)",
|
|
"Treasure Map #27 (Maze E)",
|
|
"Treasure Map #28 (Ruins NW)",
|
|
"Treasure Map #29 (Maze W)",
|
|
"Treasure Map #30 (Ruins S)",
|
|
"Treasure Map #31 (Dead S)",
|
|
]
|
|
|
|
|
|
ITEM_GROUPS: dict[str, set[str]] = {
|
|
"Small Keys": {
|
|
"Small Key (Mountain Passage)",
|
|
"Small Key (Temple of the Ocean King)",
|
|
"Small Key (Temple of Fire)",
|
|
"Small Key (Temple of Wind)",
|
|
"Small Key (Temple of Courage)",
|
|
"Small Key (Temple of Ice)",
|
|
"Small Key (Mutoh's Temple)"
|
|
},
|
|
"Vanilla Metals": {
|
|
"Crimzonine",
|
|
"Azurine",
|
|
"Aquanine"
|
|
},
|
|
"Custom Metals": {
|
|
"Verdanine",
|
|
"Lavendine",
|
|
"Amberine",
|
|
"Vermilline",
|
|
"Burgundine",
|
|
"Crystaline",
|
|
"Carrotine",
|
|
"Olivine",
|
|
"Chartreusine",
|
|
"Violetine",
|
|
"Ceruline",
|
|
"Fuchsianine",
|
|
"Saffronine",
|
|
"Viridine",
|
|
"Sepianine",
|
|
"Apricotine",
|
|
"Scarletine",
|
|
"Coraline",
|
|
"Magentine",
|
|
"Cyanine",
|
|
"Mauvine",
|
|
"Lilacine",
|
|
"Indigorine",
|
|
"Junipine",
|
|
"Limeinine",
|
|
"Mintine",
|
|
"Umberine",
|
|
},
|
|
"Treasure Items": {
|
|
"Treasure: Pink Coral",
|
|
"Treasure: White Pearl Loop",
|
|
"Treasure: Dark Pearl Loop",
|
|
"Treasure: Zora Scale",
|
|
"Treasure: Goron Amber",
|
|
"Treasure: Ruto Crown",
|
|
"Treasure: Helmaroc Plume",
|
|
"Treasure: Regal Ring"
|
|
},
|
|
"Ammo Refills": {
|
|
"Refill: Bombs",
|
|
"Refill: Arrows",
|
|
"Refill: Bombchus",
|
|
"Refill: Health",
|
|
},
|
|
"Treasure Maps": set(TREASURE_MAPS),
|
|
"Items With Ammo": {
|
|
"Bombs (Progressive)",
|
|
"Bombchus (Progressive)",
|
|
"Bow (Progressive)",
|
|
},
|
|
"Items Without Ammo": {
|
|
"Boomerang",
|
|
"Grappling Hook",
|
|
"Shovel",
|
|
"Hammer",
|
|
},
|
|
"Spirits": {
|
|
"Spirit of Power (Progressive)",
|
|
"Spirit of Wisdom (Progressive)",
|
|
"Spirit of Courage (Progressive)",
|
|
},
|
|
"Ship Items": {
|
|
"Cannon",
|
|
"Salvage Arm",
|
|
"Fishing Rod",
|
|
"Big Catch Lure",
|
|
"Cyclone Slate",
|
|
},
|
|
"Fish": {
|
|
"Fish: Skippyjack",
|
|
"Fish: Toona",
|
|
"Fish: Loovar",
|
|
"Fish: Rusty Swordfish",
|
|
"Fish: Legendary Neptoona",
|
|
"Fish: Stowfish"
|
|
},
|
|
"Sea Charts": set(SEA_CHARTS),
|
|
"Upgrades": {
|
|
"Heart Container",
|
|
"Sand of Hours",
|
|
"Swordsman's Scroll",
|
|
},
|
|
"Rupees": {
|
|
"Green Rupee (1)",
|
|
"Blue Rupee (5)",
|
|
"Red Rupee (20)",
|
|
"Big Green Rupee (100)",
|
|
"Big Red Rupee (200)",
|
|
"Gold Rupee (300)",
|
|
"Rupoor (-10)",
|
|
"Big Rupoor (-50)",
|
|
"Pre-Alpha Rupee (5000)",
|
|
},
|
|
"Boss Keys": {
|
|
"Boss Key (Temple of Fire)",
|
|
"Boss Key (Temple of Wind)",
|
|
"Boss Key (Temple of Courage)",
|
|
"Boss Key (Goron Temple)",
|
|
"Boss Key (Temple of Ice)",
|
|
"Boss Key (Mutoh's Temple)",
|
|
},
|
|
"Single Spirit Gems": {
|
|
"Power Gem",
|
|
"Wisdom Gem",
|
|
"Courage Gem",
|
|
},
|
|
"Spirit Gem Packs": {
|
|
"Power Gem Pack",
|
|
"Wisdom Gem Pack",
|
|
"Courage Gem Pack",
|
|
},
|
|
|
|
"Unique Crystal Items": {
|
|
"Triangle Pedestal B8 (Temple of the Ocean King)",
|
|
"Triangle Pedestal B9 (Temple of the Ocean King)",
|
|
"Round Pedestal B8 (Temple of the Ocean King)",
|
|
"Round Pedestal B9 (Temple of the Ocean King)",
|
|
"Square Pedestal West (Temple of the Ocean King)",
|
|
"Square Pedestal Center (Temple of the Ocean King)",
|
|
"Square Pedestal North (Temple of Courage)",
|
|
"Square Pedestal South (Temple of Courage)",
|
|
"Triangle Crystal (Ghost Ship)",
|
|
"Round Crystal (Ghost Ship)",
|
|
},
|
|
"Regular Crystal Items": {
|
|
"Square Crystal (Temple of Courage)",
|
|
"Triangle Crystal (Ghost Ship)",
|
|
"Round Crystal (Ghost Ship)",
|
|
"Round Crystal (Temple of the Ocean King)",
|
|
"Triangle Crystal (Temple of the Ocean King)",
|
|
"Square Crystal (Temple of the Ocean King)",
|
|
},
|
|
"Global Crystal Items": {
|
|
"Square Crystals",
|
|
"Round Crystals",
|
|
"Triangle Crystals",
|
|
},
|
|
"Unique Force Gems": {
|
|
"Force Gem (B3)",
|
|
"Force Gem (B12)",
|
|
},
|
|
"All Force Gems": {
|
|
"Force Gem (B3)",
|
|
"Force Gem (B12)",
|
|
"Force Gems"
|
|
},
|
|
"Collection Screen Keys": {
|
|
"Sun Key",
|
|
"Ghost Key",
|
|
"King's Key",
|
|
"Regal Necklace",
|
|
},
|
|
"Trade Quest Items": {
|
|
"Hero's New Clothes",
|
|
"Kaleidoscope",
|
|
"Guard Notebook",
|
|
"Wood Heart",
|
|
},
|
|
"Crests": {
|
|
"Courage Crest",
|
|
"Triforce Crest",
|
|
},
|
|
"Golden Frog Glyphs": {
|
|
"Golden Frog Glyph X",
|
|
"Golden Frog Glyph Phi",
|
|
"Golden Frog Glyph N",
|
|
"Golden Frog Glyph Omega",
|
|
"Golden Frog Glyph W",
|
|
"Golden Frog Glyph Square"
|
|
},
|
|
"Ships": {
|
|
# "S.S. Linebeck",
|
|
"Ship: Bright Ship",
|
|
"Ship: Iron Ship",
|
|
"Ship: Stone Ship",
|
|
"Ship: Vintage Ship",
|
|
"Ship: Demon Ship",
|
|
"Ship: Tropical Ship",
|
|
"Ship: Dignified Ship",
|
|
"Ship: Golden Ship",
|
|
},
|
|
"Technical Items": {
|
|
"Treasure",
|
|
"Ship Part",
|
|
"Potion",
|
|
"Nothing!",
|
|
"Sand of Hours (Boss)",
|
|
"Sand of Hours (Small)",
|
|
"Spirit of Courage (White)"
|
|
},
|
|
"Potions": {
|
|
"Red Potion",
|
|
"Purple Potion",
|
|
"Yellow Potion",
|
|
},
|
|
"Rupoors": {
|
|
"Rupoor (-10)",
|
|
"Big Rupoor (-50)",
|
|
},
|
|
"Swords": {
|
|
"Sword (Progressive)",
|
|
"Oshus' Sword",
|
|
"Phantom Sword",
|
|
},
|
|
"Map Warp Unlocks": {
|
|
"Map Warp: Mercay",
|
|
"Map Warp: Cannon",
|
|
"Map Warp: Ember",
|
|
"Map Warp: Molida",
|
|
"Map Warp: Spirit",
|
|
"Map Warp: Gust",
|
|
"Map Warp: Bannan",
|
|
"Map Warp: Uncharted",
|
|
"Map Warp: Zauz",
|
|
"Map Warp: Goron",
|
|
"Map Warp: Frost",
|
|
"Map Warp: Harrow",
|
|
"Map Warp: Dee Ess",
|
|
"Map Warp: Isle of the Dead",
|
|
"Map Warp: Ruins",
|
|
"Map Warp: Maze",
|
|
}
|
|
}
|
|
|
|
# Item Aliases
|
|
ITEM_GROUPS |= {
|
|
|
|
"Sword": ITEM_GROUPS["Swords"],
|
|
"Bombs": {"Bombs (Progressive)"},
|
|
"Bow": {"Bow (Progressive)"},
|
|
"Quiver": {"Bow (Progressive)"},
|
|
"Bombchus": {"Bombchus (Progressive)"},
|
|
"Chus": {"Bombchus (Progressive)"},
|
|
"Spade": {"Shovel"},
|
|
"Rang": {"Boomerang"},
|
|
"Grapple": {"Grappling Hook"},
|
|
|
|
"Spirit of Power": {"Spirit of Power (Progressive)"},
|
|
"Spirit of Wisdom": {"Spirit of Wisdom (Progressive)"},
|
|
"Spirit of Courage": {"Spirit of Courage (Progressive)"},
|
|
"SoP": {"Spirit of Power (Progressive)"},
|
|
"SoW": {"Spirit of Wisdom (Progressive)"},
|
|
"SoC": {"Spirit of Courage (Progressive)"},
|
|
|
|
"Map 1": {"Treasure Map #1 (Molida SW)"},
|
|
"Map 2": {"Treasure Map #2 (Mercay NE)"},
|
|
"Map 3": {"Treasure Map #3 (Gusts SW)"},
|
|
"Map 4": {"Treasure Map #4 (Bannan SE)"},
|
|
"Map 5": {"Treasure Map #5 (Molida N)"},
|
|
"Map 6": {"Treasure Map #6 (Bannan W)"},
|
|
"Map 7": {"Treasure Map #7 (Gusts E)"},
|
|
"Map 8": {"Treasure Map #8 (Mercay SE)"},
|
|
"Map 9": {"Treasure Map #9 (Cannon W)"},
|
|
"Map 10": {"Treasure Map #10 (Gusts SE)"},
|
|
"Map 11": {"Treasure Map #11 (Gusts N)"},
|
|
"Map 12": {"Treasure Map #12 (Dee Ess N)"},
|
|
"Map 13": {"Treasure Map #13 (Harrow E)"},
|
|
"Map 14": {"Treasure Map #14 (Goron NW)"},
|
|
"Map 15": {"Treasure Map #15 (Goron W)"},
|
|
"Map 16": {"Treasure Map #16 (Goron NE)"},
|
|
"Map 17": {"Treasure Map #17 (Frost S)"},
|
|
"Map 18": {"Treasure Map #18 (Cannon S)"},
|
|
"Map 19": {"Treasure Map #19 (Gusts NE)"},
|
|
"Map 20": {"Treasure Map #20 (Bannan E)"},
|
|
"Map 21": {"Treasure Map #21 (Molida NW)"},
|
|
"Map 22": {"Treasure Map #22 (Harrow S)"},
|
|
"Map 23": {"Treasure Map #23 (Frost NW)"},
|
|
"Map 24": {"Treasure Map #24 (Ruins W)"},
|
|
"Map 25": {"Treasure Map #25 (Dead E)"},
|
|
"Map 26": {"Treasure Map #26 (Ruins SW)"},
|
|
"Map 27": {"Treasure Map #27 (Maze E)"},
|
|
"Map 28": {"Treasure Map #28 (Ruins NW)"},
|
|
"Map 29": {"Treasure Map #29 (Maze W)"},
|
|
"Map 30": {"Treasure Map #30 (Ruins S)"},
|
|
"Map 31": {"Treasure Map #31 (Dead S)"},
|
|
|
|
"Small Key TotOK": {"Small Key (Temple of the Ocean King)"},
|
|
"Small Key MP": {"Small Key (Mountain Passage)"},
|
|
"Small Key ToF": {"Small Key (Temple of Fire)"},
|
|
"Small Key ToW": {"Small Key (Temple of Wind)"},
|
|
"Small Key ToC": {"Small Key (Temple of Courage)"},
|
|
"Small Key ToI": {"Small Key (Temple of Ice)"},
|
|
"Small Key MT": {"Small Key (Mutoh's Temple)"},
|
|
|
|
"Boss Key ToF": {"Boss Key (Temple of Fire)"},
|
|
"Boss Key ToW": {"Boss Key (Temple of Wind)"},
|
|
"Boss Key ToC": {"Boss Key (Temple of Courage)"},
|
|
"Boss Key GT": {"Boss Key (Goron Temple)"},
|
|
"Boss Key ToI": {"Boss Key (Temple of Ice)"},
|
|
"Boss Key MT": {"Boss Key (Mutoh's Temple)"},
|
|
|
|
}
|
|
|
|
# Combo groups
|
|
ITEM_GROUPS |= {
|
|
"Metals":
|
|
ITEM_GROUPS["Vanilla Metals"] |
|
|
ITEM_GROUPS["Custom Metals"] |
|
|
{"Additional Rare Metal"},
|
|
"Equipable Items":
|
|
ITEM_GROUPS["Items With Ammo"] |
|
|
ITEM_GROUPS["Items Without Ammo"],
|
|
"Fishing Items": {
|
|
"Fishing Rod",
|
|
"Big Catch Lure",
|
|
"Swordfish Shadows",
|
|
} |
|
|
ITEM_GROUPS["Fish"],
|
|
"Regular Pedestal Items":
|
|
ITEM_GROUPS["Regular Crystal Items"] |
|
|
ITEM_GROUPS["Unique Force Gems"],
|
|
"Unique Pedestal Items":
|
|
ITEM_GROUPS["Unique Force Gems"] |
|
|
ITEM_GROUPS["Unique Crystal Items"],
|
|
"Global Pedestal Items":
|
|
ITEM_GROUPS["Global Crystal Items"] |
|
|
{"Force Gems"},
|
|
"Spirit Gems":
|
|
ITEM_GROUPS["Single Spirit Gems"] |
|
|
ITEM_GROUPS["Spirit Gem Packs"],
|
|
}
|
|
|
|
ITEM_GROUPS |= {
|
|
"Shape Crystals":
|
|
ITEM_GROUPS["Unique Crystal Items"] |
|
|
ITEM_GROUPS["Regular Crystal Items"] |
|
|
ITEM_GROUPS["Global Crystal Items"],
|
|
"Pedestal Items":
|
|
ITEM_GROUPS["Regular Pedestal Items"] |
|
|
ITEM_GROUPS["Unique Pedestal Items"] |
|
|
ITEM_GROUPS["Global Pedestal Items"],
|
|
"Player Items": {
|
|
"Shield",
|
|
} | ITEM_GROUPS["Equipable Items"] |
|
|
ITEM_GROUPS["Swords"],
|
|
}
|
|
|
|
ITEM_GROUPS |= {
|
|
"Throwable Keys":
|
|
ITEM_GROUPS["Boss Keys"] |
|
|
ITEM_GROUPS["Pedestal Items"],
|
|
"Keys":
|
|
ITEM_GROUPS["Collection Screen Keys"] |
|
|
ITEM_GROUPS["Small Keys"] |
|
|
ITEM_GROUPS["Boss Keys"] |
|
|
ITEM_GROUPS["Pedestal Items"],
|
|
}
|
|
|
|
STAGE_LOCATION_GROUPS = {
|
|
"Mercay Island": [
|
|
"Sword Cave Chest",
|
|
"Mercay SW Clear Rocks",
|
|
"Mercay SW Tree Dig",
|
|
"Mercay SE Cucco Chest",
|
|
"Mercay NE Bonk Tree",
|
|
"Eye Bridge Cave Chest",
|
|
"Mercay SE Ledge Chest West",
|
|
"Mercay SE Ledge Chest East",
|
|
"Long Bridge Cave Chest",
|
|
"Mercay NE Freedle Island Chest",
|
|
"Mercay NE Freedle Gift Item",
|
|
"Mercay SE Ojibe (Docks Guy) Item",
|
|
"Shipyard Chest",
|
|
"Oshus Spirit Gem",
|
|
"Oshus Phantom Sword",
|
|
"Island Shop Power Gem",
|
|
"Island Shop Quiver",
|
|
"Island Shop Bombchu Bag",
|
|
"Island Shop Heart Container",
|
|
"TotOK Lobby Phantom Hourglass",
|
|
"Mountain Passage 1F Entrance Chest",
|
|
"Mountain Passage 1F Side Chest",
|
|
"Mountain Passage 1F Key Drop",
|
|
"Mountain Passage 2F Rat Key",
|
|
],
|
|
"Mountain Passage": [
|
|
"Mountain Passage 1F Entrance Chest",
|
|
"Mountain Passage 1F Side Chest",
|
|
"Mountain Passage 1F Key Drop",
|
|
"Mountain Passage 2F Rat Key",
|
|
],
|
|
"Beedle's Ship": [
|
|
"Beedle Shop Bomb Bag",
|
|
"Beedle Shop Wisdom Gem",
|
|
"Masked Beedle Heart Container",
|
|
"Masked Beedle Courage Gem",
|
|
"Beedle Membership Bronze",
|
|
"Beedle Membership Silver",
|
|
"Beedle Membership Gold",
|
|
"Beedle Membership Platinum",
|
|
"Beedle Membership VIP",
|
|
],
|
|
"Temple of the Ocean King": [
|
|
"TotOK 1F Sea Chart Chest",
|
|
"TotOK 1F Linebeck Key",
|
|
"TotOK 1F Empty Chest",
|
|
"TotOK B1 Small Key",
|
|
"TotOK B1 Shoot Eye Chest",
|
|
"TotOK B1 Phantom Chest",
|
|
"TotOK B2 Bombchu Chest",
|
|
"TotOK B2 Phantom Chest",
|
|
"TotOK B2 Small Key",
|
|
"TotOK B3 Bow Chest",
|
|
"TotOK B3 Phantom Chest",
|
|
"TotOK B3 NW Chest",
|
|
"TotOK B3 SW Chest",
|
|
"TotOK B3 SE Chest",
|
|
"TotOK B3 Small Key",
|
|
"TotOK B3.5 Sea Chart Chest",
|
|
"TotOK B4 Phantom Eye Chest",
|
|
"TotOK B4 Phantom Chest",
|
|
"TotOK B4 Small Key",
|
|
"TotOK B5 Alt Path Chest",
|
|
"TotOK B5 Chest",
|
|
"TotOK B6 Phantom Chest",
|
|
"TotOK B6 Bow Chest",
|
|
"TotOK B6 Courage Crest",
|
|
"TotOK B7 North Chest",
|
|
"TotOK B7 Peg Chest",
|
|
"TotOK B7 Phantom Chest",
|
|
"TotOK B8 2 Crystals Chest",
|
|
"TotOK B8 Phantom Chest",
|
|
"TotOK B9 NW Chest",
|
|
"TotOK B9 Wizzrobe Chest",
|
|
"TotOK B9 Phantom Chest",
|
|
"TotOK B9.5 Sea Chart Chest",
|
|
"TotOK B10 Hammer Switch Chest",
|
|
"TotOK B10 Phantom Chest",
|
|
"TotOK B10 Phantom Eye Chest",
|
|
"TotOK B10 Small Key",
|
|
"TotOK B11 Phantom Eye Chest",
|
|
"TotOK B11 Phantom Chest",
|
|
"TotOK B12 NE Chest",
|
|
"TotOK B12 NW Chest",
|
|
"TotOK B12 Hammer Chest",
|
|
"TotOK B12 Kill Everything Chest",
|
|
"TotOK B12 Phantom Chest",
|
|
"TotOK B13 Sea Chart Chest",
|
|
"GOAL: Triforce Door",
|
|
],
|
|
"Ocean": [
|
|
"Ocean SW Salvage Courage Crest",
|
|
"Ocean SW Golden Frog X",
|
|
"Ocean SW Golden Frog Phi",
|
|
"Ocean NW Golden Frog N",
|
|
"Ocean SE Golden Frog Omega",
|
|
"Ocean SE Golden Frog W",
|
|
"Ocean NE Golden Frog Square",
|
|
"Nyave Gift",
|
|
"Nyave Trade Quest Item",
|
|
"Prince of Red Lion Combat Reward",
|
|
"Prince of Red Lions Trade Quest Item",
|
|
"Hoiger Howgendoogen Trade Quest Item",
|
|
"Man Of Smiles' Item 1",
|
|
"Man Of Smiles' Item 2",
|
|
"Man of Smiles' Prize Postcard",
|
|
"Ocean Pirate Ambush Item",
|
|
"Beedle Shop Bomb Bag",
|
|
"Beedle Shop Wisdom Gem",
|
|
"Beedle Membership Bronze",
|
|
"Beedle Membership Silver",
|
|
"Beedle Membership Gold",
|
|
"Beedle Membership Platinum",
|
|
"Beedle Membership VIP",
|
|
"Masked Beedle Heart Container",
|
|
"Masked Beedle Courage Gem",
|
|
"Fishing Catch Skippyjack",
|
|
"Fishing Catch Toona",
|
|
"Fishing Catch Loovar",
|
|
"Fishing Catch Rusty Swordfish",
|
|
"Fishing Catch Legendary Neptoona",
|
|
"Fishing Catch Stowfish",
|
|
],
|
|
"Open Ocean": [
|
|
"Ocean SW Salvage Courage Crest",
|
|
"Ocean SW Golden Frog X",
|
|
"Ocean SW Golden Frog Phi",
|
|
"Ocean NW Golden Frog N",
|
|
"Ocean SE Golden Frog Omega",
|
|
"Ocean SE Golden Frog W",
|
|
"Ocean NE Golden Frog Square",
|
|
"Fishing Catch Skippyjack",
|
|
"Fishing Catch Toona",
|
|
"Fishing Catch Loovar",
|
|
"Fishing Catch Rusty Swordfish",
|
|
"Fishing Catch Legendary Neptoona",
|
|
"Fishing Catch Stowfish",
|
|
],
|
|
"Ocean SW": [
|
|
"Ocean SW Salvage Courage Crest",
|
|
"Ocean SW Golden Frog X",
|
|
"Ocean SW Golden Frog Phi",
|
|
"Nyave Gift",
|
|
"Nyave Trade Quest Item",
|
|
"Ocean SW Salvage #1 Molida SW",
|
|
"Ocean SW Salvage #2 Mercay NE",
|
|
"Ocean SW Salvage #5 Molida N",
|
|
"Ocean SW Salvage #8 Mercay SE",
|
|
"Ocean SW Salvage #9 Cannon W",
|
|
"Ocean SW Salvage #18 Cannon S",
|
|
"Ocean SW Salvage #21 Molida NW",
|
|
],
|
|
"Ocean NW": [
|
|
"Ocean NW Golden Frog N",
|
|
"Prince of Red Lion Combat Reward",
|
|
"Prince of Red Lions Trade Quest Item",
|
|
"Ocean NW Salvage #3 Gusts SW",
|
|
"Ocean NW Salvage #4 Bannan SE",
|
|
"Ocean NW Salvage #6 Bannan W",
|
|
"Ocean NW Salvage #7 Gusts E",
|
|
"Ocean NW Salvage #10 Gusts SE",
|
|
"Ocean NW Salvage #11 Gusts N",
|
|
"Ocean NW Salvage #19 Gusts NE",
|
|
"Ocean NW Salvage #20 Bannan E",
|
|
],
|
|
"Ocean SE": [
|
|
"Ocean SE Golden Frog Omega",
|
|
"Ocean SE Golden Frog W",
|
|
"Hoiger Howgendoogen Trade Quest Item",
|
|
"Ocean SE Salvage #12 Dee Ess N",
|
|
"Ocean SE Salvage #13 Harrow E",
|
|
"Ocean SE Salvage #14 Goron NW",
|
|
"Ocean SE Salvage #15 Goron W",
|
|
"Ocean SE Salvage #16 Goron NE",
|
|
"Ocean SE Salvage #17 Frost S",
|
|
"Ocean SE Salvage #22 Harrow S",
|
|
"Ocean SE Salvage #23 Frost NW",
|
|
],
|
|
"Ocean NE": [
|
|
"Ocean NE Golden Frog Square",
|
|
"Man Of Smiles' Item 1",
|
|
"Man Of Smiles' Item 2",
|
|
"Man of Smiles' Prize Postcard",
|
|
"Ocean NE Salvage #24 Ruins W",
|
|
"Ocean NE Salvage #25 Dead E",
|
|
"Ocean NE Salvage #26 Ruins SW",
|
|
"Ocean NE Salvage #27 Maze E",
|
|
"Ocean NE Salvage #28 Ruins NW",
|
|
"Ocean NE Salvage #29 Maze W",
|
|
"Ocean NE Salvage #30 Ruins S",
|
|
"Ocean NE Salvage #31 Dead S",
|
|
],
|
|
"Ocean Unspecific": [
|
|
"Ocean Pirate Ambush Item",
|
|
"Beedle Shop Bomb Bag",
|
|
"Beedle Shop Wisdom Gem",
|
|
"Masked Beedle Heart Container",
|
|
"Masked Beedle Courage Gem",
|
|
"Fishing Catch Skippyjack",
|
|
"Fishing Catch Toona",
|
|
"Fishing Catch Loovar",
|
|
"Fishing Catch Rusty Swordfish",
|
|
"Fishing Catch Legendary Neptoona",
|
|
"Fishing Catch Stowfish",
|
|
"Beedle Membership Bronze",
|
|
"Beedle Membership Silver",
|
|
"Beedle Membership Gold",
|
|
"Beedle Membership Platinum",
|
|
"Beedle Membership VIP",
|
|
],
|
|
"Traveller Ships": [
|
|
"Nyave Gift",
|
|
"Nyave Trade Quest Item",
|
|
"Prince of Red Lion Combat Reward",
|
|
"Prince of Red Lions Trade Quest Item",
|
|
"Hoiger Howgendoogen Trade Quest Item",
|
|
"Man Of Smiles' Item 1",
|
|
"Man Of Smiles' Item 2",
|
|
"Man of Smiles' Prize Postcard",
|
|
],
|
|
"Ships": [
|
|
"Nyave Gift",
|
|
"Nyave Trade Quest Item",
|
|
"Prince of Red Lion Combat Reward",
|
|
"Prince of Red Lions Trade Quest Item",
|
|
"Hoiger Howgendoogen Trade Quest Item",
|
|
"Man Of Smiles' Item 1",
|
|
"Man Of Smiles' Item 2",
|
|
"Man of Smiles' Prize Postcard",
|
|
"Ocean Pirate Ambush Item",
|
|
"Beedle Shop Bomb Bag",
|
|
"Beedle Shop Wisdom Gem",
|
|
"Masked Beedle Heart Container",
|
|
"Masked Beedle Courage Gem",
|
|
"Beedle Membership Bronze",
|
|
"Beedle Membership Silver",
|
|
"Beedle Membership Gold",
|
|
"Beedle Membership Platinum",
|
|
"Beedle Membership VIP",
|
|
],
|
|
"Nyave's Ship": [
|
|
"Nyave Gift",
|
|
"Nyave Trade Quest Item",
|
|
],
|
|
"Cannon Island": [
|
|
"Cannon Island Bee Chest",
|
|
"Cannon Island Cliff Chest",
|
|
"Cannon Island Bonk Tree",
|
|
"Cannon Island East Dig",
|
|
"Eddo's Cannon",
|
|
"Eddo's Salvage Arm",
|
|
"Cannon Island SE Dig",
|
|
"Cannon Island Bee Dig",
|
|
"Bomb Flower Cave Chest",
|
|
],
|
|
"Isle of Ember": [
|
|
"Astrid's Basement Dig",
|
|
"Isle of Ember West Grapple Chest",
|
|
"Isle of Ember East Summit Dig",
|
|
"Isle of Ember West Summit Chest",
|
|
"Astrid After Fire Temple Gift",
|
|
],
|
|
"Temple of Fire": [
|
|
"Temple of Fire 1F Keese Chest",
|
|
"Temple of Fire 1F Maze Chest",
|
|
"Temple of Fire 2F Boomerang Chest",
|
|
"Temple of Fire 2F Fire Keese Chest",
|
|
"Temple of Fire 2F Rat Key",
|
|
"Temple of Fire 3F Key Drop",
|
|
"Temple of Fire 3F Boss Key Chest",
|
|
"Blaaz Heart Container",
|
|
"Blaaz Boss Reward",
|
|
],
|
|
"Blaaz": [
|
|
"Blaaz Heart Container",
|
|
"Blaaz Boss Reward",
|
|
],
|
|
"Molida Island": [
|
|
"Potato's House Chest",
|
|
"Molida Island South Romanos Tree Dig",
|
|
"Sun Lake Cave Wayfarer Hideaway Chest",
|
|
"Sun Lake Cave Grapple Chest",
|
|
"Sun Lake Cave Geozard Dig",
|
|
"Shovel Hideout Chest",
|
|
"Shovel Hideout Dig",
|
|
"Molida Island North Cliff Chest",
|
|
"Molida Island South Cucco Grapple Tree Dig",
|
|
"Sun Lake Cave North Drop Chest",
|
|
"Molida Island North Grapple Chest",
|
|
"Archery Minigame 1700",
|
|
"Archery Minigame 2000",
|
|
"Molida Island South Cucco Grapple Small Island Dig",
|
|
],
|
|
"Temple of Courage": [
|
|
"Temple of Courage 1F Bomb Alcove Chest",
|
|
"Temple of Courage 1F Raised Platform Chest",
|
|
"Temple of Courage 1F Map Room Chest East",
|
|
"Temple of Courage 1F Map Room Chest West",
|
|
"Temple of Courage 1F Pols Voice Key",
|
|
"Temple of Courage 2F Beamos Maze Chest",
|
|
"Temple of Courage B1 Maze Chest",
|
|
"Temple of Courage B1 Bow Chest",
|
|
"Temple of Courage 2F Moving Platform Chest",
|
|
"Temple of Courage 2F Spike Corridor Chest",
|
|
"Temple of Courage B1 Torch Room Secret Chest",
|
|
"Temple of Courage 1F Pols Voice Key 2",
|
|
"Temple of Courage 2F Boss Key Chest",
|
|
"Temple of Courage 3F Before Boss Chest",
|
|
"Crayk Boss Reward",
|
|
"Crayk Sand of Hours",
|
|
"Crayk Heart Container",
|
|
],
|
|
"Crayk": [
|
|
"Crayk Boss Reward",
|
|
"Crayk Sand of Hours",
|
|
"Crayk Heart Container",
|
|
],
|
|
"Spirit Island": [
|
|
"Spirit Island Outside Chest",
|
|
"Spirit Island Gauntlet Chest",
|
|
"Spirit Shrine Power Upgrade Level 1",
|
|
"Spirit Shrine Power Upgrade Level 2",
|
|
"Spirit Shrine Wisdom Upgrade Level 1",
|
|
"Spirit Shrine Wisdom Upgrade Level 2",
|
|
"Spirit Shrine Courage Upgrade Level 1",
|
|
"Spirit Shrine Courage Upgrade Level 2",
|
|
],
|
|
"PoRL's Ship": [
|
|
"Prince of Red Lion Combat Reward",
|
|
"Prince of Red Lions Trade Quest Item",
|
|
],
|
|
"Isle of Gust": [
|
|
"Tiled Hideout Chest",
|
|
"Miniblin Cave North Chest",
|
|
"Miniblin Cave South Chest",
|
|
"Isle of Gust South NE Dig",
|
|
"Isle of Gust South NW Chest",
|
|
"Isle of Gust North Dig",
|
|
"Isle of Gust North Sandworm Chest",
|
|
],
|
|
"Temple of Wind": [
|
|
"Temple of Wind B1 SE Corner Chest",
|
|
"Temple of Wind B1 Ledge Chest",
|
|
"Temple of Wind B2 Chest",
|
|
"Temple of Wind B2 Bombable Wall Item",
|
|
"Temple of Wind B1 Key Drop",
|
|
"Temple of Wind B2 Bomb Bag Chest",
|
|
"Temple of Wind 1F Boss Key Chest",
|
|
"Cyclok Sand of Hours",
|
|
"Cyclok Boss Reward",
|
|
"Cyclok Heart Container",
|
|
],
|
|
"Cyclok": [
|
|
"Cyclok Sand of Hours",
|
|
"Cyclok Boss Reward",
|
|
"Cyclok Heart Container",
|
|
],
|
|
"Bannan Island": [
|
|
"Bannan Island West Grapple Chest",
|
|
"Bannan Island Wayfarers Dig",
|
|
"Wayfarer's Gift",
|
|
"Bannan Island East Grapple Chest East",
|
|
"Bannan Island East Grapple Chest West",
|
|
"Bannan Island East Grapple Dig",
|
|
"Bannan Island East Cannon Game",
|
|
"Wayfarer Trade Quest Chest",
|
|
"Wayfarer Give Loovar",
|
|
"Wayfarer Give Rusty Swordfish",
|
|
"Wayfarer Give Legendary Neptoona",
|
|
"Wayfarer Give Stowfish",
|
|
"Joanne Give Letter",
|
|
],
|
|
"Uncharted Island": [
|
|
"Uncharted Island Eye Dig",
|
|
"Descending Cave Grapple Chest",
|
|
"Golden Chief Gift",
|
|
],
|
|
"Zauz's Island": [
|
|
"Zauz's Island Cucco Chest",
|
|
"Zauz's Island Secret Dig",
|
|
"Zauz's House Triforce Crest",
|
|
"Zauz's House Phantom Blade",
|
|
],
|
|
"Ghost Ship": [
|
|
"Ghost Ship B1 Entrance Chest",
|
|
"Ghost Ship B1 Second Sister Chest",
|
|
"Ghost Ship B2 Third Sister Left Chest",
|
|
"Ghost Ship B2 Third Sister Right Chest",
|
|
"Ghost Ship B2 Spike Chest",
|
|
"Ghost Ship B3 Chest",
|
|
"Ghost Ship Rescue Tetra",
|
|
"Cubus Sisters Ghost Key",
|
|
"Cubus Sisters Heart Container",
|
|
],
|
|
"Cubus Sisters": [
|
|
"Cubus Sisters Ghost Key",
|
|
"Cubus Sisters Heart Container",
|
|
],
|
|
"Linebeck's Ship": [
|
|
"Ocean Pirate Ambush Item",
|
|
],
|
|
"Goron Island": [
|
|
"Goron Island SW Yellow Chu Item",
|
|
"Goron Island SW Grapple Chest",
|
|
"Goron Chief Goron Quiz",
|
|
"Goron Island NE Bombchu Switch Chest",
|
|
"Goron Island NW Dead End Chest",
|
|
"Goron Island NE Spike Chest",
|
|
"Goron Chief Post Dungeon Item",
|
|
],
|
|
"Goron Temple": [
|
|
"Goron Temple 1F Switch Chest",
|
|
"Goron Temple 1F Bow Chest",
|
|
"Goron Temple B1 Bombchu Bag Chest",
|
|
"Goron Temple B1 Kill Eyeslugs Chest",
|
|
"Goron Temple B3 Kill Miblins Chest",
|
|
"Goron Temple B2 Kill Eyeslugs Chest",
|
|
"Goron Temple B2 Boss Key Chest",
|
|
"Dongorongo Boss Reward",
|
|
"Dongorongo Sand of Hours",
|
|
"Dongorongo Heart Container",
|
|
],
|
|
"Dongorongo": [
|
|
"Dongorongo Boss Reward",
|
|
"Dongorongo Sand of Hours",
|
|
"Dongorongo Heart Container",
|
|
],
|
|
"Harrow Island": [
|
|
"Harrow Island Dig 1",
|
|
"Harrow Island Dig 2",
|
|
"Harrow Island Dig 3",
|
|
"Harrow Island Dig 4",
|
|
],
|
|
"Dee Ess Island": [
|
|
"Dee Ess Menu Button Dig",
|
|
"Dee Ess Left Speakers Dig SSW",
|
|
"Dee Ess Right Speakers Dig SE",
|
|
"Dee Ess Left Speakers Dig West",
|
|
"Dee Ess Win Goron Game",
|
|
"Dee Ess Eye Brute Chest",
|
|
"Dee Ess Blow in Microphone Chest",
|
|
],
|
|
"Isle of Frost": [
|
|
"Isle of Frost SW Nobodo Grapple Chest",
|
|
"Isle of Frost SW Chief's Sign Dig",
|
|
"Isle of Frost NW Estate Sign Dig",
|
|
"Isle of Frost Fofo Dig (SE)",
|
|
"Isle of Frost Dobo Dig (SW)",
|
|
"Isle of Frost NW Island Dig SW",
|
|
"Isle of Frost NW Island Dig SE",
|
|
"Isle of Frost SE South Ledge West Chest",
|
|
"Isle of Frost SE South Ledge East Chest",
|
|
"Isle of Frost SE Corner Chest",
|
|
"Isle of Frost SE East Ledge Chest",
|
|
],
|
|
"Temple of Ice": [
|
|
"Temple of Ice 3F Corner Chest",
|
|
"Temple of Ice 3F Switch State Chest",
|
|
"Temple of Ice 3F Key Drop",
|
|
"Temple of Ice 2F Grappling Hook Chest",
|
|
"Temple of Ice B1 Entrance Chest",
|
|
"Temple of Ice B1 SE Chest",
|
|
"Temple of Ice B1 Locked Room Chest",
|
|
"Temple of Ice B2 Bow Bounce Chest",
|
|
"Temple of Ice B2 Fight Chest",
|
|
"Temple of Ice B2 Boss Key Chest",
|
|
"Gleeok Boss Reward",
|
|
"Gleeok Sand of Hours",
|
|
"Gleeok Heart Container",
|
|
],
|
|
"Gleeok": [
|
|
"Gleeok Boss Reward",
|
|
"Gleeok Sand of Hours",
|
|
"Gleeok Heart Container",
|
|
],
|
|
"Isle of the Dead": [
|
|
"Rupoor Cave 1",
|
|
"Rupoor Cave 4",
|
|
"Rupoor Cave 2",
|
|
"Rupoor Cave 3",
|
|
"Stone Treasure Cave Chest",
|
|
"Isle of the Dead Face Chest",
|
|
"Isle of the Dead Crown Chest",
|
|
],
|
|
"Isle of Ruins": [
|
|
"Grassy Treasure Cave Chest",
|
|
"Isle of Ruins NW Lower Maze Chest",
|
|
"Isle of Ruins NE Dodge Boulders Chest",
|
|
"Isle of Ruins NE Secret Alcove Chest",
|
|
"Doylan's Gift",
|
|
"Isle of Ruins NE Outside Pyramid Chest",
|
|
"Isle of Ruins NW Like-Like Dig",
|
|
"Isle of Ruins Bonk Tree",
|
|
"Isle of Ruins NE Behind Temple Chest",
|
|
"Isle of Ruins NW Lower Water Bonk Tree",
|
|
],
|
|
"Mutoh's Temple": [
|
|
"Mutoh's Temple 2F Like-Like Maze Chest",
|
|
"Mutoh's Temple 3F Hammer Chest",
|
|
"Mutoh's Temple B2 Spike Roller Chest",
|
|
"Mutoh's Temple B2 Ledge Chest",
|
|
"Mutoh's Temple B1 Lower Water Chest",
|
|
"Mutoh's Temple B1 Push Boulder Chest",
|
|
"Mutoh's Temple B1 Boss Key Chest",
|
|
"Eox Boss Reward",
|
|
"Eox Sand of Hours",
|
|
"Eox Heart Container",
|
|
],
|
|
"Eox": [
|
|
"Eox Boss Reward",
|
|
"Eox Sand of Hours",
|
|
"Eox Heart Container",
|
|
],
|
|
"Maze Island": [
|
|
"Maze Island Bombable Wall Chest",
|
|
"Maze Island Beginner",
|
|
"Maze Island Normal",
|
|
"Maze Island Expert",
|
|
"Maze Island Bonus Reward",
|
|
"Maze Island SE Dig",
|
|
"Maze Island NE Dig",
|
|
"Maze Island NW Dig",
|
|
],
|
|
"Credits": [
|
|
"GOAL: Triforce Door",
|
|
],
|
|
"Man of Smiles' Ship": [
|
|
"Man Of Smiles' Item 1",
|
|
"Man Of Smiles' Item 2",
|
|
"Man of Smiles' Prize Postcard",
|
|
],
|
|
"Wayaway's Ship": [
|
|
"Hoiger Howgendoogen Trade Quest Item",
|
|
],
|
|
}
|
|
|
|
CATEGORY_LOCATION_GROUPS = {
|
|
"Shops": [
|
|
"Beedle Shop Bomb Bag",
|
|
"Beedle Shop Wisdom Gem",
|
|
"Masked Beedle Heart Container",
|
|
"Masked Beedle Courage Gem",
|
|
"Island Shop Power Gem",
|
|
"Island Shop Quiver",
|
|
"Island Shop Bombchu Bag",
|
|
"Island Shop Heart Container",
|
|
"Eddo's Cannon",
|
|
"Eddo's Salvage Arm",
|
|
"Mercay SE Ojibe (Docks Guy) Item",
|
|
],
|
|
"Island Shops": [
|
|
"Island Shop Power Gem",
|
|
"Island Shop Quiver",
|
|
"Island Shop Bombchu Bag",
|
|
"Island Shop Heart Container",
|
|
],
|
|
"Beedle": [
|
|
"Beedle Shop Bomb Bag",
|
|
"Beedle Shop Wisdom Gem",
|
|
"Beedle Membership Bronze",
|
|
"Beedle Membership Silver",
|
|
"Beedle Membership Gold",
|
|
"Beedle Membership Platinum",
|
|
"Beedle Membership VIP",
|
|
],
|
|
"Masked Beedle": [
|
|
"Masked Beedle Heart Container",
|
|
"Masked Beedle Courage Gem",
|
|
],
|
|
"Minigames": [
|
|
"Bannan Island East Cannon Game",
|
|
"Prince of Red Lions Combat Reward",
|
|
"Archery Minigame 1700",
|
|
"Archery Minigame 2000",
|
|
"Dee Ess Win Goron Game",
|
|
"Maze Island Beginner",
|
|
"Maze Island Normal",
|
|
"Maze Island Expert",
|
|
"Maze Island Bonus Reward",
|
|
],
|
|
"Rupee Dig Spots": [
|
|
"Maze Island SE Dig",
|
|
"Maze Island NE Dig",
|
|
"Maze Island NW Dig",
|
|
"Isle of Ruins NW Like-Like Dig",
|
|
"Isle of Frost SW Chief's Sign Dig",
|
|
"Isle of Frost NW Island Dig SE",
|
|
"Isle of Frost NW Estate Sign Dig",
|
|
"Isle of Frost NW Fofo's Sign Dig (SE)",
|
|
"Isle of Frost NW Dobo's Sign Dig (SW)",
|
|
"Dee Ess Left Speakers Dig SSW",
|
|
"Dee Ess Right Speakers Dig SE",
|
|
"Dee Ess Left Speakers Dig West",
|
|
"Isle of Gust North Dig",
|
|
"Isle of Gust South NE Dig",
|
|
"Molida Island South Cucco Grapple Small Island Dig",
|
|
"Shovel Hideout Dig",
|
|
"Sun Lake Cave Geozard Dig",
|
|
"Molida Island South Romanos Tree Dig",
|
|
"Cannon Island SE Dig",
|
|
"Cannon Island Bee Dig",
|
|
"Cannon Island East Dig",
|
|
],
|
|
"Trade Quest": [
|
|
"Nyave Trade Quest Item",
|
|
"Prince of Red Lions Trade Quest Item",
|
|
"Hoiger Howgendoogen Trade Quest Item",
|
|
"Wayfarer Trade Quest Chest",
|
|
],
|
|
"Bonk Trees": [
|
|
"Mercay NE Bonk Tree",
|
|
"Isle of Ruins Bonk Tree",
|
|
"Cannon Island Bonk Tree",
|
|
"Isle of Ruins NW Lower Water Bonk Tree"
|
|
],
|
|
"Golden Frogs": [
|
|
"Ocean SW Golden Frog X",
|
|
"Ocean SW Golden Frog Phi",
|
|
"Ocean NW Golden Frog N",
|
|
"Ocean SE Golden Frog Omega",
|
|
"Ocean SE Golden Frog W",
|
|
"Ocean NE Golden Frog Square",
|
|
],
|
|
"Salvage": [
|
|
"Ocean SW Salvage Courage Crest",
|
|
],
|
|
"Spirit Upgrades": [
|
|
"Spirit Shrine Power Upgrade Level 1",
|
|
"Spirit Shrine Power Upgrade Level 2",
|
|
"Spirit Shrine Wisdom Upgrade Level 1",
|
|
"Spirit Shrine Wisdom Upgrade Level 2",
|
|
"Spirit Shrine Courage Upgrade Level 1",
|
|
"Spirit Shrine Courage Upgrade Level 2",
|
|
],
|
|
"Fishing Locations": [
|
|
"Wayfarer Give Loovar",
|
|
"Wayfarer Give Rusty Swordfish",
|
|
"Wayfarer Give Legendary Neptoona",
|
|
"Wayfarer Give Stowfish",
|
|
"Fishing Catch Skippyjack",
|
|
"Fishing Catch Toona",
|
|
"Fishing Catch Loovar",
|
|
"Fishing Catch Rusty Swordfish",
|
|
"Fishing Catch Legendary Neptoona",
|
|
"Fishing Catch Stowfish",
|
|
],
|
|
"Fish": [
|
|
"Fishing Catch Skippyjack",
|
|
"Fishing Catch Toona",
|
|
"Fishing Catch Loovar",
|
|
"Fishing Catch Rusty Swordfish",
|
|
"Fishing Catch Legendary Neptoona",
|
|
"Fishing Catch Stowfish",
|
|
],
|
|
"Salvage Locations": [
|
|
"Ocean SW Salvage #1 Molida SW",
|
|
"Ocean SW Salvage #2 Mercay NE",
|
|
"Ocean NW Salvage #3 Gusts SW",
|
|
"Ocean NW Salvage #4 Bannan SE",
|
|
"Ocean SW Salvage #5 Molida N",
|
|
"Ocean NW Salvage #6 Bannan W",
|
|
"Ocean NW Salvage #7 Gusts E",
|
|
"Ocean SW Salvage #8 Mercay SE",
|
|
"Ocean SW Salvage #9 Cannon W",
|
|
"Ocean NW Salvage #10 Gusts SE",
|
|
"Ocean NW Salvage #11 Gusts N",
|
|
"Ocean SE Salvage #12 Dee Ess N",
|
|
"Ocean SE Salvage #13 Harrow E",
|
|
"Ocean SE Salvage #14 Goron NW",
|
|
"Ocean SE Salvage #15 Goron W",
|
|
"Ocean SE Salvage #16 Goron NE",
|
|
"Ocean SE Salvage #17 Frost S",
|
|
"Ocean SW Salvage #18 Cannon S",
|
|
"Ocean NW Salvage #19 Gusts NE",
|
|
"Ocean NW Salvage #20 Bannan E",
|
|
"Ocean SW Salvage #21 Molida NW",
|
|
"Ocean SE Salvage #22 Harrow S",
|
|
"Ocean SE Salvage #23 Frost NW",
|
|
"Ocean NE Salvage #24 Ruins W",
|
|
"Ocean NE Salvage #25 Dead E",
|
|
"Ocean NE Salvage #26 Ruins SW",
|
|
"Ocean NE Salvage #27 Maze E",
|
|
"Ocean NE Salvage #28 Ruins NW",
|
|
"Ocean NE Salvage #29 Maze W",
|
|
"Ocean NE Salvage #30 Ruins S",
|
|
"Ocean NE Salvage #31 Dead S",
|
|
],
|
|
"Boss Rewards": [
|
|
"Blaaz Boss Reward",
|
|
"Cyclok Boss Reward",
|
|
"Crayk Boss Reward",
|
|
"Dongorongo Boss Reward",
|
|
"Gleeok Boss Reward",
|
|
"Eox Boss Reward",
|
|
],
|
|
"Grappling Hook Excludes": [
|
|
"TotOK B3 NW Chest",
|
|
"TotOK B3 SW Chest",
|
|
"TotOK B3 SE Chest",
|
|
],
|
|
}
|
|
|
|
LOCATION_GROUPS = CATEGORY_LOCATION_GROUPS | STAGE_LOCATION_GROUPS
|
|
|
|
DUNGEON_NAMES = [
|
|
"Mountain Passage",
|
|
"Temple of the Ocean King",
|
|
"Temple of Fire",
|
|
"Temple of Wind",
|
|
"Temple of Courage",
|
|
"Goron Temple",
|
|
"Temple of Ice",
|
|
"Mutoh's Temple",
|
|
"Ghost Ship"
|
|
]
|
|
|
|
DUNGEON_TO_BOSS_ITEM_LOCATION = {
|
|
"Temple of the Ocean King": "TotOK B13 Sea Chart Chest",
|
|
"Temple of Fire": "Blaaz Boss Reward",
|
|
"Temple of Wind": "Cyclok Boss Reward",
|
|
"Temple of Courage": "Crayk Boss Reward",
|
|
"Goron Temple": "Dongorongo Boss Reward",
|
|
"Temple of Ice": "Gleeok Boss Reward",
|
|
"Mutoh's Temple": "Eox Boss Reward",
|
|
"Ghost Ship": "_gs",
|
|
}
|
|
|
|
BOSS_LOCATION_TO_DUNGEON = {
|
|
"TotOK B13 Sea Chart Chest": "Temple of the Ocean King",
|
|
"Blaaz Boss Reward": "Temple of Fire",
|
|
"Cyclok Boss Reward": "Temple of Wind",
|
|
"Crayk Boss Reward": "Temple of Courage",
|
|
"Dongorongo Boss Reward": "Goron Temple",
|
|
"Gleeok Boss Reward": "Temple of Ice",
|
|
"Eox Boss Reward": "Mutoh's Temple",
|
|
"Ghost Ship Rescue Tetra": "Ghost Ship",
|
|
"Cubus Sisters Ghost Key": "Ghost Ship",
|
|
}
|
|
|
|
GHOST_SHIP_BOSS_ITEM_LOCATION = [
|
|
"Ghost Ship Rescue Tetra",
|
|
"Cubus Sisters Ghost Key",
|
|
"Cubus Sisters Ghost Key"
|
|
]
|
|
|
|
# Entrance name: dungeon name
|
|
BOSS_STAIRCASES = {
|
|
"ToF Enter Boss": "Temple of Fire",
|
|
"ToW Enter Boss": "Temple of Wind",
|
|
"ToC Enter Boss": "Temple of Courage",
|
|
"Ghost Ship Cubus Sisters Reunion": "Ghost Ship",
|
|
"GT Enter Boss": "Goron Temple",
|
|
"ToI Enter Boss": "Temple of Ice",
|
|
"MT Enter Boss": "Mutoh's Temple",
|
|
}
|
|
|
|
BOSS_LOOKUP = {
|
|
"Temple of Fire": "Blaaz",
|
|
"Temple of Wind": "Cyclok",
|
|
"Temple of Courage": "Crayk",
|
|
"Ghost Ship": "Cubus Sisters",
|
|
"Goron Temple": "Dongorongo",
|
|
"Temple of Ice": "Gleeok",
|
|
"Mutoh's Temple": "Eox"
|
|
}
|
|
|
|
# Boss Room Entrance name: boss reward location name
|
|
BOSS_ENTRANCE_LOOKUP = {
|
|
"Blaaz Exit": "Blaaz Boss Reward",
|
|
"Cyclok Exit": "Cyclok Boss Reward",
|
|
"Crayk Exit": "Crayk Boss Reward",
|
|
"Cubus Sisters Blue Warp": "Cubus Sisters Ghost Key",
|
|
"Dongo Exit": "Dongorongo Boss Reward",
|
|
"Gleeok Exit": "Gleeok Boss Reward",
|
|
"Eox Exit": "Eox Boss Reward",
|
|
}
|
|
|
|
DUNGEON_KEY_DATA = {
|
|
39: {
|
|
"name": "Mountain Passage",
|
|
"address": PHAddr.small_key_storage_1,
|
|
"filter": 0x0C,
|
|
"value": 4,
|
|
"size": 2,
|
|
},
|
|
37: {
|
|
"name": "Temple of the Ocean King",
|
|
"address": PHAddr.small_key_storage_1,
|
|
"filter": 0xE0,
|
|
"value": 0x20,
|
|
"size": 3,
|
|
},
|
|
372: {
|
|
"name": "Temple of the Ocean King",
|
|
"address": PHAddr.small_key_storage_2,
|
|
"filter": 0xC0,
|
|
"value": 0x40,
|
|
"size": 2,
|
|
},
|
|
0x1C: {
|
|
"name": "Temple of Fire",
|
|
"address": PHAddr.small_key_storage_1,
|
|
"value": 1,
|
|
"size": 2,
|
|
"filter": 0x03,
|
|
},
|
|
0x1E: {
|
|
"name": "Temple of Courage",
|
|
"address": PHAddr.small_key_storage_2,
|
|
"value": 0x10,
|
|
"size": 2,
|
|
"filter": 0x30,
|
|
},
|
|
0x1D: {
|
|
"name": "Temple of Wind",
|
|
"address": PHAddr.small_key_storage_1,
|
|
"value": 0x10,
|
|
"size": 1,
|
|
"filter": 0x10
|
|
},
|
|
0x1F: {
|
|
"name": "Temple of Ice",
|
|
"address": PHAddr.small_key_storage_2,
|
|
"value": 0x1,
|
|
"size": 2,
|
|
"filter": 0x03
|
|
},
|
|
0x21: {
|
|
"name": "Mutoh's Temple",
|
|
"address": PHAddr.small_key_storage_2,
|
|
"value": 0x4,
|
|
"size": 2,
|
|
"filter": 0x0C
|
|
},
|
|
}
|
|
|
|
BOSS_DOOR_DATA = {
|
|
0x1C: {
|
|
"name": "Temple of Fire",
|
|
"address": PHAddr.tof_doors,
|
|
"value": 0x1
|
|
},
|
|
0x1D: {
|
|
"name": "Temple of Wind",
|
|
"address": PHAddr.tow_doors,
|
|
"value": 0x400
|
|
},
|
|
0x1E: {
|
|
"name": "Temple of Courage",
|
|
"address": PHAddr.toc_boss_door,
|
|
"value": 0x2
|
|
},
|
|
0x20: {
|
|
"name": "Goron Temple",
|
|
"address": PHAddr.gt_boss_door,
|
|
"value": 0x1
|
|
},
|
|
0x1F: {
|
|
"name": "Temple of Ice",
|
|
"address": PHAddr.toi_doors,
|
|
"value": 0x80
|
|
},
|
|
0x21: {
|
|
"name": "Mutoh's Temple",
|
|
"address": PHAddr.mt_doors,
|
|
"value": 0x1
|
|
},
|
|
}
|
|
|
|
|
|
|
|
COLOR_SWITCH_DATA = {
|
|
0x1F: {
|
|
"name": "Temple of Ice",
|
|
"address": PHAddr.color_switch_toi,
|
|
"value": 0x1
|
|
},
|
|
0x1E: {
|
|
"name": "Temple of Courage",
|
|
"address": PHAddr.color_switch_toc,
|
|
"value": 0x1
|
|
},
|
|
}
|
|
|
|
UT_EVENT_DATA = {
|
|
0x2400: {"address": PHAddr.adv_flags_6,
|
|
"value": 0x4,
|
|
"entrance": "EVENT: Bremeur's Temple Lower Water"},
|
|
0x800: {"address": PHAddr.adv_flags_22,
|
|
"value": 0x8,
|
|
"entrance": "EVENT: SS Wayfarer Give Wood Heart"},
|
|
0x1001: [
|
|
{"address": "stage_flags",
|
|
"value": 0x4,
|
|
"entrance": "EVENT: Goron NE Spike Switch",
|
|
"offset": 1},
|
|
{"address": PHAddr.goron_bomb_blocks,
|
|
"value": 0x8,
|
|
"event": "gms"},
|
|
{"address": PHAddr.goron_bomb_blocks,
|
|
"value": 0x1,
|
|
"event": "gss"}],
|
|
0x1003: [
|
|
{"address": PHAddr.adv_flags_35,
|
|
"value": 0x2,
|
|
"entrance": "EVENT: Goron SE Shout to Bridge Goron"},
|
|
],
|
|
0x1002: {"address": PHAddr.adv_flags_34,
|
|
"value": 0x20,
|
|
"entrance": "EVENT: Goron SW Kill Yellow Chus"},
|
|
0x130B: {"address": PHAddr.adv_flags_6,
|
|
"value": 0x2,
|
|
"entrance": "EVENT: Open Eddo's Door",},
|
|
0xe01: {"address": "stage_flags",
|
|
"value": 0x20,
|
|
"entrance": "EVENT: Gust Windmills",},
|
|
0x1000: [{"address": "stage_flags",
|
|
"value": 0x2,
|
|
"event": "gsb"},
|
|
{"address": "stage_flags",
|
|
"value": 0x20,
|
|
"event": "gls"},
|
|
],
|
|
0xB02: {"address": "stage_flags",
|
|
"value": 0x1,
|
|
"event": "fi",
|
|
"offset": 1},
|
|
0x1203: {"address": "stage_flags",
|
|
"value": 0x80,
|
|
"event": "rb",
|
|
"offset": 1},
|
|
0xF03: {"address": "stage_flags",
|
|
"value": 0x10,
|
|
"event": "fif",
|
|
"offset": 2},
|
|
0x1A00: {"address": PHAddr.adv_flags_38,
|
|
"value": 0x10,
|
|
"event": "ub"},
|
|
0xd01: {"address": "stage_flags",
|
|
"value": 0x40,
|
|
"event": "md"},
|
|
0x1c03: {"address": "stage_flags",
|
|
"value": 0x80,
|
|
"event": "tfw",
|
|
"offset": 1},
|
|
0x1d04: {"address": PHAddr.tow_warp,
|
|
"value": 0x1,
|
|
"event": "tww"},
|
|
0x1e03: {"address": PHAddr.toc_warp,
|
|
"value": 0x1,
|
|
"event": "tcw"},
|
|
0x2004: {"address": "stage_flags",
|
|
"value": 0x80,
|
|
"event": "gtw",
|
|
"offset": 3},
|
|
0x1f02: {"address": PHAddr.toi_warp,
|
|
"value": 0x1,
|
|
"event": "tiw"},
|
|
0x2105: {"address": "stage_flags",
|
|
"value": 0x10,
|
|
"event": "mtw",
|
|
"offset": 1},
|
|
0x1300: {"address": PHAddr.cannon_bomb_blocks,
|
|
"value": 0x1,
|
|
"event": "cb"},
|
|
0xC0A: {"address": PHAddr.molida_bomb_blocks,
|
|
"value": 0x1,
|
|
"event": "mcb"},
|
|
}
|
|
|
|
hidden_event_connect = {
|
|
# Connected on flag read
|
|
"gsb": ("Goron NW Shortcut", "Goron NW Outside Temple"),
|
|
"fi": ("Mercay NE", "Mercay NW Freedle Island"),
|
|
"gms": ("Goron NE Middle", "Goron NE"),
|
|
"gss": ("Goron NE South", "Goron NE"),
|
|
"gls": ("Goron NW Outside Temple", "Goron NW Like Like"),
|
|
|
|
"rb": ("Ruins SE Return Bridge West", "Ruins SE Return Bridge East"),
|
|
"fif": ("Frost SE Exit", "Frost SE"),
|
|
"ub": ("Uncharted Outside Cave", "Uncharted Island"),
|
|
"md": ("Molida Outside Temple", "Molida North"),
|
|
"cb": ("Cannon Outside Eddo", "Cannon Bomb Garden"),
|
|
"mcb": ("Sun Lake Cave", "Sun Lake Cave Back"),
|
|
|
|
"tfw": ("ToF 1F", "ToF 4F"),
|
|
"tww": ("ToW 1F", "ToW 2F"),
|
|
"tcw": ("ToC 1F", "ToC 3F"),
|
|
"gtw": ("GT 1F", "GT B4"),
|
|
"tiw": ("ToI 1F", "ToI Blue Warp"),
|
|
"mtw": ("MT 1F", "MT B3"),
|
|
|
|
# map warp connections
|
|
"wsw": ("Menu", "SW Ocean East", "Warp to SW Ocean"),
|
|
"wse": ("Menu", "SE Ocean", "Warp to SE Ocean"),
|
|
"wnw": ("Menu", "NW Ocean", "Warp to NW Ocean"),
|
|
"wne": ("Menu", "NE Ocean", "Warp to NE Ocean"),
|
|
|
|
"wmc": ("Menu", "Mercay SE", "Warp to Mercay Island"),
|
|
"wc": ("Menu", "Cannon Island", "Warp to Cannon Island"),
|
|
"we": ("Menu", "Ember Port", "Warp to Isle of Ember"),
|
|
"wml": ("Menu", "Molida South", "Warp to Molida Island"),
|
|
"ws": ("Menu", "Spirit Island", "Warp to Spirit Island"),
|
|
|
|
"wgu": ("Menu", "Gust South", "Warp to Isle of Gust"),
|
|
"wb": ("Menu", "Bannan Island", "Warp to Bannan Island"),
|
|
"wz": ("Menu", "Zauz's Island", "Warp to Zauz' Island"),
|
|
"wu": ("Menu", "Uncharted Island", "Warp to Uncharted Island"),
|
|
|
|
"wgo": ("Menu", "Goron SW", "Warp to Goron Island"),
|
|
"wf": ("Menu", "Frost SW", "Warp to Isle of Frost"),
|
|
"wh": ("Menu", "Harrow Island", "Warp to Harrow Island"),
|
|
"wds": ("Menu", "Dee Ess Island", "Warp to Dee Ess Island"),
|
|
|
|
"wd": ("Menu", "IotD Port", "Warp to Isle of the Dead"),
|
|
"wr": ("Menu", "Ruins SW Port", "Warp to Isle of Ruins"),
|
|
"wmz": ("Menu", "Maze Island", "Warp to Maze Island"),
|
|
}
|
|
|
|
BOSS_EVENT_TO_LOCATION = {
|
|
"EVENT: Defeat Blaaz": "Blaaz Boss Reward",
|
|
"EVENT: Defeat Cyclok": "Cyclok Boss Reward",
|
|
"EVENT: Defeat Crayk": "Crayk Boss Reward",
|
|
"EVENT: Rescue Tetra": ["Ghost Ship Rescue Tetra", "Cubus Sisters Ghost Key"],
|
|
"EVENT: Defeat Dongorongo": "Dongorongo Boss Reward",
|
|
"EVENT: Defeat Gleeok": "Gleeok Boss Reward",
|
|
"EVENT: Defeat Eox": "Eox Boss Reward",
|
|
}
|
|
|
|
DEAD_END_ENTRANCES = [
|
|
"Abandoned House Exit",
|
|
"Bannan East Cave",
|
|
"Bannan West Hut",
|
|
"Grassy Rupee Cave Exit",
|
|
"Molida South Cliff North",
|
|
"Ocara's House Exit",
|
|
"Shovel Hideout Exit",
|
|
"Spirit Shrine Exit",
|
|
"Stone Treasure Cave Exit",
|
|
"Tiled Hideout Exit",
|
|
"Anouki Chief's Exit",
|
|
"Apricot's Exit",
|
|
"Aroo's Exit",
|
|
"Astrid's Basement Stairs",
|
|
"Blaaz Exit",
|
|
"Bremeur's Exit",
|
|
"Crayk Exit",
|
|
"Cubus Sisters Blue Warp",
|
|
"Cyclok Exit",
|
|
"Dee Ess Boat",
|
|
"Dobo's Exit",
|
|
"Dongo Exit",
|
|
"Doylan's Chamber Exit",
|
|
"Eox Exit",
|
|
"Fofo's Exit",
|
|
"Gleeok Exit",
|
|
"Golden Chief Exit",
|
|
"Goron Chief House Exit",
|
|
"Goron Chu House Exit",
|
|
"Goron Coast House Exit",
|
|
"Goron Mountain House Exit",
|
|
"Goron North Dead End",
|
|
"Goron Port House Exit",
|
|
"Goron Rock House Exit",
|
|
"Goron Shop Exit",
|
|
"Goron South Dead End",
|
|
"Goron Spikes Dead End",
|
|
"Goron SW Mountains East",
|
|
"Gumo's Exit",
|
|
"Harrow Boat",
|
|
"IotD Crown Staircase",
|
|
"IotD Face Staircase",
|
|
"Kayo's Exit",
|
|
"Kumu's Exit",
|
|
"Max's Exit",
|
|
"Maze Boat",
|
|
"Mazo's Exit",
|
|
"Mercay Shop Exit",
|
|
"Milk Bar Exit",
|
|
"Molida Shop Exit",
|
|
"Oshus' Exit",
|
|
"Potato's Exit",
|
|
"Romanos' Exit",
|
|
"Ruins NE Doylan Bridge One-Way West",
|
|
"Ruins NE Secret Chest South",
|
|
"Ruins SE Coast North",
|
|
"Rupoor Cave Exit",
|
|
"Sensitive Anouki's Exit",
|
|
"Shipyard Exit",
|
|
"Smart Anouki's Exit",
|
|
"Sword Cave Exit",
|
|
"TotOK Lobby Exit",
|
|
"Treasure Teller's Exit",
|
|
"Tuzi's Exit",
|
|
"Wayfarer's Exit",
|
|
"Zauz' Exit",
|
|
]
|
|
|
|
# Decode classification for humans
|
|
CLASSIFICATION = {
|
|
1: "progression",
|
|
2: "useful",
|
|
4: "trap",
|
|
9: "progression_skip_balancing",
|
|
17: "progression_deprioritized",
|
|
25: "progression_deprioritized_skip_balancing",
|
|
0: "filler"
|
|
}
|
|
|
|
BOSS_WARP_LOOKUP = {
|
|
28: "ToF Exit",
|
|
29: "ToW Exit",
|
|
30: "ToC Exit",
|
|
31: "ToI Exit",
|
|
32: "GT Exit",
|
|
33: "MT Exit",
|
|
0x29: "Ghost Ship B1 Ascend"
|
|
}
|
|
|
|
BOSS_WARP_SCENE_LOOKUP = {
|
|
0x2B00: "Blaaz Exit",
|
|
0x2A00: "Cyclok Exit",
|
|
0x2C00: "Crayk Exit",
|
|
0x200A: "Dongo Exit",
|
|
0x2E00: "Dongo Exit",
|
|
0x1F06: "Gleeok Exit",
|
|
0x1D00: "Gleeok Exit",
|
|
0x2106: "Eox Exit",
|
|
0x2F00: "Eox Exit",
|
|
0x3000: "Cubus Sisters Blue Warp"
|
|
}
|
|
|
|
EQUIPPED_SHIP_PARTS_ADDR = [
|
|
PHAddr.equipped_ship_parts_0,
|
|
PHAddr.equipped_ship_parts_1,
|
|
PHAddr.equipped_ship_parts_2,
|
|
PHAddr.equipped_ship_parts_3,
|
|
PHAddr.equipped_ship_parts_4,
|
|
PHAddr.equipped_ship_parts_5,
|
|
PHAddr.equipped_ship_parts_6,
|
|
PHAddr.equipped_ship_parts_7,
|
|
]
|
|
|
|
TREASURE_READ_LIST = {i: (PHAddr.pink_coral_count + i * 4, 4, "Main RAM") for i in range(8)}
|
|
|
|
TREASURE_PRICES = {
|
|
"Treasure: Pink Coral": [1500, 50, 150, 50, 150, 150, 1500, 50, 50, 1500, 50],
|
|
"Treasure: White Pearl Loop": [800, 50, 50, 150, 50, 150, 50, 50, 1500, 800, 50],
|
|
"Treasure: Dark Pearl Loop": [150, 50, 50, 800, 800, 50, 800, 800, 50, 150, 50],
|
|
"Treasure: Zora Scale": [150, 150, 1500, 150, 150, 800, 800, 50, 50, 50, 50],
|
|
"Treasure: Goron Amber": [50, 150, 800, 800, 150, 50, 50, 800, 800, 50, 50],
|
|
"Treasure: Ruto Crown": [50, 1500, 50, 150, 50, 800, 50, 1500, 50, 50, 50],
|
|
"Treasure: Helmaroc Plume": [50, 800, 150, 50, 800, 150, 50, 50, 800, 50, 50],
|
|
"Treasure: Regal Ring": [1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 50]
|
|
}
|
|
|
|
region_aliases = {
|
|
# Aliases
|
|
"ToF 1F": [
|
|
"Temple of Fire",
|
|
"ToF"],
|
|
"ToW 1F": ["Temple of Wind", "ToW", "Temple of Wind 1F"],
|
|
"ToC 1F": ["Temple of Courage", "ToC", "Temple of Courage 1F"],
|
|
"Ghost Ship 1F": ["Ghost Ship", "GS", "Ghost Ship Deck", "GS 1F"],
|
|
"GT 1F": ["Goron Temple", "GT"],
|
|
"ToI 1F": ["Temple of Ice", "ToI"],
|
|
"MT 1F": ["Mutoh's Temple", "MT"],
|
|
"TotOK Lobby": ["Temple of the Ocean King", "TotOK"],
|
|
|
|
"Mercay SE": ["Mercay Island", "Mercay", "Mercay Port"],
|
|
"Cannon Island": ["Cannon"],
|
|
"Ember Port": ["Isle of Ember", "Ember Island", "Ember"],
|
|
"Molida South": ["Molida Island", "Molida", "Molida Port"],
|
|
"Spirit Island": ["Isle of Spirits", "Spirit"],
|
|
"Gust South": ["Isle of Gust", "Gust"],
|
|
"Bannan Island": ["Bannan West", "Bannan", "Bannan Port"],
|
|
"Zauz's Island": ["Zauz"],
|
|
"Uncharted Island": ["Uncharted"],
|
|
"Goron SW": ["Goron", "Goron Island", "Goron Port"],
|
|
"Frost SW": ["Isle of Frost", "Frost", "Frost Island", "Ice Island", "Ice"],
|
|
"Harrow Island": ["Harrow"],
|
|
"Dee Ess Island": ["Dee Ess", "DS", "DS Island"],
|
|
"Isle of the Dead": ["IotD", "Dead"],
|
|
"Ruins SW Port": ["Ruins", "Isle of Ruins", "Ruins Island", "Ruins Port"],
|
|
"Maze Island": ["Maze"],
|
|
|
|
"Nyave": ["SW Ocean Nyave", "Nyave's Ship"],
|
|
"PoRL": ["Nyeve", "Nyeve's Ship", "Prince of Red Lions"],
|
|
"SE Ocean Trade": ["Wayaway", "Wayaway Ship", "Hoho Tribe", "Hoho Tribe's Ship"],
|
|
"NE Ocean Combat": ["Man of Smiles", "Man of Smiles' Ship", "Man of Smiles' Trade"],
|
|
|
|
"Sun Lake Cave": ["Molida Cave"],
|
|
"Keese Passage West": ["Bannan Cave West", "Bannan Cave", "Keese Passage"],
|
|
"Mountain Passage 1": ["MP", "Mountain Passage", "Mountain Passage 1F"],
|
|
"Mountain Passage 3": ["Mountain Passage 2F"]
|
|
}
|
|
|
|
map_type_lookup = {
|
|
0x2b00: "boss",
|
|
0x3000: "boss",
|
|
0x2c00: "boss",
|
|
0x2e00: "boss",
|
|
0x2d00: "boss",
|
|
0x2a00: "boss",
|
|
0x2f00: "boss",
|
|
0x2700: "cave",
|
|
0x2701: "cave",
|
|
0x1c00: "dung",
|
|
0x1c01: "dung",
|
|
0x1c02: "dung",
|
|
0x1c03: "dung",
|
|
0x2900: "dung",
|
|
0x2901: "dung",
|
|
0x2902: "dung",
|
|
0x2903: "dung",
|
|
0x2904: "dung",
|
|
0x2600: "dung",
|
|
0x2500: "dung",
|
|
0x2501: "dung",
|
|
0x2502: "dung",
|
|
0x2503: "dung",
|
|
0x2504: "dung",
|
|
0x2505: "dung",
|
|
0x2506: "dung",
|
|
0x2507: "dung",
|
|
0x2508: "dung",
|
|
0x2509: "dung",
|
|
0x250A: "dung",
|
|
0x250B: "dung",
|
|
0x250C: "dung",
|
|
0x250D: "dung",
|
|
0x250E: "dung",
|
|
0x250F: "dung",
|
|
0x2510: "dung",
|
|
0x2511: "dung",
|
|
0x2512: "dung",
|
|
0x1e00: "dung",
|
|
0x1e01: "dung",
|
|
0x1e02: "dung",
|
|
0x1e03: "dung",
|
|
0x2000: "dung",
|
|
0x2001: "dung",
|
|
0x2002: "dung",
|
|
0x2003: "dung",
|
|
0x2004: "dung",
|
|
0x2005: "dung",
|
|
0x200A: "boss",
|
|
0x2800: "cave",
|
|
0x1f00: "dung",
|
|
0x1f01: "dung",
|
|
0x1f02: "dung",
|
|
0x1f03: "dung",
|
|
0x1f05: "dung",
|
|
0x1f06: "boss",
|
|
0x1d00: "dung",
|
|
0x1d01: "dung",
|
|
0x1d02: "dung",
|
|
0x1d03: "dung",
|
|
0x1d04: "dung",
|
|
0x1d05: "dung",
|
|
0x2100: "dung",
|
|
0x2101: "dung",
|
|
0x2102: "dung",
|
|
0x2103: "dung",
|
|
0x2104: "dung",
|
|
0x2105: "dung",
|
|
0x2106: "boss",
|
|
0x2200: "house",
|
|
0x2201: "house",
|
|
0x2300: "house",
|
|
0x2400: "house",
|
|
0xd0a: "house",
|
|
0xd0b: "house",
|
|
0xd0c: "house",
|
|
0xd14: "cave",
|
|
0x1401: "house",
|
|
0x140a: "cave",
|
|
0x1400: "ow",
|
|
0xb0a: "house",
|
|
0xb0b: "house",
|
|
0xb0c: "house",
|
|
0xb0f: "house",
|
|
0xb0e: "house",
|
|
0xb0d: "house",
|
|
0xb10: "cave",
|
|
0xb11: "house",
|
|
0xb12: "cave",
|
|
0xb13: "cave",
|
|
0x1501: "cave",
|
|
0x1502: "cave",
|
|
0x1503: "cave",
|
|
0x1504: "cave",
|
|
0x1505: "house",
|
|
0x1506: "house",
|
|
0x1507: "house",
|
|
0x1508: "house",
|
|
0x1509: "house",
|
|
0x150a: "house",
|
|
0x1500: "ow",
|
|
0xc0a: "cave",
|
|
0xc0b: "house",
|
|
0xc0c: "house",
|
|
0xc0d: "house",
|
|
0xc0e: "house",
|
|
0xc0f: "cave",
|
|
0x100a: "house",
|
|
0x100b: "house",
|
|
0x100c: "house",
|
|
0x100d: "house",
|
|
0x100f: "house",
|
|
0x100e: "house",
|
|
0x1014: "house",
|
|
0x1701: "cave",
|
|
0x1700: "ow",
|
|
0x1800: "ow",
|
|
0x1900: "ow",
|
|
0x1a0a: "cave",
|
|
0x1a0b: "cave",
|
|
0x1a00: "ow",
|
|
0x1b00: "ow",
|
|
0x130a: "house",
|
|
0x130b: "house",
|
|
0x1300: "ow",
|
|
0xf0a: "house",
|
|
0xf0b: "house",
|
|
0xf0c: "house",
|
|
0xf0d: "house",
|
|
0xf0e: "house",
|
|
0xf0f: "house",
|
|
0xf10: "house",
|
|
0xf11: "house",
|
|
0xf12: "house",
|
|
0xf13: "cave",
|
|
0xe0a: "cave",
|
|
0xe0b: "cave",
|
|
0x110B: "cave",
|
|
0x120B: "cave",
|
|
0x110a: "cave",
|
|
0x120a: "cave",
|
|
0x160a: "house",
|
|
0x1600: "ow",
|
|
0x800: "ship",
|
|
0x700: "ship",
|
|
0xa00: "ship",
|
|
0x900: "ship",
|
|
0x400: "ship",
|
|
0x500: "ship",
|
|
0x600: "ship",
|
|
0xD00: "ow",
|
|
0xD01: "ow",
|
|
0xB00: "ow",
|
|
0xB01: "ow",
|
|
0xB02: "ow",
|
|
0xb03: "ow",
|
|
0xc00: "ow",
|
|
0xc01: "ow",
|
|
0x1000: "ow",
|
|
0x1001: "ow",
|
|
0x1002: "ow",
|
|
0x1003: "ow",
|
|
0xf00: "ow",
|
|
0xf01: "ow",
|
|
0xf02: "ow",
|
|
0xf03: "ow",
|
|
0xe00: "ow",
|
|
0xe01: "ow",
|
|
0x1100: "ow",
|
|
0x1101: "ow",
|
|
0x1102: "ow",
|
|
0x1103: "ow",
|
|
0x1200: "ow",
|
|
0x1201: "ow",
|
|
0x1202: "ow",
|
|
0x1203: "ow",
|
|
0x0: "sea",
|
|
0x1: "sea",
|
|
0x2: "sea",
|
|
0x3: "sea",
|
|
0x300: "sea"
|
|
}
|
|
|
|
if __name__ == "__main__":
|
|
for cat, value in CATEGORY_LOCATION_GROUPS.items():
|
|
print(f"\t\"{cat}\": [")
|
|
# for loc in value:
|
|
# print(f"\t\t\"{location_name_changes.get(loc, loc)}\",")
|
|
print(f"\t],") |