385 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			385 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Python
		
	
	
	
from typing import Dict, TypedDict
 | 
						|
 | 
						|
 | 
						|
class LocationDict(TypedDict, total=False):
 | 
						|
    name: str
 | 
						|
    region: int 
 | 
						|
 | 
						|
 | 
						|
location_table: Dict[int, LocationDict] = {
 | 
						|
    # Waynehouse
 | 
						|
    200622: {'name': "Waynehouse: Toilet",
 | 
						|
             'region': 2},
 | 
						|
    200623: {'name': "Waynehouse: Basement Pot 1",
 | 
						|
             'region': 2},
 | 
						|
    200624: {'name': "Waynehouse: Basement Pot 2",
 | 
						|
             'region': 2},
 | 
						|
    200625: {'name': "Waynehouse: Basement Pot 3",
 | 
						|
             'region': 2},
 | 
						|
    200626: {'name': "Waynehouse: Sarcophagus",
 | 
						|
             'region': 2},
 | 
						|
 | 
						|
    # Afterlife
 | 
						|
    200628: {'name': "Afterlife: Mangled Wayne",
 | 
						|
             'region': 1},
 | 
						|
    200629: {'name': "Afterlife: Jar near Mangled Wayne",
 | 
						|
             'region': 1},
 | 
						|
    200630: {'name': "Afterlife: Jar under Pool",
 | 
						|
             'region': 1},
 | 
						|
 | 
						|
    # New Muldul
 | 
						|
    200632: {'name': "New Muldul: Shop Ceiling Pot 1",
 | 
						|
             'region': 4},
 | 
						|
    200633: {'name': "New Muldul: Shop Ceiling Pot 2",
 | 
						|
             'region': 4},
 | 
						|
    200634: {'name': "New Muldul: Flag Banana",
 | 
						|
             'region': 4},
 | 
						|
    200635: {'name': "New Muldul: Pot near Vault",
 | 
						|
             'region': 4},
 | 
						|
    200785: {'name': "New Muldul: Pot above Vault",
 | 
						|
             'region': 4},
 | 
						|
    200636: {'name': "New Muldul: Underground Pot",
 | 
						|
             'region': 4},
 | 
						|
    200637: {'name': "New Muldul: Underground Chest",
 | 
						|
             'region': 4},
 | 
						|
    200638: {'name': "New Muldul: Juice Trade",
 | 
						|
             'region': 4},
 | 
						|
    200639: {'name': "New Muldul: Basement Suitcase",
 | 
						|
             'region': 4},
 | 
						|
    200640: {'name': "New Muldul: Upper House Chest 1",
 | 
						|
             'region': 4},
 | 
						|
    200641: {'name': "New Muldul: Upper House Chest 2",
 | 
						|
             'region': 4},
 | 
						|
 | 
						|
    # New Muldul Vault
 | 
						|
    200643: {'name': "New Muldul: Talk to Pongorma",
 | 
						|
             'region': 4},
 | 
						|
    200645: {'name': "New Muldul: Rescued Blerol 1",
 | 
						|
             'region': 4},
 | 
						|
    200646: {'name': "New Muldul: Rescued Blerol 2",
 | 
						|
             'region': 4},
 | 
						|
    200647: {'name': "New Muldul: Vault Left Chest",
 | 
						|
             'region': 5},
 | 
						|
    200648: {'name': "New Muldul: Vault Right Chest",
 | 
						|
             'region': 5},
 | 
						|
    200649: {'name': "New Muldul: Vault Bomb",
 | 
						|
             'region': 5},
 | 
						|
 | 
						|
    # Viewax's Edifice
 | 
						|
    200650: {'name': "Viewax's Edifice: Fountain Banana",
 | 
						|
             'region': 6},
 | 
						|
    200651: {'name': "Viewax's Edifice: Dedusmuln's Suitcase",
 | 
						|
             'region': 6},
 | 
						|
    200652: {'name': "Viewax's Edifice: Dedusmuln's Campfire",
 | 
						|
             'region': 6},
 | 
						|
    200653: {'name': "Viewax's Edifice: Talk to Dedusmuln",
 | 
						|
             'region': 6},
 | 
						|
    200655: {'name': "Viewax's Edifice: Canopic Jar",
 | 
						|
             'region': 6},
 | 
						|
    200656: {'name': "Viewax's Edifice: Cave Sarcophagus",
 | 
						|
             'region': 6},
 | 
						|
    200657: {'name': "Viewax's Edifice: Shielded Key",
 | 
						|
             'region': 6},
 | 
						|
    200658: {'name': "Viewax's Edifice: Tower Pot",
 | 
						|
             'region': 6},
 | 
						|
    200659: {'name': "Viewax's Edifice: Tower Jar",
 | 
						|
             'region': 6},
 | 
						|
    200660: {'name': "Viewax's Edifice: Tower Chest",
 | 
						|
             'region': 6},
 | 
						|
    200661: {'name': "Viewax's Edifice: Sage Fridge",
 | 
						|
             'region': 6},
 | 
						|
    200662: {'name': "Viewax's Edifice: Sage Item 1",
 | 
						|
             'region': 6},
 | 
						|
    200663: {'name': "Viewax's Edifice: Sage Item 2",
 | 
						|
             'region': 6},
 | 
						|
    200664: {'name': "Viewax's Edifice: Viewax Pot",
 | 
						|
             'region': 6},
 | 
						|
    200665: {'name': "Viewax's Edifice: Defeat Viewax",
 | 
						|
             'region': 6},
 | 
						|
 | 
						|
    # Viewax Arcade Minigame
 | 
						|
    200667: {'name': "Arcade 1: Key",
 | 
						|
             'region': 6},
 | 
						|
    200668: {'name': "Arcade 1: Coin Dash",
 | 
						|
             'region': 6},
 | 
						|
    200669: {'name': "Arcade 1: Burrito Alcove 1",
 | 
						|
             'region': 6},
 | 
						|
    200670: {'name': "Arcade 1: Burrito Alcove 2",
 | 
						|
             'region': 6},
 | 
						|
    200671: {'name': "Arcade 1: Behind Spikes Banana",
 | 
						|
             'region': 6},
 | 
						|
    200672: {'name': "Arcade 1: Pyramid Banana",
 | 
						|
             'region': 6},
 | 
						|
    200673: {'name': "Arcade 1: Moving Platforms Muscle Applique",
 | 
						|
             'region': 6},
 | 
						|
    200674: {'name': "Arcade 1: Bed Banana",
 | 
						|
             'region': 6},
 | 
						|
 | 
						|
    # Airship
 | 
						|
    200675: {'name': "Airship: Talk to Somsnosa",
 | 
						|
             'region': 7},
 | 
						|
    
 | 
						|
    # Arcade Island
 | 
						|
    200676: {'name': "Arcade Island: Shielded Key",
 | 
						|
             'region': 8},
 | 
						|
    200677: {'name': "Arcade 2: Flying Machine Banana",
 | 
						|
             'region': 8},
 | 
						|
    200678: {'name': "Arcade 2: Paper Cup Detour",
 | 
						|
             'region': 8},
 | 
						|
    200679: {'name': "Arcade 2: Peak Muscle Applique",
 | 
						|
             'region': 8},
 | 
						|
    200680: {'name': "Arcade 2: Double Banana 1",
 | 
						|
             'region': 8},
 | 
						|
    200681: {'name': "Arcade 2: Double Banana 2",
 | 
						|
             'region': 8},
 | 
						|
    200682: {'name': "Arcade 2: Cave Burrito",
 | 
						|
             'region': 8},
 | 
						|
 | 
						|
    # Juice Ranch
 | 
						|
    200684: {'name': "Juice Ranch: Juice 1",
 | 
						|
             'region': 10},
 | 
						|
    200685: {'name': "Juice Ranch: Juice 2",
 | 
						|
             'region': 10},
 | 
						|
    200686: {'name': "Juice Ranch: Juice 3",
 | 
						|
             'region': 10},
 | 
						|
    200687: {'name': "Juice Ranch: Ledge Rancher",
 | 
						|
             'region': 10},
 | 
						|
    200688: {'name': "Juice Ranch: Battle with Somsnosa",
 | 
						|
             'region': 10},
 | 
						|
    200690: {'name': "Juice Ranch: Fridge",
 | 
						|
             'region': 10},
 | 
						|
 | 
						|
    # Worm Pod
 | 
						|
    200692: {'name': "Worm Pod: Key",
 | 
						|
             'region': 12},
 | 
						|
 | 
						|
    # Foglast
 | 
						|
    200693: {'name': "Foglast: West Sarcophagus",
 | 
						|
             'region': 13},
 | 
						|
    200694: {'name': "Foglast: Underground Sarcophagus",
 | 
						|
             'region': 13},
 | 
						|
    200695: {'name': "Foglast: Shielded Key",
 | 
						|
             'region': 13},
 | 
						|
    200696: {'name': "Foglast: Buy Clicker",
 | 
						|
             'region': 13},
 | 
						|
    200698: {'name': "Foglast: Shielded Chest",
 | 
						|
             'region': 13},
 | 
						|
    200699: {'name': "Foglast: Cave Fridge",
 | 
						|
             'region': 13},
 | 
						|
    200700: {'name': "Foglast: Roof Sarcophagus",
 | 
						|
             'region': 13},
 | 
						|
    200701: {'name': "Foglast: Under Lair Sarcophagus 1",
 | 
						|
             'region': 13},
 | 
						|
    200702: {'name': "Foglast: Under Lair Sarcophagus 2",
 | 
						|
             'region': 13},
 | 
						|
    200703: {'name': "Foglast: Under Lair Sarcophagus 3",
 | 
						|
             'region': 13},
 | 
						|
    200704: {'name': "Foglast: Sage Sarcophagus",
 | 
						|
             'region': 13},
 | 
						|
    200705: {'name': "Foglast: Sage Item 1",
 | 
						|
             'region': 13},
 | 
						|
    200706: {'name': "Foglast: Sage Item 2",
 | 
						|
             'region': 13},
 | 
						|
 | 
						|
    # Drill Castle
 | 
						|
    200707: {'name': "Drill Castle: Ledge Banana",
 | 
						|
             'region': 14},
 | 
						|
    200708: {'name': "Drill Castle: Island Banana",
 | 
						|
             'region': 14},
 | 
						|
    200709: {'name': "Drill Castle: Island Pot",
 | 
						|
             'region': 14},
 | 
						|
    200710: {'name': "Drill Castle: Cave Sarcophagus",
 | 
						|
             'region': 14},
 | 
						|
    200711: {'name': "Drill Castle: Roof Banana",
 | 
						|
             'region': 14},
 | 
						|
 | 
						|
    # Sage Labyrinth
 | 
						|
    200713: {'name': "Sage Labyrinth: 1F Chest Near Fountain",
 | 
						|
             'region': 15},
 | 
						|
    200714: {'name': "Sage Labyrinth: 1F Hidden Sarcophagus",
 | 
						|
             'region': 15},
 | 
						|
    200715: {'name': "Sage Labyrinth: 1F Four Statues Chest 1",
 | 
						|
             'region': 15},
 | 
						|
    200716: {'name': "Sage Labyrinth: 1F Four Statues Chest 2",
 | 
						|
             'region': 15},
 | 
						|
    200717: {'name': "Sage Labyrinth: B1 Double Chest 1",
 | 
						|
             'region': 15},
 | 
						|
    200718: {'name': "Sage Labyrinth: B1 Double Chest 2",
 | 
						|
             'region': 15},
 | 
						|
    200719: {'name': "Sage Labyrinth: B1 Single Chest",
 | 
						|
             'region': 15},
 | 
						|
    200720: {'name': "Sage Labyrinth: B1 Enemy Chest",
 | 
						|
             'region': 15},
 | 
						|
    200721: {'name': "Sage Labyrinth: B1 Hidden Sarcophagus",
 | 
						|
             'region': 15},
 | 
						|
    200722: {'name': "Sage Labyrinth: B1 Hole Chest",
 | 
						|
             'region': 15},
 | 
						|
    200723: {'name': "Sage Labyrinth: B2 Hidden Sarcophagus 1",
 | 
						|
             'region': 15},
 | 
						|
    200724: {'name': "Sage Labyrinth: B2 Hidden Sarcophagus 2",
 | 
						|
             'region': 15},
 | 
						|
    200754: {'name': "Sage Labyrinth: 2F Sarcophagus",
 | 
						|
             'region': 15},
 | 
						|
    200725: {'name': "Sage Labyrinth: Motor Hunter Sarcophagus",
 | 
						|
             'region': 15},
 | 
						|
    200726: {'name': "Sage Labyrinth: Sage Item 1",
 | 
						|
             'region': 15},
 | 
						|
    200727: {'name': "Sage Labyrinth: Sage Item 2",
 | 
						|
             'region': 15},
 | 
						|
    200728: {'name': "Sage Labyrinth: Sage Left Arm",
 | 
						|
             'region': 15},
 | 
						|
    200729: {'name': "Sage Labyrinth: Sage Right Arm",
 | 
						|
             'region': 15},
 | 
						|
    200730: {'name': "Sage Labyrinth: Sage Left Leg",
 | 
						|
             'region': 15},
 | 
						|
    200731: {'name': "Sage Labyrinth: Sage Right Leg",
 | 
						|
             'region': 15},
 | 
						|
 | 
						|
    # Sage Airship
 | 
						|
    200732: {'name': "Sage Airship: Bottom Level Pot",
 | 
						|
             'region': 16},
 | 
						|
    200733: {'name': "Sage Airship: Flesh Pot",
 | 
						|
             'region': 16},
 | 
						|
    200734: {'name': "Sage Airship: Top Jar",
 | 
						|
             'region': 16},
 | 
						|
 | 
						|
    # Hylemxylem
 | 
						|
    200736: {'name': "Hylemxylem: Jar",
 | 
						|
             'region': 17},
 | 
						|
    200737: {'name': "Hylemxylem: Lower Reservoir Key",
 | 
						|
             'region': 17},
 | 
						|
    200738: {'name': "Hylemxylem: Fountain Banana",
 | 
						|
             'region': 17},
 | 
						|
    200739: {'name': "Hylemxylem: East Island Banana",
 | 
						|
             'region': 17},
 | 
						|
    200740: {'name': "Hylemxylem: East Island Chest",
 | 
						|
             'region': 17},
 | 
						|
    200741: {'name': "Hylemxylem: Upper Chamber Banana",
 | 
						|
             'region': 17},
 | 
						|
    200742: {'name': "Hylemxylem: Across Upper Reservoir Chest",
 | 
						|
             'region': 17},
 | 
						|
    200743: {'name': "Hylemxylem: Drained Lower Reservoir Chest",
 | 
						|
             'region': 17},
 | 
						|
    200744: {'name': "Hylemxylem: Drained Lower Reservoir Burrito 1",
 | 
						|
             'region': 17},
 | 
						|
    200745: {'name': "Hylemxylem: Drained Lower Reservoir Burrito 2",
 | 
						|
             'region': 17},
 | 
						|
    200746: {'name': "Hylemxylem: Lower Reservoir Hole Pot 1",
 | 
						|
             'region': 17},
 | 
						|
    200747: {'name': "Hylemxylem: Lower Reservoir Hole Pot 2",
 | 
						|
             'region': 17},
 | 
						|
    200748: {'name': "Hylemxylem: Lower Reservoir Hole Pot 3",
 | 
						|
             'region': 17},
 | 
						|
    200749: {'name': "Hylemxylem: Lower Reservoir Hole Sarcophagus",
 | 
						|
             'region': 17},
 | 
						|
    200750: {'name': "Hylemxylem: Drained Upper Reservoir Burrito 1",
 | 
						|
             'region': 17},
 | 
						|
    200751: {'name': "Hylemxylem: Drained Upper Reservoir Burrito 2",
 | 
						|
             'region': 17},
 | 
						|
    200752: {'name': "Hylemxylem: Drained Upper Reservoir Burrito 3",
 | 
						|
             'region': 17},
 | 
						|
    200753: {'name': "Hylemxylem: Upper Reservoir Hole Key",
 | 
						|
             'region': 17}
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
tv_location_table: Dict[int, LocationDict] = {
 | 
						|
    200627: {'name': "Waynehouse: TV",
 | 
						|
             'region': 2},
 | 
						|
    200631: {'name': "Afterlife: TV",
 | 
						|
             'region': 1},
 | 
						|
    200642: {'name': "New Muldul: TV",
 | 
						|
             'region': 4},
 | 
						|
    200666: {'name': "Viewax's Edifice: TV",
 | 
						|
             'region': 6},
 | 
						|
    200683: {'name': "TV Island: TV",
 | 
						|
             'region': 9},
 | 
						|
    200691: {'name': "Juice Ranch: TV",
 | 
						|
             'region': 10},
 | 
						|
    200697: {'name': "Foglast: TV",
 | 
						|
             'region': 13},
 | 
						|
    200712: {'name': "Drill Castle: TV",
 | 
						|
             'region': 14},
 | 
						|
    200735: {'name': "Sage Airship: TV",
 | 
						|
             'region': 16}
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
party_location_table: Dict[int, LocationDict] = {
 | 
						|
    200644: {'name': "New Muldul: Pongorma Joins",
 | 
						|
             'region': 4},
 | 
						|
    200654: {'name': "Viewax's Edifice: Dedusmuln Joins",
 | 
						|
             'region': 6},
 | 
						|
    200689: {'name': "Juice Ranch: Somsnosa Joins",
 | 
						|
             'region': 10}
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
medallion_location_table: Dict[int, LocationDict] = {
 | 
						|
    200755: {'name': "New Muldul: Upper House Medallion",
 | 
						|
             'region': 4},
 | 
						|
 | 
						|
    200756: {'name': "New Muldul: Vault Rear Left Medallion",
 | 
						|
             'region': 5},
 | 
						|
    200757: {'name': "New Muldul: Vault Rear Right Medallion",
 | 
						|
             'region': 5},
 | 
						|
    200758: {'name': "New Muldul: Vault Center Medallion",
 | 
						|
             'region': 5},
 | 
						|
    200759: {'name': "New Muldul: Vault Front Left Medallion",
 | 
						|
             'region': 5},
 | 
						|
    200760: {'name': "New Muldul: Vault Front Right Medallion",
 | 
						|
             'region': 5},
 | 
						|
 | 
						|
    200761: {'name': "Viewax's Edifice: Fort Wall Medallion",
 | 
						|
             'region': 6},
 | 
						|
    200762: {'name': "Viewax's Edifice: Jar Medallion",
 | 
						|
             'region': 6},
 | 
						|
    200763: {'name': "Viewax's Edifice: Sage Chair Medallion",
 | 
						|
             'region': 6},
 | 
						|
    200764: {'name': "Arcade 1: Lonely Medallion",
 | 
						|
             'region': 6},
 | 
						|
    200765: {'name': "Arcade 1: Alcove Medallion",
 | 
						|
             'region': 6},
 | 
						|
    200766: {'name': "Arcade 1: Lava Medallion",
 | 
						|
             'region': 6},
 | 
						|
 | 
						|
    200767: {'name': "Arcade 2: Flying Machine Medallion",
 | 
						|
             'region': 8},
 | 
						|
    200768: {'name': "Arcade 2: Guarded Medallion",
 | 
						|
             'region': 8},
 | 
						|
    200769: {'name': "Arcade 2: Spinning Medallion",
 | 
						|
             'region': 8},
 | 
						|
    200770: {'name': "Arcade 2: Hook Medallion",
 | 
						|
             'region': 8},
 | 
						|
    200771: {'name': "Arcade 2: Flag Medallion",
 | 
						|
             'region': 8},
 | 
						|
 | 
						|
    200772: {'name': "Foglast: Under Lair Medallion",
 | 
						|
             'region': 13},
 | 
						|
    200773: {'name': "Foglast: Mid-Air Medallion",
 | 
						|
             'region': 13},
 | 
						|
    200774: {'name': "Foglast: Top of Tower Medallion",
 | 
						|
             'region': 13},
 | 
						|
 | 
						|
    200775: {'name': "Sage Airship: Walkway Medallion",
 | 
						|
             'region': 16},
 | 
						|
    200776: {'name': "Sage Airship: Flesh Medallion",
 | 
						|
             'region': 16},
 | 
						|
    200777: {'name': "Sage Airship: Top of Ship Medallion",
 | 
						|
             'region': 16},
 | 
						|
    200778: {'name': "Sage Airship: Hidden Medallion 1",
 | 
						|
             'region': 16},
 | 
						|
    200779: {'name': "Sage Airship: Hidden Medallion 2",
 | 
						|
             'region': 16},
 | 
						|
    200780: {'name': "Sage Airship: Hidden Medallion 3",
 | 
						|
             'region': 16},
 | 
						|
 | 
						|
    200781: {'name': "Hylemxylem: Lower Reservoir Medallion",
 | 
						|
             'region': 17},
 | 
						|
    200782: {'name': "Hylemxylem: Lower Reservoir Hole Medallion",
 | 
						|
             'region': 17},
 | 
						|
    200783: {'name': "Hylemxylem: Drain Switch Medallion",
 | 
						|
             'region': 17},
 | 
						|
    200784: {'name': "Hylemxylem: Warpo Medallion",
 | 
						|
             'region': 17}
 | 
						|
} |