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] |