190 lines
9.2 KiB
Python
190 lines
9.2 KiB
Python
from .data import lname
|
|
from typing import Dict, List, Optional, TypedDict, Union
|
|
|
|
|
|
class RegionInfo(TypedDict, total=False):
|
|
locations: List[str]
|
|
entrances: Dict[str, str]
|
|
|
|
|
|
# # # KEY # # #
|
|
# "locations" = A list of the Locations to add to that Region when adding said Region.
|
|
# "entrances" = A dict of the connecting Regions to the Entrances' names to add to that Region when adding said Region.
|
|
cvcotm_region_info: Dict[str, RegionInfo] = {
|
|
"Catacomb": {"locations": [lname.sr3,
|
|
lname.cc1,
|
|
lname.cc3,
|
|
lname.cc3b,
|
|
lname.cc4,
|
|
lname.cc5,
|
|
lname.cc8,
|
|
lname.cc8b,
|
|
lname.cc9,
|
|
lname.cc10,
|
|
lname.cc13,
|
|
lname.cc14,
|
|
lname.cc14b,
|
|
lname.cc16,
|
|
lname.cc20,
|
|
lname.cc22,
|
|
lname.cc24,
|
|
lname.cc25],
|
|
"entrances": {"Abyss Stairway": "Catacomb to Stairway"}},
|
|
|
|
"Abyss Stairway": {"locations": [lname.as2,
|
|
lname.as3],
|
|
"entrances": {"Audience Room": "Stairway to Audience"}},
|
|
|
|
"Audience Room": {"locations": [lname.as4,
|
|
lname.as9,
|
|
lname.ar4,
|
|
lname.ar7,
|
|
lname.ar8,
|
|
lname.ar9,
|
|
lname.ar10,
|
|
lname.ar11,
|
|
lname.ar14,
|
|
lname.ar14b,
|
|
lname.ar16,
|
|
lname.ar17,
|
|
lname.ar17b,
|
|
lname.ar18,
|
|
lname.ar19,
|
|
lname.ar21,
|
|
lname.ar25,
|
|
lname.ar26,
|
|
lname.ar27,
|
|
lname.ar30,
|
|
lname.ar30b,
|
|
lname.ow0,
|
|
lname.ow1,
|
|
lname.ow2,
|
|
lname.th1,
|
|
lname.th3],
|
|
"entrances": {"Machine Tower Bottom": "Audience to Machine Bottom",
|
|
"Machine Tower Top": "Audience to Machine Top",
|
|
"Chapel Tower Bottom": "Audience to Chapel",
|
|
"Underground Gallery Lower": "Audience to Gallery",
|
|
"Underground Warehouse Start": "Audience to Warehouse",
|
|
"Underground Waterway Start": "Audience to Waterway",
|
|
"Observation Tower": "Audience to Observation",
|
|
"Ceremonial Room": "Ceremonial Door"}},
|
|
|
|
"Machine Tower Bottom": {"locations": [lname.mt0,
|
|
lname.mt2,
|
|
lname.mt3,
|
|
lname.mt4,
|
|
lname.mt6,
|
|
lname.mt8,
|
|
lname.mt10,
|
|
lname.mt11],
|
|
"entrances": {"Machine Tower Top": "Machine Bottom to Top"}},
|
|
|
|
"Machine Tower Top": {"locations": [lname.mt13,
|
|
lname.mt14,
|
|
lname.mt17,
|
|
lname.mt19]},
|
|
|
|
"Eternal Corridor Pit": {"locations": [lname.ec5],
|
|
"entrances": {"Underground Gallery Upper": "Corridor to Gallery",
|
|
"Chapel Tower Bottom": "Escape the Gallery Pit"}},
|
|
|
|
"Chapel Tower Bottom": {"locations": [lname.ec7,
|
|
lname.ec9,
|
|
lname.ct1,
|
|
lname.ct4,
|
|
lname.ct5,
|
|
lname.ct6,
|
|
lname.ct6b,
|
|
lname.ct8,
|
|
lname.ct10,
|
|
lname.ct13,
|
|
lname.ct15],
|
|
"entrances": {"Eternal Corridor Pit": "Into the Corridor Pit",
|
|
"Underground Waterway End": "Dip Into Waterway End",
|
|
"Chapel Tower Top": "Climb to Chapel Top"}},
|
|
|
|
"Chapel Tower Top": {"locations": [lname.ct16,
|
|
lname.ct18,
|
|
lname.ct21,
|
|
lname.ct22],
|
|
"entrances": {"Battle Arena": "Arena Passage"}},
|
|
|
|
"Battle Arena": {"locations": [lname.ct26,
|
|
lname.ct26b,
|
|
lname.ba24,
|
|
lname.arena_victory]},
|
|
|
|
"Underground Gallery Upper": {"locations": [lname.ug0,
|
|
lname.ug1,
|
|
lname.ug2,
|
|
lname.ug3,
|
|
lname.ug3b],
|
|
"entrances": {"Eternal Corridor Pit": "Gallery to Corridor",
|
|
"Underground Gallery Lower": "Gallery Upper to Lower"}},
|
|
|
|
"Underground Gallery Lower": {"locations": [lname.ug8,
|
|
lname.ug10,
|
|
lname.ug13,
|
|
lname.ug15,
|
|
lname.ug20],
|
|
"entrances": {"Underground Gallery Upper": "Gallery Lower to Upper"}},
|
|
|
|
"Underground Warehouse Start": {"locations": [lname.uw1],
|
|
"entrances": {"Underground Warehouse Main": "Into Warehouse Main"}},
|
|
|
|
"Underground Warehouse Main": {"locations": [lname.uw6,
|
|
lname.uw8,
|
|
lname.uw9,
|
|
lname.uw10,
|
|
lname.uw11,
|
|
lname.uw14,
|
|
lname.uw16,
|
|
lname.uw16b,
|
|
lname.uw19,
|
|
lname.uw23,
|
|
lname.uw24,
|
|
lname.uw25]},
|
|
|
|
"Underground Waterway Start": {"locations": [lname.uy1],
|
|
"entrances": {"Underground Waterway Main": "Into Waterway Main"}},
|
|
|
|
"Underground Waterway Main": {"locations": [lname.uy3,
|
|
lname.uy3b,
|
|
lname.uy4,
|
|
lname.uy5,
|
|
lname.uy7,
|
|
lname.uy8,
|
|
lname.uy9,
|
|
lname.uy9b,
|
|
lname.uy12],
|
|
"entrances": {"Underground Waterway End": "Onward to Waterway End"}},
|
|
|
|
"Underground Waterway End": {"locations": [lname.uy12b,
|
|
lname.uy13,
|
|
lname.uy17,
|
|
lname.uy18]},
|
|
|
|
"Observation Tower": {"locations": [lname.ot1,
|
|
lname.ot2,
|
|
lname.ot3,
|
|
lname.ot5,
|
|
lname.ot8,
|
|
lname.ot9,
|
|
lname.ot12,
|
|
lname.ot13,
|
|
lname.ot16,
|
|
lname.ot20]},
|
|
|
|
"Ceremonial Room": {"locations": [lname.cr1,
|
|
lname.dracula]},
|
|
}
|
|
|
|
|
|
def get_region_info(region: str, info: str) -> Optional[Union[List[str], Dict[str, str]]]:
|
|
return cvcotm_region_info[region].get(info, None)
|
|
|
|
|
|
def get_all_region_names() -> List[str]:
|
|
return [reg_name for reg_name in cvcotm_region_info]
|