83 lines
2.7 KiB
Python
83 lines
2.7 KiB
Python
from typing import Optional, Dict
|
|
|
|
from BaseClasses import Location
|
|
|
|
from .Constants import *
|
|
|
|
|
|
class SavingPrincessLocation(Location):
|
|
game: str = GAME_NAME
|
|
|
|
|
|
class LocData:
|
|
code: Optional[int]
|
|
|
|
def __init__(self, code: Optional[int] = None):
|
|
if code is not None:
|
|
self.code = code + BASE_ID
|
|
else:
|
|
self.code = None
|
|
|
|
|
|
location_dict_base: Dict[str, LocData] = {
|
|
LOCATION_CAVE_AMMO: LocData(0),
|
|
LOCATION_CAVE_RELOAD: LocData(1),
|
|
LOCATION_CAVE_HEALTH: LocData(2),
|
|
LOCATION_CAVE_WEAPON: LocData(3),
|
|
LOCATION_VOLCANIC_RELOAD: LocData(4),
|
|
LOCATION_VOLCANIC_HEALTH: LocData(5),
|
|
LOCATION_VOLCANIC_AMMO: LocData(6),
|
|
LOCATION_VOLCANIC_WEAPON: LocData(7),
|
|
LOCATION_ARCTIC_AMMO: LocData(8),
|
|
LOCATION_ARCTIC_RELOAD: LocData(9),
|
|
LOCATION_ARCTIC_HEALTH: LocData(10),
|
|
LOCATION_ARCTIC_WEAPON: LocData(11),
|
|
LOCATION_JACKET: LocData(12),
|
|
LOCATION_HUB_AMMO: LocData(13),
|
|
LOCATION_HUB_HEALTH: LocData(14),
|
|
LOCATION_HUB_RELOAD: LocData(15),
|
|
LOCATION_SWAMP_AMMO: LocData(16),
|
|
LOCATION_SWAMP_HEALTH: LocData(17),
|
|
LOCATION_SWAMP_RELOAD: LocData(18),
|
|
LOCATION_SWAMP_SPECIAL: LocData(19),
|
|
LOCATION_ELECTRICAL_RELOAD: LocData(20),
|
|
LOCATION_ELECTRICAL_HEALTH: LocData(21),
|
|
LOCATION_ELECTRICAL_AMMO: LocData(22),
|
|
LOCATION_ELECTRICAL_WEAPON: LocData(23),
|
|
}
|
|
|
|
location_dict_expanded: Dict[str, LocData] = {
|
|
**location_dict_base,
|
|
EP_LOCATION_CAVE_MINIBOSS: LocData(24),
|
|
EP_LOCATION_CAVE_BOSS: LocData(25),
|
|
EP_LOCATION_VOLCANIC_BOSS: LocData(26),
|
|
EP_LOCATION_ARCTIC_BOSS: LocData(27),
|
|
EP_LOCATION_HUB_CONSOLE: LocData(28),
|
|
EP_LOCATION_HUB_NINJA_SCARE: LocData(29),
|
|
EP_LOCATION_SWAMP_BOSS: LocData(30),
|
|
EP_LOCATION_ELEVATOR_NINJA_FIGHT: LocData(31),
|
|
EP_LOCATION_ELECTRICAL_EXTRA: LocData(32),
|
|
EP_LOCATION_ELECTRICAL_MINIBOSS: LocData(33),
|
|
EP_LOCATION_ELECTRICAL_BOSS: LocData(34),
|
|
EP_LOCATION_ELECTRICAL_FINAL_BOSS: LocData(35),
|
|
}
|
|
|
|
location_dict_event_expanded: Dict[str, LocData] = {
|
|
EVENT_LOCATION_VICTORY: LocData(),
|
|
}
|
|
|
|
# most event locations are only relevant without expanded pool
|
|
location_dict_events: Dict[str, LocData] = {
|
|
EVENT_LOCATION_GUARD_GONE: LocData(),
|
|
EVENT_LOCATION_CLIFF_GONE: LocData(),
|
|
EVENT_LOCATION_ACE_GONE: LocData(),
|
|
EVENT_LOCATION_SNAKE_GONE: LocData(),
|
|
EVENT_LOCATION_POWER_ON: LocData(),
|
|
**location_dict_event_expanded,
|
|
}
|
|
|
|
location_dict: Dict[str, LocData] = {
|
|
**location_dict_expanded,
|
|
**location_dict_events,
|
|
}
|