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
498 lines
17 KiB
Python
498 lines
17 KiB
Python
from enum import IntEnum
|
|
|
|
ROM_HASH = "f2dc6c4e093e4f8c6cbea80e8dbd62cb"
|
|
AGES_ROM_HASH = "c4639cc61c049e5a085526bb6cac03bb"
|
|
|
|
DIRECTION_UP = 0
|
|
DIRECTION_RIGHT = 1
|
|
DIRECTION_DOWN = 2
|
|
DIRECTION_LEFT = 3
|
|
DIRECTIONS = [
|
|
DIRECTION_UP,
|
|
DIRECTION_RIGHT,
|
|
DIRECTION_DOWN,
|
|
DIRECTION_LEFT
|
|
]
|
|
|
|
SEASON_SPRING = 0x00
|
|
SEASON_SUMMER = 0x01
|
|
SEASON_AUTUMN = 0x02
|
|
SEASON_WINTER = 0x03
|
|
SEASON_CHAOTIC = 0xFF
|
|
SEASONS = [
|
|
SEASON_SPRING,
|
|
SEASON_SUMMER,
|
|
SEASON_AUTUMN,
|
|
SEASON_WINTER
|
|
]
|
|
|
|
SEASON_NAMES = {
|
|
SEASON_SPRING: "spring",
|
|
SEASON_SUMMER: "summer",
|
|
SEASON_AUTUMN: "autumn",
|
|
SEASON_WINTER: "winter",
|
|
SEASON_CHAOTIC: "chaotic"
|
|
}
|
|
|
|
SEASON_ITEMS = {
|
|
SEASON_WINTER: "Rod of Seasons (Winter)",
|
|
SEASON_SUMMER: "Rod of Seasons (Summer)",
|
|
SEASON_SPRING: "Rod of Seasons (Spring)",
|
|
SEASON_AUTUMN: "Rod of Seasons (Autumn)",
|
|
}
|
|
|
|
SEED_ITEMS = [
|
|
"Ember Seeds",
|
|
"Scent Seeds",
|
|
"Pegasus Seeds",
|
|
"Gale Seeds",
|
|
"Mystery Seeds",
|
|
]
|
|
|
|
DUNGEON_NAMES = [
|
|
"Hero's Cave",
|
|
"Gnarled Root Dungeon",
|
|
"Snake's Remains",
|
|
"Poison Moth's Lair",
|
|
"Dancing Dragon Dungeon",
|
|
"Unicorn's Cave",
|
|
"Ancient Ruins",
|
|
"Explorer's Crypt",
|
|
"Sword & Shield Dungeon",
|
|
"",
|
|
"",
|
|
"Linked Hero's Cave"
|
|
]
|
|
|
|
VALID_RUPEE_PRICE_VALUES = [
|
|
1, 2, 5, 10, 20, 25, 30, 40, 50, 60, 70, 80, 100, 150, 200, 300, 400, 500, 900, 999
|
|
]
|
|
VALID_RUPEE_ITEM_VALUES = [
|
|
1, 5, 10, 20, 30, 50, 100, 200
|
|
]
|
|
VALID_ORE_ITEM_VALUES = [
|
|
10, 25, 50
|
|
]
|
|
MARKET_LOCATIONS = ["subrosianMarket2", "subrosianMarket3", "subrosianMarket4", "subrosianMarket5"]
|
|
|
|
DEFAULT_SEASONS = {
|
|
"EYEGLASS_LAKE": SEASON_WINTER,
|
|
"HOLODRUM_PLAIN": SEASON_SPRING,
|
|
"EASTERN_SUBURBS": SEASON_AUTUMN,
|
|
"WOODS_OF_WINTER": SEASON_SUMMER,
|
|
"SUNKEN_CITY": SEASON_SUMMER,
|
|
"WESTERN_COAST": SEASON_WINTER,
|
|
"SPOOL_SWAMP": SEASON_AUTUMN,
|
|
"TEMPLE_REMAINS": SEASON_WINTER,
|
|
"LOST_WOODS": SEASON_AUTUMN,
|
|
"TARM_RUINS": SEASON_SPRING,
|
|
"HORON_VILLAGE": SEASON_CHAOTIC
|
|
}
|
|
|
|
DUNGEON_CONNECTIONS = {
|
|
"d0 entrance": "enter d0",
|
|
"d1 entrance": "enter d1",
|
|
"d2 entrance": "enter d2",
|
|
"d3 entrance": "enter d3",
|
|
"d4 entrance": "enter d4",
|
|
"d5 entrance": "enter d5",
|
|
"d6 entrance": "enter d6",
|
|
"d7 entrance": "enter d7",
|
|
"d8 entrance": "enter d8",
|
|
}
|
|
|
|
PORTAL_CONNECTIONS = {
|
|
"eastern suburbs portal": "volcanoes east portal",
|
|
"spool swamp portal": "subrosia market portal",
|
|
"mt. cucco portal": "strange brothers portal",
|
|
"horon village portal": "house of pirates portal",
|
|
"eyeglass lake portal": "great furnace portal",
|
|
"temple remains lower portal": "volcanoes west portal",
|
|
"temple remains upper portal": "d8 entrance portal",
|
|
}
|
|
|
|
LOST_WOODS_ITEM_SEQUENCE = [
|
|
[DIRECTION_LEFT, SEASON_WINTER],
|
|
[DIRECTION_LEFT, SEASON_AUTUMN],
|
|
[DIRECTION_LEFT, SEASON_SPRING],
|
|
[DIRECTION_LEFT, SEASON_SUMMER],
|
|
]
|
|
|
|
LOST_WOODS_MAIN_SEQUENCE = [
|
|
[DIRECTION_LEFT, SEASON_WINTER],
|
|
[DIRECTION_DOWN, SEASON_AUTUMN],
|
|
[DIRECTION_RIGHT, SEASON_SPRING],
|
|
[DIRECTION_UP, SEASON_SUMMER],
|
|
]
|
|
|
|
# The order of keys in this dictionary matters, since it's the same as the one used inside the ROM
|
|
OLD_MAN_RUPEE_VALUES = {
|
|
"old man in goron mountain": 300,
|
|
"old man near blaino": 200,
|
|
"old man near d1": 100,
|
|
"old man near western coast house": 300,
|
|
"old man in horon": 100,
|
|
"old man near d6": -200,
|
|
"old man near holly's house": -50,
|
|
"old man near mrs. ruul": -100
|
|
}
|
|
|
|
RUPEE_OLD_MAN_LOCATIONS = [
|
|
"Horon Village: Old Man",
|
|
"North Horon: Old Man Near D1",
|
|
"Holodrum Plain: Old Man Near Blaino's Gym",
|
|
"Goron Mountain: Old Man",
|
|
"Western Coast: Old Man",
|
|
"Woods of Winter: Old Man",
|
|
"Holodrum Plain: Old Man Near Mrs. Ruul's House",
|
|
"Tarm Ruins: Old Man Near D6"
|
|
]
|
|
|
|
SCRUB_LOCATIONS = [
|
|
"Spool Swamp: Business Scrub",
|
|
"Snake's Remains: Business Scrub",
|
|
"Dancing Dragon Dungeon (1F): Business Scrub",
|
|
"Samasa Desert: Business Scrub"
|
|
]
|
|
|
|
SUBROSIA_HIDDEN_DIGGING_SPOTS_LOCATIONS = [
|
|
"Subrosia: Hot Bath Digging Spot",
|
|
"Subrosia: Market Portal Digging Spot",
|
|
"Subrosia: Hard-Working Subrosian Digging Spot",
|
|
"Subrosia: Temple of Seasons Digging Spot",
|
|
"Subrosia: Northern Volcanoes Digging Spot",
|
|
"Subrosia: D8 Portal Digging Spot",
|
|
"Subrosia: Western Volcanoes Digging Spot"
|
|
]
|
|
|
|
SECRETS = [
|
|
"Horon Village: Clock Shop Secret",
|
|
"Western Coast: Graveyard Secret",
|
|
"Subrosia: Subrosian Secret",
|
|
"Sunken City: Diver Secret",
|
|
"Subrosia: Smith Secret",
|
|
"Subrosia: Piratian Secret",
|
|
"Subrosia: Temple Secret",
|
|
"Natzu Region: Deku Secret",
|
|
"Goron Mountain: Biggoron Secret",
|
|
"Horon Village: Mayor Secret"
|
|
]
|
|
|
|
SAMASA_GATE_CODE = [2, 2, 1, 0, 0, 3, 3, 3]
|
|
|
|
AVERAGE_PRICE_PER_LOCATION = {
|
|
"cheap": 50,
|
|
"reasonable": 100,
|
|
"expensive": 200,
|
|
"outrageous": 350
|
|
}
|
|
|
|
VANILLA_SHOP_PRICES = {
|
|
"horonShop1": 20,
|
|
"horonShop2": 30,
|
|
"horonShop3": 150,
|
|
"memberShop1": 300,
|
|
"memberShop2": 300,
|
|
"memberShop3": 200,
|
|
"advanceShop1": 100,
|
|
"advanceShop2": 100,
|
|
"advanceShop3": 100,
|
|
"syrupShop1": 100,
|
|
"syrupShop2": 300,
|
|
"syrupShop3": 300,
|
|
"subrosianMarket2": 30,
|
|
"subrosianMarket3": 40,
|
|
"subrosianMarket4": 50,
|
|
"subrosianMarket5": 60,
|
|
"spoolSwampScrub": 100,
|
|
"samasaCaveScrub": 100,
|
|
"d2Scrub": 30,
|
|
"d4Scrub": 20,
|
|
}
|
|
|
|
ITEM_GROUPS = {
|
|
"Small Keys": [
|
|
"Small Key (Hero's Cave)",
|
|
"Small Key (Gnarled Root Dungeon)",
|
|
"Small Key (Snake's Remains)",
|
|
"Small Key (Poison Moth's Lair)",
|
|
"Small Key (Dancing Dragon Dungeon)",
|
|
"Small Key (Unicorn's Cave)",
|
|
"Small Key (Ancient Ruins)",
|
|
"Small Key (Explorer's Crypt)",
|
|
"Small Key (Sword & Shield Dungeon)",
|
|
"Small Key (Linked Hero's Cave)",
|
|
],
|
|
"Boss Keys": [
|
|
"Boss Key (Gnarled Root Dungeon)",
|
|
"Boss Key (Snake's Remains)",
|
|
"Boss Key (Poison Moth's Lair)",
|
|
"Boss Key (Dancing Dragon Dungeon)",
|
|
"Boss Key (Unicorn's Cave)",
|
|
"Boss Key (Ancient Ruins)",
|
|
"Boss Key (Explorer's Crypt)",
|
|
"Boss Key (Sword & Shield Dungeon)",
|
|
],
|
|
"Compasses": [
|
|
"Compass (Gnarled Root Dungeon)",
|
|
"Compass (Snake's Remains)",
|
|
"Compass (Poison Moth's Lair)",
|
|
"Compass (Dancing Dragon Dungeon)",
|
|
"Compass (Unicorn's Cave)",
|
|
"Compass (Ancient Ruins)",
|
|
"Compass (Explorer's Crypt)",
|
|
"Compass (Sword & Shield Dungeon)",
|
|
],
|
|
"Dungeon Maps": [
|
|
"Dungeon Map (Gnarled Root Dungeon)",
|
|
"Dungeon Map (Snake's Remains)",
|
|
"Dungeon Map (Poison Moth's Lair)",
|
|
"Dungeon Map (Dancing Dragon Dungeon)",
|
|
"Dungeon Map (Unicorn's Cave)",
|
|
"Dungeon Map (Ancient Ruins)",
|
|
"Dungeon Map (Explorer's Crypt)",
|
|
"Dungeon Map (Sword & Shield Dungeon)",
|
|
],
|
|
"Master Keys": [
|
|
"Master Key (Hero's Cave)",
|
|
"Master Key (Gnarled Root Dungeon)",
|
|
"Master Key (Snake's Remains)",
|
|
"Master Key (Poison Moth's Lair)",
|
|
"Master Key (Dancing Dragon Dungeon)",
|
|
"Master Key (Unicorn's Cave)",
|
|
"Master Key (Ancient Ruins)",
|
|
"Master Key (Explorer's Crypt)",
|
|
"Master Key (Sword & Shield Dungeon)",
|
|
"Master Key (Linked Hero's Cave)",
|
|
],
|
|
"Essences": [
|
|
"Fertile Soil",
|
|
"Gift of Time",
|
|
"Bright Sun",
|
|
"Soothing Rain",
|
|
"Nurturing Warmth",
|
|
"Blowing Wind",
|
|
"Seed of Life",
|
|
"Changing Seasons",
|
|
],
|
|
"Jewels": [
|
|
"Square Jewel",
|
|
"Pyramid Jewel",
|
|
"Round Jewel",
|
|
"X-Shaped Jewel"
|
|
]
|
|
}
|
|
|
|
LOCATION_GROUPS = {
|
|
"D0": [
|
|
"Hero's Cave: Topmost Chest",
|
|
"Hero's Cave: Final Chest",
|
|
"Hero's Cave: Item in Basement Under Keese Room",
|
|
"Hero's Cave: Alternative Entrance Chest",
|
|
],
|
|
"D1": [
|
|
"Gnarled Root Dungeon: Drop in Right Stalfos Room",
|
|
"Gnarled Root Dungeon: Item in Basement",
|
|
"Gnarled Root Dungeon: Chest in Block-pushing Room",
|
|
"Gnarled Root Dungeon: Chest Near Railway",
|
|
"Gnarled Root Dungeon: Chest in Floormaster Room",
|
|
"Gnarled Root Dungeon: Chest Near Railway Lever",
|
|
"Gnarled Root Dungeon: Chest in Left Stalfos Room",
|
|
"Gnarled Root Dungeon: Hidden Chest Revealed by Button",
|
|
"Gnarled Root Dungeon: Chest in Goriya Room",
|
|
"Gnarled Root Dungeon: Boss Reward",
|
|
"Gnarled Root Dungeon: Essence",
|
|
],
|
|
"D2": [
|
|
"Snake's Remains: Drop in Left Rope Room",
|
|
"Snake's Remains: Chest in Distant Moblins Room",
|
|
"Snake's Remains: Chest in Rollers Section",
|
|
"Snake's Remains: Chest Left from Entrance",
|
|
"Snake's Remains: Chest Behind Pots in Hardhat Room",
|
|
"Snake's Remains: Chest in Right Rope Room",
|
|
"Snake's Remains: Chest in Moving Blades Room",
|
|
"Snake's Remains: Chest in Bomb Spiral Maze Room",
|
|
"Snake's Remains: Chest on Terrace",
|
|
"Snake's Remains: Business Scrub",
|
|
"Snake's Remains: Boss Reward",
|
|
"Snake's Remains: Essence",
|
|
],
|
|
"D3": [
|
|
"Poison Moth's Lair (B1F): Chest in Roller Room",
|
|
"Poison Moth's Lair (1F): Chest in Mimics Room",
|
|
"Poison Moth's Lair (1F): Chest Above East Trampoline",
|
|
"Poison Moth's Lair (B1F): Chest in Watery Room",
|
|
"Poison Moth's Lair (B1F): Chest on Quicksand Terrace",
|
|
"Poison Moth's Lair (1F): Chest in Moldorm Room",
|
|
"Poison Moth's Lair (1F): Chest Above West Trampoline & Owl",
|
|
"Poison Moth's Lair (1F): Chest in Room Behind Hidden Cracked Wall",
|
|
"Poison Moth's Lair (B1F): Chest in Moving Blade Room",
|
|
"Poison Moth's Lair (1F): Boss Reward",
|
|
"Poison Moth's Lair: Essence",
|
|
],
|
|
"D4": [
|
|
"Dancing Dragon Dungeon (2F): Pots on Buttons Puzzle Drop",
|
|
"Dancing Dragon Dungeon (2F): Chest North of Entrance",
|
|
"Dancing Dragon Dungeon (1F): Chest in Southwest Quadrant of Beamos Room",
|
|
"Dancing Dragon Dungeon (1F): Dark Room Chest",
|
|
"Dancing Dragon Dungeon (2F): Chest in Water Donut Room",
|
|
"Dancing Dragon Dungeon (2F): Pool Drop",
|
|
"Dancing Dragon Dungeon (1F): Chest on Small Terrace",
|
|
"Dancing Dragon Dungeon (1F): Chest Revealed by Minecart Torches",
|
|
"Dancing Dragon Dungeon (1F): Crumbling Room Chest",
|
|
"Dancing Dragon Dungeon (1F): Eye Diving Spot Item",
|
|
"Dancing Dragon Dungeon (B1F): Boss Reward",
|
|
"Dancing Dragon Dungeon (1F): Business Scrub",
|
|
"Dancing Dragon Dungeon: Essence",
|
|
],
|
|
"D5": [
|
|
"Unicorn's Cave: Right Cart Chest",
|
|
"Unicorn's Cave: Chest Left from Entrance",
|
|
"Unicorn's Cave: Magnet Gloves Chest",
|
|
"Unicorn's Cave: Terrace Chest",
|
|
"Unicorn's Cave: Armos Puzzle Room Chest",
|
|
"Unicorn's Cave: Gibdo Room Chest",
|
|
"Unicorn's Cave: Quicksand Spiral Chest",
|
|
"Unicorn's Cave: Magnet Spinner Chest",
|
|
"Unicorn's Cave: Chest in Right Half of Minecart Bay Room",
|
|
"Unicorn's Cave: Treadmills Basement Item",
|
|
"Unicorn's Cave: Boss Reward",
|
|
"Unicorn's Cave: Essence",
|
|
],
|
|
"D6": [
|
|
"Ancient Ruins (1F): Magnet Ball Puzzle Drop",
|
|
"Ancient Ruins (2F): Chest North of Main Spinner",
|
|
"Ancient Ruins (3F): Armos Hall Chest",
|
|
"Ancient Ruins (1F): Crystal Maze Room Chest",
|
|
"Ancient Ruins (1F): Crumbling Ground Room Chest",
|
|
"Ancient Ruins (2F): Chest in Gibdo Room",
|
|
"Ancient Ruins (2F): Chest Between 4 Armos",
|
|
"Ancient Ruins (1F): Chest in Beamos Room",
|
|
"Ancient Ruins (1F): Chest on Terrace Left of Entrance",
|
|
"Ancient Ruins (2F): Chest After Time Trial",
|
|
"Ancient Ruins (2F): Chest on Red Terrace Before Vire",
|
|
"Ancient Ruins (5F): Boss Reward",
|
|
"Ancient Ruins: Essence",
|
|
],
|
|
"D7": [
|
|
"Explorer's Crypt (1F): Chest in Wizzrobe Room",
|
|
"Explorer's Crypt (B1F): Chest in Fast Moving Platform Room",
|
|
"Explorer's Crypt (B2F): Stair Maze Chest",
|
|
"Explorer's Crypt (1F): Chest Right of Entrance",
|
|
"Explorer's Crypt (1F): Chest Behind Cracked Wall",
|
|
"Explorer's Crypt (B1F): Zol Button Drop",
|
|
"Explorer's Crypt (B2F): Armos Puzzle Drop",
|
|
"Explorer's Crypt (B1F): Chest Connected to Magnet Ball Button",
|
|
"Explorer's Crypt (1F): Chest Above Trampoline Near 2nd Poe",
|
|
"Explorer's Crypt (B2F): Drop in Room North of Stair Maze",
|
|
"Explorer's Crypt (B1F): Chest in Jumping Stalfos Room",
|
|
"Explorer's Crypt (B1F): Boss Reward",
|
|
"Explorer's Crypt: Essence",
|
|
],
|
|
"D8": [
|
|
"Sword & Shield Dungeon (1F): Eye Drop Near Entrance",
|
|
"Sword & Shield Dungeon (1F): Three Eyes Chest",
|
|
"Sword & Shield Dungeon (1F): Drop in Hardhat & Magnet Ball Room",
|
|
"Sword & Shield Dungeon (1F): U-Shaped Spiky Freezer Chest",
|
|
"Sword & Shield Dungeon (B1F): Chest Right of Spinner",
|
|
"Sword & Shield Dungeon (1F): Top Chest in Lava Bridge Room",
|
|
"Sword & Shield Dungeon (1F): Bottom Chest in Lava Bridge Room",
|
|
"Sword & Shield Dungeon (1F): Chest in Bombable Blocks Room",
|
|
"Sword & Shield Dungeon (1F): Chest on Terrace After Pols Voice Room",
|
|
"Sword & Shield Dungeon (1F): Ghost Armos Puzzle Drop",
|
|
"Sword & Shield Dungeon (B1F): Southeast Lava Chest",
|
|
"Sword & Shield Dungeon (B1F): Southwest Lava Chest",
|
|
"Sword & Shield Dungeon (1F): Chest in Sparks & Pots Room",
|
|
"Sword & Shield Dungeon (B1F): Boss Reward",
|
|
"Sword & Shield Dungeon: Essence",
|
|
],
|
|
"D11": [
|
|
"Linked Hero's Cave: Alternate Entrance Chest",
|
|
"Linked Hero's Cave: First Reward",
|
|
"Linked Hero's Cave: Checkerboard Drop",
|
|
"Linked Hero's Cave: Second Reward",
|
|
"Linked Hero's Cave: Torch Chest",
|
|
"Linked Hero's Cave: Flooded Room Drop",
|
|
"Linked Hero's Cave: Third Reward",
|
|
"Linked Hero's Cave: Fourth Reward",
|
|
"Linked Hero's Cave: Gauntlet",
|
|
"Linked Hero's Cave: Boomerang Maze",
|
|
"Linked Hero's Cave: Final Reward"
|
|
],
|
|
"Trade Sequence": [
|
|
"Horon Village: Dr. Left Reward",
|
|
"North Horon: Malon Trade",
|
|
"Maple Trade",
|
|
"Holodrum Plain: Mrs. Ruul Trade",
|
|
"Subrosia: Subrosian Chef Trade",
|
|
"Goron Mountain: Biggoron Trade",
|
|
"Sunken City: Ingo Trade",
|
|
"North Horon: Yelling Old Man Trade",
|
|
"Mt. Cucco: Talon Trade",
|
|
"Sunken City: Syrup Trade",
|
|
"Horon Village: Tick Tock Trade",
|
|
"Eastern Suburbs: Guru-Guru Trade",
|
|
"Mt. Cucco: Chest Behind Talon",
|
|
"Sunken City: Syrup Shop #1",
|
|
"Sunken City: Syrup Shop #2",
|
|
"Sunken City: Syrup Shop #3",
|
|
]
|
|
}
|
|
|
|
GASHA_SPOT_REGIONS = [
|
|
"impa gasha spot",
|
|
"horon gasha spot",
|
|
"suburbs gasha spot",
|
|
"holodrum plain gasha spot",
|
|
"holodrum plain island gasha spot",
|
|
"spool swamp north gasha spot",
|
|
"spool swamp south gasha spot",
|
|
"sunken city gasha spot",
|
|
"mt cucco gasha spot",
|
|
"goron mountain left gasha spot",
|
|
"goron mountain right gasha spot",
|
|
"eyeglass lake gasha spot",
|
|
"tarm ruins gasha spot",
|
|
"western coast gasha spot",
|
|
"samasa desert gasha spot",
|
|
"onox gasha spot",
|
|
]
|
|
|
|
TREASURE_SPAWN_INSTANT = 0x00
|
|
TREASURE_SPAWN_POOF = 0x10
|
|
TREASURE_SPAWN_DROP = 0x20
|
|
TREASURE_SPAWN_CHEST = 0x30
|
|
TREASURE_SPAWN_DIVE = 0x40
|
|
TREASURE_SPAWN_DIG = 0x50
|
|
TREASURE_SPAWN_DELAYED_CHEST = 0x60
|
|
|
|
TREASURE_GRAB_INSTANT = 0x00
|
|
TREASURE_GRAB_ONE_HAND = 0x01
|
|
TREASURE_GRAB_TWO_HANDS = 0x02
|
|
TREASURE_GRAB_SPIN_SLASH = 0x03
|
|
|
|
TREASURE_SET_ITEM_ROOM_FLAG = 0x08
|
|
|
|
COLLECT_TOUCH = TREASURE_SPAWN_INSTANT | TREASURE_GRAB_TWO_HANDS | TREASURE_SET_ITEM_ROOM_FLAG
|
|
COLLECT_POOF = TREASURE_SPAWN_POOF | TREASURE_GRAB_TWO_HANDS | TREASURE_SET_ITEM_ROOM_FLAG
|
|
COLLECT_DROP = TREASURE_SPAWN_DROP | TREASURE_GRAB_ONE_HAND | TREASURE_SET_ITEM_ROOM_FLAG
|
|
COLLECT_CHEST = TREASURE_SPAWN_CHEST | TREASURE_SET_ITEM_ROOM_FLAG
|
|
COLLECT_DIVE = TREASURE_SPAWN_DIVE | TREASURE_GRAB_ONE_HAND | TREASURE_SET_ITEM_ROOM_FLAG
|
|
COLLECT_DIG = TREASURE_SPAWN_DIG | TREASURE_GRAB_TWO_HANDS | TREASURE_SET_ITEM_ROOM_FLAG
|
|
COLLECT_DELAYED_CHEST = TREASURE_SPAWN_DELAYED_CHEST | TREASURE_GRAB_INSTANT | TREASURE_SET_ITEM_ROOM_FLAG
|
|
COLLECT_SPINSLASH = TREASURE_SPAWN_INSTANT | TREASURE_GRAB_SPIN_SLASH
|
|
COLLECT_FAKE_POOF = TREASURE_SPAWN_POOF | TREASURE_GRAB_INSTANT | TREASURE_SET_ITEM_ROOM_FLAG
|
|
COLLECT_KEYDROP = TREASURE_SPAWN_DROP | TREASURE_GRAB_INSTANT | TREASURE_SET_ITEM_ROOM_FLAG
|
|
COLLECT_DIVER_ROOM = 0x80
|
|
COLLECT_POE_SKIP_ROOM = 0x81
|
|
COLLECT_MAKU_TREE = 0x82
|
|
COLLECT_D5_ARMOS_PUZZLE = 0x83
|
|
COLLECT_D4_SCRUB_ROOM = 0x84
|
|
|
|
|
|
class OracleOfSeasonsConnectionType(IntEnum):
|
|
CONNECT_PORTAL_OVERWORLD = 1
|
|
CONNECT_PORTAL_SUBROSIA = 2
|
|
CONNECT_DUNGEON_OVERWORLD = 3
|
|
CONNECT_DUNGEON_INSIDE = 4
|