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, | ||
|  | } |