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