1295 lines
		
	
	
		
			40 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			1295 lines
		
	
	
		
			40 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from typing import List, Set, TypedDict | ||
|  | 
 | ||
|  | 
 | ||
|  | class LocationDict(TypedDict): | ||
|  |     name: str | ||
|  |     region: str | ||
|  |     game_id: str | ||
|  |     room: str | ||
|  | 
 | ||
|  | 
 | ||
|  | location_table: List[LocationDict] = [ | ||
|  |     # Albero (35) | ||
|  |     {'name': "Albero: Tirso's house, top floor", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "RB01", | ||
|  |         'room': "D01Z02S02"}, | ||
|  |     {'name': "Albero: Outside Ossuary", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "CO43", | ||
|  |         'room': "D01Z02S04"}, | ||
|  |     {'name': "Albero: Graveyard", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "CO16", | ||
|  |         'room': "D01Z02S05"}, | ||
|  |     {'name': "Albero: Gate of Travel room", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "QI65", | ||
|  |         'room': "D01Z02S07"}, | ||
|  |     {'name': "Albero: Child of Moonlight", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "RESCUED_CHERUB_08", | ||
|  |         'room': "D01Z02S03"}, | ||
|  |     {'name': "Albero: Bless Linen Cloth", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "RE04", | ||
|  |         'room': "D01Z02S01"}, | ||
|  |     {'name': "Albero: Bless Hatched Egg", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "RE10", | ||
|  |         'room': "D01Z02S01"}, | ||
|  |     {'name': "Albero: Bless Severed Hand", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "RE02", | ||
|  |         'room': "D01Z02S01"}, | ||
|  |     {'name': "Albero: First gift for Cleofas", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "QI01", | ||
|  |         'room': "D01Z02S03"}, | ||
|  |     {'name': "Albero: Final gift for Cleofas", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "PR11", | ||
|  |         'room': "D01Z02S03"}, | ||
|  |     {'name': "Albero: Tirso's 1st reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "QI66", | ||
|  |         'room': "D01Z02S02"}, | ||
|  |     {'name': "Albero: Tirso's 2nd reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Tirso[500]", | ||
|  |         'room': "D01Z02S02"}, | ||
|  |     {'name': "Albero: Tirso's 3rd reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Tirso[1000]", | ||
|  |         'room': "D01Z02S02"}, | ||
|  |     {'name': "Albero: Tirso's 4th reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Tirso[2000]", | ||
|  |         'room': "D01Z02S02"}, | ||
|  |     {'name': "Albero: Tirso's 5th reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Tirso[5000]", | ||
|  |         'room': "D01Z02S02"}, | ||
|  |     {'name': "Albero: Tirso's 6th reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Tirso[10000]", | ||
|  |         'room': "D01Z02S02"}, | ||
|  |     {'name': "Albero: Tirso's final reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "QI56", | ||
|  |         'room': "D01Z02S02"}, | ||
|  |     {'name': "Albero: Lvdovico's 1st reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Lvdovico[500]", | ||
|  |         'room': "D01Z02S03"}, | ||
|  |     {'name': "Albero: Lvdovico's 2nd reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Lvdovico[1000]", | ||
|  |         'room': "D01Z02S03"}, | ||
|  |     {'name': "Albero: Lvdovico's 3rd reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "PR03", | ||
|  |         'room': "D01Z02S03"}, | ||
|  |     {'name': "Ossuary: Isidora, Voice of the Dead", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "QI201", | ||
|  |         'room': "D01BZ08S01"}, | ||
|  |     {'name': "Albero: Mea Culpa altar", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Sword[D01Z02S06]", | ||
|  |         'room': "D01Z02S06"}, | ||
|  |     {'name': "Albero: Donate 5000 Tears", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "RB104", | ||
|  |         'room': "D01BZ04S01"}, | ||
|  |     {'name': "Albero: Donate 50000 Tears", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "RB105", | ||
|  |         'room': "D01BZ04S01"}, | ||
|  |     {'name': "Ossuary: 1st reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Undertaker[250]", | ||
|  |         'room': "D01BZ06S01"}, | ||
|  |     {'name': "Ossuary: 2nd reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Undertaker[500]", | ||
|  |         'room': "D01BZ06S01"}, | ||
|  |     {'name': "Ossuary: 3rd reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Undertaker[750]", | ||
|  |         'room': "D01BZ06S01"}, | ||
|  |     {'name': "Ossuary: 4th reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Undertaker[1000]", | ||
|  |         'room': "D01BZ06S01"}, | ||
|  |     {'name': "Ossuary: 5th reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Undertaker[1250]", | ||
|  |         'room': "D01BZ06S01"}, | ||
|  |     {'name': "Ossuary: 6th reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Undertaker[1500]", | ||
|  |         'room': "D01BZ06S01"}, | ||
|  |     {'name': "Ossuary: 7th reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Undertaker[1750]", | ||
|  |         'room': "D01BZ06S01"}, | ||
|  |     {'name': "Ossuary: 8th reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Undertaker[2000]", | ||
|  |         'room': "D01BZ06S01"}, | ||
|  |     {'name': "Ossuary: 9th reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Undertaker[2500]", | ||
|  |         'room': "D01BZ06S01"}, | ||
|  |     {'name': "Ossuary: 10th reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Undertaker[3000]", | ||
|  |         'room': "D01BZ06S01"}, | ||
|  |     {'name': "Ossuary: 11th reward", | ||
|  |         'region': "albero", | ||
|  |         'game_id': "Undertaker[5000]", | ||
|  |         'room': "D01BZ06S01"}, | ||
|  |      | ||
|  |     # All the Tears of the Sea (1) | ||
|  |     {'name': "AtTotS: Miriam's gift", | ||
|  |         'region': "attots", | ||
|  |         'game_id': "PR201", | ||
|  |         'room': "D04Z04S02"}, | ||
|  | 
 | ||
|  |     # Archcathedral Rooftops (11) | ||
|  |     {'name': "AR: First soldier fight", | ||
|  |         'region': "ar", | ||
|  |         'game_id': "QI02", | ||
|  |         'room': "D06Z01S03"}, | ||
|  |     {'name': "AR: Second soldier fight", | ||
|  |         'region': "ar", | ||
|  |         'game_id': "QI03", | ||
|  |         'room': "D06Z01S06"}, | ||
|  |     {'name': "AR: Third soldier fight", | ||
|  |         'region': "ar", | ||
|  |         'game_id': "QI04", | ||
|  |         'room': "D06Z01S21"}, | ||
|  |     {'name': "AR: Upper west shaft ledge", | ||
|  |         'region': "ar", | ||
|  |         'game_id': "CO06", | ||
|  |         'room': "D06Z01S12"}, | ||
|  |     {'name': "AR: Upper west shaft Child of Moonlight", | ||
|  |         'region': "ar", | ||
|  |         'game_id': "RESCUED_CHERUB_36", | ||
|  |         'room': "D06Z01S12"}, | ||
|  |     {'name': "AR: Upper west shaft chest", | ||
|  |         'region': "ar", | ||
|  |         'game_id': "PR12", | ||
|  |         'room': "D06Z01S12"}, | ||
|  |     {'name': "AR: Statue near MoM", | ||
|  |         'region': "ar", | ||
|  |         'game_id': "HE04", | ||
|  |         'room': "D06Z01S22"}, | ||
|  |     {'name': "AR: Lady of the Six Sorrows", | ||
|  |         'region': "ar", | ||
|  |         'game_id': "Lady[D06Z01S24]", | ||
|  |         'room': "D06Z01S24"}, | ||
|  |     {'name': "AR: Upper east shaft ledge", | ||
|  |         'region': "ar", | ||
|  |         'game_id': "CO40", | ||
|  |         'room': "D06Z01S15"}, | ||
|  |     {'name': "AR: Mea Culpa altar", | ||
|  |         'region': "ar", | ||
|  |         'game_id': "Sword[D06Z01S11]", | ||
|  |         'room': "D06Z01S11"}, | ||
|  |     {'name': "AR: Crisanta of the Wrapped Agony", | ||
|  |         'region': "ar", | ||
|  |         'game_id': "BS16", | ||
|  |         'room': "D06Z01S25"}, | ||
|  | 
 | ||
|  |     # Bridge of the Three Cavalries (3) | ||
|  |     {'name': "BotTC: Esdras, of the Anointed Legion", | ||
|  |         'region': "bottc", | ||
|  |         'game_id': "BS12", | ||
|  |         'room': "D08Z01S01"}, | ||
|  |     {'name': "BotTC: Esdras' gift", | ||
|  |         'region': "bottc", | ||
|  |         'game_id': "PR09", | ||
|  |         'room': "D08Z01S01"}, | ||
|  |     {'name': "BotTC: Inside giant statue", | ||
|  |         'region': "bottc", | ||
|  |         'game_id': "HE101", | ||
|  |         'room': "D08Z01S02"}, | ||
|  | 
 | ||
|  |     # Brotherhood of the Silent Sorrow (11) | ||
|  |     {'name': "BotSS: Beginning gift", | ||
|  |         'region': "botss", | ||
|  |         'game_id': "QI106", | ||
|  |         'room': "D17Z01S01"}, | ||
|  |     {'name': "BotSS: Starting room Child of Moonlight", | ||
|  |         'region': "botss", | ||
|  |         'game_id': "RESCUED_CHERUB_06", | ||
|  |         'room': "D17Z01S01"}, | ||
|  |     {'name': "BotSS: Starting room ledge", | ||
|  |         'region': "botss", | ||
|  |         'game_id': "RB204", | ||
|  |         'room': "D17Z01S01"}, | ||
|  |     {'name': "BotSS: Chamber of the Eldest Brother", | ||
|  |         'region': "botss", | ||
|  |         'game_id': "RE01", | ||
|  |         'room': "D17BZ01S01[relic]"}, | ||
|  |     {'name': "BotSS: Mea Culpa altar", | ||
|  |         'region': "botss", | ||
|  |         'game_id': "Sword[D17Z01S08]", | ||
|  |         'room': "D17Z01S08"}, | ||
|  |     {'name': "BotSS: Platforming gauntlet", | ||
|  |         'region': "botss", | ||
|  |         'game_id': "CO25", | ||
|  |         'room': "D17Z01S04"}, | ||
|  |     {'name': "BotSS: Blue candle", | ||
|  |         'region': "botss", | ||
|  |         'game_id': "RB25", | ||
|  |         'room': "D17Z01S04"}, | ||
|  |     {'name': "BotSS: Outside church", | ||
|  |         'region': "botss", | ||
|  |         'game_id': "PR203", | ||
|  |         'room': "D17Z01S14"}, | ||
|  |     {'name': "BotSS: Esdras' final gift", | ||
|  |         'region': "botss", | ||
|  |         'game_id': "QI204", | ||
|  |         'room': "D17Z01S15"}, | ||
|  |     {'name': "BotSS: Crisanta's gift", | ||
|  |         'region': "botss", | ||
|  |         'game_id': "QI301", | ||
|  |         'room': "D17Z01S15"}, | ||
|  |     {'name': "BotSS: Warden of the Silent Sorrow", | ||
|  |         'region': "botss", | ||
|  |         'game_id': "BS13", | ||
|  |         'room': "D17Z01S11"}, | ||
|  |      | ||
|  |     # Convent of Our Lady of the Charred Visage (13) | ||
|  |     {'name': "CoOLotCV: Snowy window ledge", | ||
|  |         'region': "coolotcv", | ||
|  |         'game_id': "CO05", | ||
|  |         'room': "D02Z03S03"}, | ||
|  |     {'name': "CoOLotCV: Center enemy lineup", | ||
|  |         'region': "coolotcv", | ||
|  |         'game_id': "CO15", | ||
|  |         'room': "D02Z03S07"}, | ||
|  |     {'name': "CoOLotCV: Center miasma room", | ||
|  |         'region': "coolotcv", | ||
|  |         'game_id': "RB08", | ||
|  |         'room': "D02Z03S05"}, | ||
|  |     {'name': "CoOLotCV: Lower west statue", | ||
|  |         'region': "coolotcv", | ||
|  |         'game_id': "HE03", | ||
|  |         'room': "D02Z03S12"}, | ||
|  |     {'name': "CoOLotCV: Lady of the Six Sorrows", | ||
|  |         'region': "coolotcv", | ||
|  |         'game_id': "Lady[D02Z03S15]", | ||
|  |         'room': "D02Z03S15"}, | ||
|  |     {'name': "CoOLotCV: Mea Culpa altar", | ||
|  |         'region': "coolotcv", | ||
|  |         'game_id': "Sword[D02Z03S13]", | ||
|  |         'room': "D02Z03S13"}, | ||
|  |     {'name': "CoOLotCV: Red candle", | ||
|  |         'region': "coolotcv", | ||
|  |         'game_id': "RB18", | ||
|  |         'room': "D02Z03S06"}, | ||
|  |     {'name': "CoOLotCV: Blue candle", | ||
|  |         'region': "coolotcv", | ||
|  |         'game_id': "RB24", | ||
|  |         'room': "D02Z03S17"}, | ||
|  |     {'name': "CoOLotCV: Outside pathway", | ||
|  |         'region': "coolotcv", | ||
|  |         'game_id': "RB107", | ||
|  |         'room': "D02Z03S23"}, | ||
|  |     {'name': "CoOLotCV: Fountain of burning oil", | ||
|  |         'region': "coolotcv", | ||
|  |         'game_id': "QI57", | ||
|  |         'room': "D02Z03S21"}, | ||
|  |     {'name': "CoOLotCV: Our Lady of the Charred Visage", | ||
|  |         'region': "coolotcv", | ||
|  |         'game_id': "BS03", | ||
|  |         'room': "D02Z03S20"}, | ||
|  |     {'name': "CoOLotCV: Visage of Compunction", | ||
|  |         'region': "coolotcv", | ||
|  |         'game_id': "QI40", | ||
|  |         'room': "D02Z03S21"}, | ||
|  |     {'name': "CoOLotCV: Mask room", | ||
|  |         'region': "coolotcv", | ||
|  |         'game_id': "QI61", | ||
|  |         'room': "D02Z03S19"}, | ||
|  | 
 | ||
|  |     # Deambulatory of His Holiness (3) | ||
|  |     {'name': "DoHH: Viridiana's gift", | ||
|  |         'region': "dohh", | ||
|  |         'game_id': "PR08", | ||
|  |         'room': "D07Z01S01"}, | ||
|  | 
 | ||
|  |     # Desecrated Cistern (20) | ||
|  |     {'name': "DC: Lady of the Six Sorrows, from MD", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "Lady[D01Z05S22]", | ||
|  |         'room': "D01Z05S22"}, | ||
|  |     {'name': "DC: Behind sewage drips", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "CO41", | ||
|  |         'room': "D01Z05S15"}, | ||
|  |     {'name': "DC: Child of Moonlight, above water", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "RESCUED_CHERUB_11", | ||
|  |         'room': "D01Z05S14"}, | ||
|  |     {'name': "DC: Lower east tunnel chest", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "QI45", | ||
|  |         'room': "D01Z05S11"}, | ||
|  |     {'name': "DC: Upper east tunnel chest", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "PR16", | ||
|  |         'room': "D01Z05S06"}, | ||
|  |     {'name': "DC: Upper east Child of Moonlight", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "RESCUED_CHERUB_13", | ||
|  |         'room': "D01Z05S06"}, | ||
|  |     {'name': "DC: Hidden alcove near fountain", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "QI67", | ||
|  |         'room': "D01Z05S05"}, | ||
|  |     {'name': "DC: Shortcut to WotBC", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "CO09", | ||
|  |         'room': "D01Z05S05"}, | ||
|  |     {'name': "DC: Oil of the Pilgrims", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "Oil[D01Z05S07]", | ||
|  |         'room': "D01Z05S07"}, | ||
|  |     {'name': "DC: Child of Moonlight, miasma room", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "RESCUED_CHERUB_14", | ||
|  |         'room': "D01Z05S08"}, | ||
|  |     {'name': "DC: Behind gate in miasma room", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "QI12", | ||
|  |         'room': "D01Z05S08"}, | ||
|  |     {'name': "DC: Child of Moonlight, behind pillar", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "RESCUED_CHERUB_12", | ||
|  |         'room': "D01Z05S13"}, | ||
|  |     {'name': "DC: High ledge near elevator shaft", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "CO32", | ||
|  |         'room': "D01Z05S17"}, | ||
|  |     {'name': "DC: Shroud puzzle", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "RB03", | ||
|  |         'room': "D01Z05S21"}, | ||
|  |     {'name': "DC: Chalice room", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "QI75", | ||
|  |         'room': "D01Z05S23"}, | ||
|  |     {'name': "DC: Mea Culpa altar", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "Sword[D01Z05S24]", | ||
|  |         'room': "D01Z05S24"}, | ||
|  |     {'name': "DC: Lady of the Six Sorrows, elevator shaft", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "Lady[D01Z05S26]", | ||
|  |         'room': "D01Z05S26"}, | ||
|  |     {'name': "DC: Top of elevator Child of Moonlight", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "RESCUED_CHERUB_15", | ||
|  |         'room': "D01Z05S20"}, | ||
|  |     {'name': "DC: Elevator shaft Child of Moonlight", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "RESCUED_CHERUB_22", | ||
|  |         'room': "D01Z05S25"}, | ||
|  |     {'name': "DC: Elevator shaft ledge", | ||
|  |         'region': "dc", | ||
|  |         'game_id': "CO44", | ||
|  |         'room': "D01Z05S25"}, | ||
|  | 
 | ||
|  |     # Echoes of Salt (2) | ||
|  |     {'name': "EoS: Lantern jump near MotED", | ||
|  |         'region': "eos", | ||
|  |         'game_id': "RB108", | ||
|  |         'room': "D20Z01S02"}, | ||
|  |     {'name': "EoS: Lantern jump near elevator", | ||
|  |         'region': "eos", | ||
|  |         'game_id': "RB202", | ||
|  |         'room': "D20Z01S09"}, | ||
|  |      | ||
|  |     # Graveyard of the Peaks (21) | ||
|  |     {'name': "GotP: Shop cave Child of Moonlight", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "RESCUED_CHERUB_31", | ||
|  |         'room': "D02Z02S08"}, | ||
|  |     {'name': "GotP: Shop cave hidden hole", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "CO42", | ||
|  |         'room': "D02Z02S08"}, | ||
|  |     {'name': "GotP: Shop item 1", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "QI11", | ||
|  |         'room': "D02BZ01S01"}, | ||
|  |     {'name': "GotP: Shop item 2", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "RB37", | ||
|  |         'room': "D02BZ01S01"}, | ||
|  |     {'name': "GotP: Shop item 3", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "RB02", | ||
|  |         'room': "D02BZ01S01"}, | ||
|  |     {'name': "GotP: Confessor Dungeon room", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "RB38", | ||
|  |         'room': "D02Z02S06"}, | ||
|  |     {'name': "GotP: Elevator shaft Child of Moonlight", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "RESCUED_CHERUB_26", | ||
|  |         'room': "D02Z02S11"}, | ||
|  |     {'name': "GotP: Elevator shaft ledge", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "QI53", | ||
|  |         'room': "D02Z02S11"}, | ||
|  |     {'name': "GotP: Lady of the Six Sorrows", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "Lady[D02Z02S12]", | ||
|  |         'room': "D02Z02S12"}, | ||
|  |     {'name': "GotP: Self sacrifice statue", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "HE11", | ||
|  |         'room': "D02Z02S13"}, | ||
|  |     {'name': "GotP: Lower east shaft", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "QI46", | ||
|  |         'room': "D02Z02S03"}, | ||
|  |     {'name': "GotP: Center east shaft", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "CO29", | ||
|  |         'room': "D02Z02S03"}, | ||
|  |     {'name': "GotP: Upper east shaft", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "QI08", | ||
|  |         'room': "D02Z02S03"}, | ||
|  |     {'name': "GotP: East cliffside", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "RB106", | ||
|  |         'room': "D02Z02S14"}, | ||
|  |     {'name': "GotP: West shaft Child of Moonlight", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "RESCUED_CHERUB_25", | ||
|  |         'room': "D02Z02S04"}, | ||
|  |     {'name': "GotP: Lower west shaft", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "RB32", | ||
|  |         'room': "D02Z02S04"}, | ||
|  |     {'name': "GotP: Upper west shaft", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "CO01", | ||
|  |         'room': "D02Z02S04"}, | ||
|  |     {'name': "GotP: Center shaft Child of Moonlight", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "RESCUED_CHERUB_24", | ||
|  |         'room': "D02Z02S02"}, | ||
|  |     {'name': "GotP: Center shaft ledge", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "RB15", | ||
|  |         'room': "D02Z02S05"}, | ||
|  |     {'name': "GotP: Oil of the Pilgrims", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "Oil[D02Z02S10]", | ||
|  |         'room': "D02Z02S10"}, | ||
|  |     {'name': "GotP: Amanecida of the Bejeweled Arrow", | ||
|  |         'region': "gotp", | ||
|  |         'game_id': "D02Z02S14[18000]", | ||
|  |         'room': "D02Z02S14"}, | ||
|  |      | ||
|  |     # Grievance Ascends (12) | ||
|  |     {'name': "GA: Lower west ledge", | ||
|  |         'region': "ga", | ||
|  |         'game_id': "QI44", | ||
|  |         'room': "D03Z03S02"}, | ||
|  |     {'name': "GA: Miasma room treasure", | ||
|  |         'region': "ga", | ||
|  |         'game_id': "RE07", | ||
|  |         'room': "D03Z03S06"}, | ||
|  |     {'name': "GA: Miasma room Child of Moonlight", | ||
|  |         'region': "ga", | ||
|  |         'game_id': "RESCUED_CHERUB_19", | ||
|  |         'room': "D03Z03S06"}, | ||
|  |     {'name': "GA: Miasma room floor", | ||
|  |         'region': "ga", | ||
|  |         'game_id': "CO12", | ||
|  |         'room': "D03Z03S06"}, | ||
|  |     {'name': "GA: Oil of the Pilgrims", | ||
|  |         'region': "ga", | ||
|  |         'game_id': "Oil[D03Z03S13]", | ||
|  |         'room': "D03Z03S13"}, | ||
|  |     {'name': "GA: End of blood bridge", | ||
|  |         'region': "ga", | ||
|  |         'game_id': "QI10", | ||
|  |         'room': "D03Z03S08"}, | ||
|  |     {'name': "GA: Blood bridge Child of Moonlight", | ||
|  |         'region': "ga", | ||
|  |         'game_id': "RESCUED_CHERUB_21", | ||
|  |         'room': "D03Z03S08"}, | ||
|  |     {'name': "GA: Lower east Child of Moonlight", | ||
|  |         'region': "ga", | ||
|  |         'game_id': "RESCUED_CHERUB_20", | ||
|  |         'room': "D03Z03S09"}, | ||
|  |     {'name': "GA: Altasgracias' gift", | ||
|  |         'region': "ga", | ||
|  |         'game_id': "QI13", | ||
|  |         'room': "D03Z03S10"}, | ||
|  |     {'name': "GA: Empty giant egg", | ||
|  |         'region': "ga", | ||
|  |         'game_id': "RB06", | ||
|  |         'room': "D03Z03S10"}, | ||
|  |     {'name': "GA: Tres Angustias", | ||
|  |         'region': "ga", | ||
|  |         'game_id': "BS04", | ||
|  |         'room': "D03Z03S15"}, | ||
|  |     {'name': "GA: Visage of Contrition", | ||
|  |         'region': "ga", | ||
|  |         'game_id': "QI39", | ||
|  |         'room': "D03Z03S16"}, | ||
|  |      | ||
|  |     # Hall of the Dawning (2) | ||
|  |     {'name': "HotD: Mirror room", | ||
|  |         'region': "hotd", | ||
|  |         'game_id': "QI105", | ||
|  |         'room': "D08Z02S01"}, | ||
|  |     {'name': "HotD: Laudes, the First of the Amanecidas", | ||
|  |         'region': "hotd", | ||
|  |         'game_id': "LaudesBossTrigger[30000]", | ||
|  |         'room': "D08Z02S03"}, | ||
|  |      | ||
|  |     # Jondo (13) | ||
|  |     {'name': "Jondo: Upper east ledge", | ||
|  |         'region': "jondo", | ||
|  |         'game_id': "CO08", | ||
|  |         'room': "D03Z03S01"}, | ||
|  |     {'name': "Jondo: Upper east chest", | ||
|  |         'region': "jondo", | ||
|  |         'game_id': "PR10", | ||
|  |         'room': "D03Z03S01"}, | ||
|  |     {'name': "Jondo: Lower east under chargers", | ||
|  |         'region': "jondo", | ||
|  |         'game_id': "CO33", | ||
|  |         'room': "D03Z03S04"}, | ||
|  |     {'name': "Jondo: Lower east bell trap", | ||
|  |         'region': "jondo", | ||
|  |         'game_id': "QI19", | ||
|  |         'room': "D03Z03S06"}, | ||
|  |     {'name': "Jondo: Upper east Child of Moonlight", | ||
|  |         'region': "jondo", | ||
|  |         'game_id': "RESCUED_CHERUB_18", | ||
|  |         'room': "D03Z03S05"}, | ||
|  |     {'name': "Jondo: Spike tunnel Child of Moonlight", | ||
|  |         'region': "jondo", | ||
|  |         'game_id': "RESCUED_CHERUB_37", | ||
|  |         'room': "D03Z03S11"}, | ||
|  |     {'name': "Jondo: Spike tunnel statue", | ||
|  |         'region': "jondo", | ||
|  |         'game_id': "HE06", | ||
|  |         'room': "D03Z03S11"}, | ||
|  |     {'name': "Jondo: Spike tunnel cave", | ||
|  |         'region': "jondo", | ||
|  |         'game_id': "QI103", | ||
|  |         'room': "D03Z03S15"}, | ||
|  |     {'name': "Jondo: Lower west lift alcove", | ||
|  |         'region': "jondo", | ||
|  |         'game_id': "CO07", | ||
|  |         'room': "D03Z03S07"}, | ||
|  |     {'name': "Jondo: Lower west bell alcove", | ||
|  |         'region': "jondo", | ||
|  |         'game_id': "QI41", | ||
|  |         'room': "D03Z03S08"}, | ||
|  |     {'name': "Jondo: Upper west bell puzzle", | ||
|  |         'region': "jondo", | ||
|  |         'game_id': "QI52", | ||
|  |         'room': "D03Z03S12"}, | ||
|  |     {'name': "Jondo: Upper west tree root", | ||
|  |         'region': "jondo", | ||
|  |         'game_id': "RB28", | ||
|  |         'room': "D03Z03S13"}, | ||
|  |     {'name': "Jondo: Upper west Child of Moonlight", | ||
|  |         'region': "jondo", | ||
|  |         'game_id': "RESCUED_CHERUB_17", | ||
|  |         'room': "D03Z03S10"}, | ||
|  |      | ||
|  |     # Knot of the Three Words (1) | ||
|  |     {'name': "KotTW: Gift from the Traitor", | ||
|  |         'region': "kottw", | ||
|  |         'game_id': "HE201", | ||
|  |         'room': "D04Z03S02"}, | ||
|  |      | ||
|  |     # Library of the Negated Words (18) | ||
|  |     {'name': "LotNW: Platform room Child of Moonlight", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "RESCUED_CHERUB_01", | ||
|  |         'room': "D05Z01S04"}, | ||
|  |     {'name': "LotNW: Platform room ledge", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "CO18", | ||
|  |         'room': "D05Z01S04"}, | ||
|  |     {'name': "LotNW: Root ceiling platform", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "CO22", | ||
|  |         'room': "D05Z01S05"}, | ||
|  |     {'name': "LotNW: Hidden floor", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "QI50", | ||
|  |         'room': "D05Z01S05"}, | ||
|  |     {'name': "LotNW: Miasma hallway chest", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "RB31", | ||
|  |         'room': "D05Z01S06"}, | ||
|  |     {'name': "LotNW: Lady of the Six Sorrows", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "Lady[D05Z01S14]", | ||
|  |         'room': "D05Z01S14"}, | ||
|  |     {'name': "LotNW: Bone puzzle", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "PR15", | ||
|  |         'room': "D05Z01S18"}, | ||
|  |     {'name': "LotNW: Lowest west upper ledge", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "CO28", | ||
|  |         'room': "D05Z01S11"}, | ||
|  |     {'name': "LotNW: Platform puzzle chest", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "PR07", | ||
|  |         'room': "D05Z01S10"}, | ||
|  |     {'name': "LotNW: Lowest west center ledge", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "RB30", | ||
|  |         'room': "D05Z01S11"}, | ||
|  |     {'name': "LotNW: Lowest west Child of Moonlight", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "RESCUED_CHERUB_02", | ||
|  |         'room': "D05Z01S11"}, | ||
|  |     {'name': "LotNW: Oil of the Pilgrims", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "Oil[D05Z01S19]", | ||
|  |         'room': "D05Z01S19"}, | ||
|  |     {'name': "LotNW: Elevator Child of Moonlight", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "RESCUED_CHERUB_32", | ||
|  |         'room': "D05Z01S21"}, | ||
|  |     {'name': "LotNW: Mask room", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "QI62", | ||
|  |         'room': "D05Z01S15"}, | ||
|  |     {'name': "LotNW: Mea Culpa altar", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "Sword[D05Z01S13]", | ||
|  |         'room': "D05Z01S13"}, | ||
|  |     {'name': "LotNW: Red candle", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "RB19", | ||
|  |         'room': "D05Z01S02"}, | ||
|  |     {'name': "LotNW: Silence for Diosdado", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "RB203", | ||
|  |         'room': "D05Z01S11"}, # ? | ||
|  |     {'name': "LotNW: Twisted wood hidden wall", | ||
|  |         'region': "lotnw", | ||
|  |         'game_id': "RB301", | ||
|  |         'room': "D05BZ01S01"}, | ||
|  | 
 | ||
|  |     # Mercy Dreams (15) | ||
|  |     {'name': "MD: First area hidden wall", | ||
|  |         'region': "md", | ||
|  |         'game_id': "CO30", | ||
|  |         'room': "D01Z04S05"}, | ||
|  |     {'name': "MD: Second area trapped chest", | ||
|  |         'region': "md", | ||
|  |         'game_id': "PR01", | ||
|  |         'room': "D01Z04S07"}, | ||
|  |     {'name': "MD: Second area ledge", | ||
|  |         'region': "md", | ||
|  |         'game_id': "CO03", | ||
|  |         'room': "D01Z04S06"}, | ||
|  |     {'name': "MD: Second area Child of Moonlight", | ||
|  |         'region': "md", | ||
|  |         'game_id': "RESCUED_CHERUB_09", | ||
|  |         'room': "D01Z04S06"}, | ||
|  |     {'name': "MD: Red candle", | ||
|  |         'region': "md", | ||
|  |         'game_id': "RB17", | ||
|  |         'room': "D01Z04S08"}, | ||
|  |     {'name': "MD: Shop item 1", | ||
|  |         'region': "md", | ||
|  |         'game_id': "QI58", | ||
|  |         'room': "D01BZ02S01"}, | ||
|  |     {'name': "MD: Shop item 2", | ||
|  |         'region': "md", | ||
|  |         'game_id': "RB05", | ||
|  |         'room': "D01BZ02S01"}, | ||
|  |     {'name': "MD: Shop item 3", | ||
|  |         'region': "md", | ||
|  |         'game_id': "RB09", | ||
|  |         'room': "D01BZ02S01"}, | ||
|  |     {'name': "MD: Third area hidden room", | ||
|  |         'region': "md", | ||
|  |         'game_id': "QI48", | ||
|  |         'room': "D01Z04S11"}, | ||
|  |     {'name': "MD: Sliding challenge", | ||
|  |         'region': "md", | ||
|  |         'game_id': "CO38", | ||
|  |         'room': "D01Z04S14"}, | ||
|  |     {'name': "MD: Ten Piedad", | ||
|  |         'region': "md", | ||
|  |         'game_id': "BS01", | ||
|  |         'room': "D01Z04S18"}, | ||
|  |     {'name': "MD: Visage of Attrition", | ||
|  |         'region': "md", | ||
|  |         'game_id': "QI38", | ||
|  |         'room': "D01Z04S19"}, | ||
|  |     {'name': "MD: Blue candle", | ||
|  |         'region': "md", | ||
|  |         'game_id': "RB26", | ||
|  |         'room': "D01Z04S16"}, | ||
|  |     {'name': "MD: Cave Child of Moonlight", | ||
|  |         'region': "md", | ||
|  |         'game_id': "RESCUED_CHERUB_33", | ||
|  |         'room': "D01Z04S16"},  | ||
|  |     {'name': "MD: Behind gate to TSC", | ||
|  |         'region': "md", | ||
|  |         'game_id': "CO21", | ||
|  |         'room': "D01Z04S13"}, | ||
|  | 
 | ||
|  |     # Mother of Mothers (14) | ||
|  |     {'name': "MoM: Oil of the Pilgrims", | ||
|  |         'region': "mom", | ||
|  |         'game_id': "Oil[D04Z02S14]", | ||
|  |         'room': "D04Z02S14"}, | ||
|  |     {'name': "MoM: Upper east ledge", | ||
|  |         'region': "mom", | ||
|  |         'game_id': "RB33", | ||
|  |         'room': "D04Z02S07"}, | ||
|  |     {'name': "MoM: East chandelier platform", | ||
|  |         'region': "mom", | ||
|  |         'game_id': "CO35", | ||
|  |         'room': "D04Z02S"}, | ||
|  |     {'name': "MoM: Lower west Child of Moonlight", | ||
|  |         'region': "mom", | ||
|  |         'game_id': "RESCUED_CHERUB_30", | ||
|  |         'room': ""}, | ||
|  |     {'name': "MoM: Upper west floor", | ||
|  |         'region': "mom", | ||
|  |         'game_id': "CO17", | ||
|  |         'room': "D04Z02S02"}, | ||
|  |     {'name': "MoM: Redento's treasure", | ||
|  |         'region': "mom", | ||
|  |         'game_id': "RE03", | ||
|  |         'room': "D04BZ02S01"}, | ||
|  |     {'name': "MoM: Final meeting with Redento", | ||
|  |         'region': "mom", | ||
|  |         'game_id': "QI54", | ||
|  |         'room': "D04BZ02S01"}, | ||
|  |     {'name': "MoM: Giant chandelier statue", | ||
|  |         'region': "mom", | ||
|  |         'game_id': "HE01", | ||
|  |         'room': "D04Z02S16"}, | ||
|  |     {'name': "MoM: Outside Cleofas' room", | ||
|  |         'region': "mom", | ||
|  |         'game_id': "CO34", | ||
|  |         'room': "D04Z02S06"}, | ||
|  |     {'name': "MoM: Upper center floor", | ||
|  |         'region': "mom", | ||
|  |         'game_id': "CO20", | ||
|  |         'room': "D04Z02S11"}, | ||
|  |     {'name': "MoM: Upper center Child of Moonlight", | ||
|  |         'region': "mom", | ||
|  |         'game_id': "RESCUED_CHERUB_29", | ||
|  |         'room': ""}, | ||
|  |     {'name': "MoM: Mea Culpa altar", | ||
|  |         'region': "mom", | ||
|  |         'game_id': "Sword[D04Z02S12]", | ||
|  |         'room': "D04Z02S12"}, | ||
|  |     {'name': "MoM: Melquiades, The Exhumed Archbishop", | ||
|  |         'region': "mom", | ||
|  |         'game_id': "BS05", | ||
|  |         'room': "D04Z02S22"}, | ||
|  |     {'name': "MoM: Mask room", | ||
|  |         'region': "mom", | ||
|  |         'game_id': "QI60", | ||
|  |         'room': "D04Z02S15"}, | ||
|  | 
 | ||
|  |     # Mountains of the Endless Dusk (8) | ||
|  |     {'name': "MotED: Under entrance to DC", | ||
|  |         'region': "moted", | ||
|  |         'game_id': "CO13", | ||
|  |         'room': "D03Z01S01"}, | ||
|  |     {'name': "MotED: Perpetva", | ||
|  |         'region': "moted", | ||
|  |         'game_id': "RB13", | ||
|  |         'room': "D03Z01S06"}, | ||
|  |     {'name': "MotED: Child of Moonlight, above chasm", | ||
|  |         'region': "moted", | ||
|  |         'game_id': "RESCUED_CHERUB_16", | ||
|  |         'room': "D03Z01S03"}, | ||
|  |     {'name': "MotED: Platform above chasm", | ||
|  |         'region': "moted", | ||
|  |         'game_id': "QI47", | ||
|  |         'room': "D03Z01S03"}, | ||
|  |     {'name': "MotED: 1st meeting with Redento", | ||
|  |         'region': "moted", | ||
|  |         'game_id': "RB22", | ||
|  |         'room': "D03Z01S03"}, | ||
|  |     {'name': "MotED: Blood platform alcove", | ||
|  |         'region': "moted", | ||
|  |         'game_id': "QI63", | ||
|  |         'room': "D03Z01S04"}, | ||
|  |     {'name': "MotED: Egg hatching", | ||
|  |         'region': "moted", | ||
|  |         'game_id': "QI14", | ||
|  |         'room': "D03Z01S06"}, | ||
|  |     {'name': "MotED: Amanecida of the Golden Blades", | ||
|  |         'region': "moted", | ||
|  |         'game_id': "D03Z01S03[18000]", | ||
|  |         'room': "D03Z01S03"}, | ||
|  | 
 | ||
|  |     # Mourning and Havoc (4) | ||
|  |     {'name': "MaH: West chest", | ||
|  |         'region': "mah", | ||
|  |         'game_id': "PR202", | ||
|  |         'room': "D20Z02S11"}, | ||
|  |     {'name': "MaH: Upper east chest", | ||
|  |         'region': "mah", | ||
|  |         'game_id': "RB201", | ||
|  |         'room': "D20Z02S02"}, | ||
|  |     {'name': "MaH: Sierpes' eye", | ||
|  |         'region': "mah", | ||
|  |         'game_id': "QI202", | ||
|  |         'room': "D20Z02S08"}, | ||
|  |     {'name': "MaH: Sierpes", | ||
|  |         'region': "mah", | ||
|  |         'game_id': "BossTrigger[5000]", | ||
|  |         'room': "D20Z02S08"}, | ||
|  |      | ||
|  |     # Patio of the Silent Steps (9) | ||
|  |     {'name': "PotSS: First area Child of Moonlight", | ||
|  |         'region': "potss", | ||
|  |         'game_id': "RESCUED_CHERUB_35", | ||
|  |         'room': "D04Z01S01"}, | ||
|  |     {'name': "PotSS: First area ledge", | ||
|  |         'region': "potss", | ||
|  |         'game_id': "CO23", | ||
|  |         'room': "D04Z01S01"}, | ||
|  |     {'name': "PotSS: Second area ledge", | ||
|  |         'region': "potss", | ||
|  |         'game_id': "RB14", | ||
|  |         'room': "D04Z01S02"}, | ||
|  |     {'name': "PotSS: Third area Child of Moonlight", | ||
|  |         'region': "potss", | ||
|  |         'game_id': "RESCUED_CHERUB_28", | ||
|  |         'room': "D04Z01S03"}, | ||
|  |     {'name': "PotSS: Third area lower ledge", | ||
|  |         'region': "potss", | ||
|  |         'game_id': "QI37", | ||
|  |         'room': "D04Z01S03"}, | ||
|  |     {'name': "PotSS: Third area upper ledge", | ||
|  |         'region': "potss", | ||
|  |         'game_id': "CO39", | ||
|  |         'room': "D04Z01S03"}, | ||
|  |     {'name': "PotSS: Climb to WotHP", | ||
|  |         'region': "potss", | ||
|  |         'game_id': "QI102", | ||
|  |         'room': "D04Z01S05"}, | ||
|  |     {'name': "PotSS: 4th meeting with Redento", | ||
|  |         'region': "potss", | ||
|  |         'game_id': "RB21", | ||
|  |         'room': "D04Z01S01"}, | ||
|  |     {'name': "PotSS: Amanecida of the Chiselled Steel", | ||
|  |         'region': "potss", | ||
|  |         'game_id': "D04Z01S04[18000]", | ||
|  |         'room': "D04Z01S04"}, | ||
|  | 
 | ||
|  |     # Petrous (1) | ||
|  |     {'name': "Petrous: Temple entrance", | ||
|  |         'region': "petrous", | ||
|  |         'game_id': "QI101", | ||
|  |         'room': "D01Z06S01"}, | ||
|  | 
 | ||
|  |     # The Resting Place of the Sister (1) | ||
|  |     {'name': "TRPotS: Perpetva's shrine", | ||
|  |         'region': "trpots", | ||
|  |         'game_id': "QI203", | ||
|  |         'room': "D20Z03S01"}, | ||
|  |      | ||
|  |     # The Sleeping Canvases (10) | ||
|  |     {'name': "TSC: Painting ladder ledge", | ||
|  |         'region': "tsc", | ||
|  |         'game_id': "QI64", | ||
|  |         'room': "D05Z02S02"}, | ||
|  |     {'name': "TSC: Candle wax puzzle", | ||
|  |         'region': "tsc", | ||
|  |         'game_id': "HE07", | ||
|  |         'room': "D05Z02S08"}, | ||
|  |     {'name': "TSC: Shop item 1", | ||
|  |         'region': "tsc", | ||
|  |         'game_id': "RB12", | ||
|  |         'room': "D05BZ02S01"}, | ||
|  |     {'name': "TSC: Shop item 2", | ||
|  |         'region': "tsc", | ||
|  |         'game_id': "QI49", | ||
|  |         'room': "D05BZ02S01"}, | ||
|  |     {'name': "TSC: Shop item 3", | ||
|  |         'region': "tsc", | ||
|  |         'game_id': "QI71", | ||
|  |         'room': "D05BZ02S01"}, | ||
|  |     {'name': "TSC: Swinging blade tunnel", | ||
|  |         'region': "tsc", | ||
|  |         'game_id': "QI104", | ||
|  |         'room': "D05Z02S15"}, | ||
|  |     {'name': "TSC: Exposito, Scion of Abjuration", | ||
|  |         'region': "tsc", | ||
|  |         'game_id': "BS06", | ||
|  |         'room': "D05Z02S14"}, | ||
|  |     {'name': "TSC: Under elevator shaft", | ||
|  |         'region': "tsc", | ||
|  |         'game_id': "CO31", | ||
|  |         'room': "D05Z02S11"}, | ||
|  |     {'name': "TSC: Jocinero's 1st reward", | ||
|  |         'region': "tsc", | ||
|  |         'game_id': "RE05", | ||
|  |         'room': "D05Z02S10"}, # ? | ||
|  |     {'name': "TSC: Jocinero's final reward", | ||
|  |         'region': "tsc", | ||
|  |         'game_id': "PR05", | ||
|  |         'room': "D05Z02S10"}, # ? | ||
|  | 
 | ||
|  |     # The Holy Line (6) | ||
|  |     {'name': "THL: Deogracias' gift", | ||
|  |         'region': "thl", | ||
|  |         'game_id': "QI31", | ||
|  |         'room': "D01Z01S07"}, | ||
|  |     {'name': "THL: Hanging skeleton", | ||
|  |         'region': "thl", | ||
|  |         'game_id': "PR14", | ||
|  |         'room': "D01Z01S02"}, | ||
|  |     {'name': "THL: Across blood platforms", | ||
|  |         'region': "thl", | ||
|  |         'game_id': "RB07", | ||
|  |         'room': "D01Z01S02"}, | ||
|  |     {'name': "THL: Child of Moonlight", | ||
|  |         'region': "thl", | ||
|  |         'game_id': "RESCUED_CHERUB_07", | ||
|  |         'room': "D01Z01S03"}, | ||
|  |     {'name': "THL: Underground ledge", | ||
|  |         'region': "thl", | ||
|  |         'game_id': "CO04", | ||
|  |         'room': "D01Z01S03"}, | ||
|  |     {'name': "THL: Underground chest", | ||
|  |         'region': "thl", | ||
|  |         'game_id': "QI55", | ||
|  |         'room': "D01Z01S03"}, | ||
|  | 
 | ||
|  |     # Wall of the Holy Prohibitions (19) | ||
|  |     {'name': "WotHP: Upper east room, lift puzzle", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "RB11", | ||
|  |         'room': "D09Z01S02"}, | ||
|  |     {'name': "WotHP: Upper east room, center cell ledge", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "CO10", | ||
|  |         'room': "D09BZ01S01[Cell22]"}, | ||
|  |     {'name': "WotHP: Upper east room, center cell floor", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "QI69", | ||
|  |         'room': "D09BZ01S01[Cell22]"}, | ||
|  |     {'name': "WotHP: Upper east room, top bronze cell", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "RESCUED_CHERUB_03", | ||
|  |         'room': "D09BZ01S01[Cell1]"}, | ||
|  |     {'name': "WotHP: Upper east room, top silver cell", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "CO24", | ||
|  |         'room': "D09BZ01S01[Cell6]"}, | ||
|  |     {'name': "WotHP: Upper east room, center gold cell", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "QI51", | ||
|  |         'room': "D09Z01S02"}, | ||
|  |     {'name': "WotHP: Upper west room, center gold cell", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "CO26", | ||
|  |         'room': "D09BZ01S01[Cell16]"}, | ||
|  |     {'name': "WotHP: Lower west room, bottom gold cell", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "CO02", | ||
|  |         'room': "D09BZ01S01[Cell21]"}, | ||
|  |     {'name': "WotHP: Upper west room, top silver cell", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "RESCUED_CHERUB_34", | ||
|  |         'room': "D09BZ01S01[Cell17~18]"}, # ? | ||
|  |     {'name': "WotHP: Lower west room, top ledge", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "RB16", | ||
|  |         'room': "D09BZ01S01[Cell24]"}, | ||
|  |     {'name': "WotHP: Lower east room, hidden ledge", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "CO27", | ||
|  |         'room': "D09Z01S10"}, | ||
|  |     {'name': "WotHP: Lower east room, bottom silver cell", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "RESCUED_CHERUB_04", | ||
|  |         'room': "D09BZ01S01[Cell11]"}, | ||
|  |     {'name': "WotHP: Lower east room, top bronze cell", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "QI70", | ||
|  |         'room': "D09Z01S10"}, | ||
|  |     {'name': "WotHP: Lower east room, top silver cell", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "CO37", | ||
|  |         'room': "D09BZ01S01[Cell10]"}, | ||
|  |     {'name': "WotHP: Outside Child of Moonlight", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "RESCUED_CHERUB_05", | ||
|  |         'room': "D09Z01S06"}, | ||
|  |     {'name': "WotHP: Oil of the Pilgrims", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "Oil[D09Z01S12]", | ||
|  |         'room': "D09Z01S12"}, | ||
|  |     {'name': "WotHP: Quirce, Returned By The Flames", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "BS14", | ||
|  |         'room': "D09Z01S03"}, | ||
|  |     {'name': "WotHP: Collapsing floor ledge", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "QI72", | ||
|  |         'room': "D09Z01S08"}, | ||
|  |     {'name': "WotHP: Amanecida of the Molten Thorn", | ||
|  |         'region': "wothp", | ||
|  |         'game_id': "D09Z01S01[18000]", | ||
|  |         'room': "D09Z01S01"}, | ||
|  | 
 | ||
|  |     # Wasteland of the Buried Churches (8) | ||
|  |     {'name': "WotBC: Lower log path", | ||
|  |         'region': "wotbc", | ||
|  |         'game_id': "RB04", | ||
|  |         'room': "D01Z03S01"}, | ||
|  |     {'name': "WotBC: Hidden alcove", | ||
|  |         'region': "wotbc", | ||
|  |         'game_id': "CO14", | ||
|  |         'room': "D01Z03S02"}, | ||
|  |     {'name': "WotBC: Outside ledge", | ||
|  |         'region': "wotbc", | ||
|  |         'game_id': "CO36", | ||
|  |         'room': "D01Z03S03"}, | ||
|  |     {'name': "WotBC: Outside Child of Moonlight", | ||
|  |         'region': "wotbc", | ||
|  |         'game_id': "RESCUED_CHERUB_10", | ||
|  |         'room': "D01Z03S03"}, | ||
|  |     {'name': "WotBC: Under broken bridge", | ||
|  |         'region': "wotbc", | ||
|  |         'game_id': "QI06", | ||
|  |         'room': "D01Z03S05"}, | ||
|  |     {'name': "WotBC: Cliffside statue", | ||
|  |         'region': "wotbc", | ||
|  |         'game_id': "HE02", | ||
|  |         'room': "D01Z03S07"}, | ||
|  |     {'name': "WotBC: Cliffside Child of Moonlight", | ||
|  |         'region': "wotbc", | ||
|  |         'game_id': "RESCUED_CHERUB_38", | ||
|  |         'room': "D01Z03S07"}, | ||
|  |     {'name': "WotBC: 3rd meeting with Redento", | ||
|  |         'region': "wotbc", | ||
|  |         'game_id': "RB20", | ||
|  |         'room': "D01Z03S01"}, # ? | ||
|  |      | ||
|  |     # Where Olive Trees Wither (11) | ||
|  |     {'name': "WOTW: Below Prie Dieu", | ||
|  |         'region': "wotw", | ||
|  |         'game_id': "CO11", | ||
|  |         'room': "D02Z01S01"}, | ||
|  |     {'name': "WOTW: Entrance to tomb", | ||
|  |         'region': "wotw", | ||
|  |         'game_id': "QI20", | ||
|  |         'room': "D02Z01S04"}, | ||
|  |     {'name': "WOTW: Gift for the tomb", | ||
|  |         'region': "wotw", | ||
|  |         'game_id': "QI68", | ||
|  |         'room': "D02Z01S"}, | ||
|  |     {'name': "WOTW: Underground tomb", | ||
|  |         'region': "wotw", | ||
|  |         'game_id': "PR04", | ||
|  |         'room': "D02Z01S08"}, | ||
|  |     {'name': "WOTW: Underground Child of Moonlight", | ||
|  |         'region': "wotw", | ||
|  |         'game_id': "RESCUED_CHERUB_27", | ||
|  |         'room': "D02Z01S06"}, | ||
|  |     {'name': "WOTW: Underground ledge", | ||
|  |         'region': "wotw", | ||
|  |         'game_id': "CO19", | ||
|  |         'room': "D02Z01S06"}, | ||
|  |     {'name': "WOTW: Upper east Child of Moonlight", | ||
|  |         'region': "wotw", | ||
|  |         'game_id': "RESCUED_CHERUB_23", | ||
|  |         'room': "D02Z01S09"}, | ||
|  |     {'name': "WOTW: Upper east statue", | ||
|  |         'region': "wotw", | ||
|  |         'game_id': "HE05", | ||
|  |         'room': "D02Z01S09"}, | ||
|  |     {'name': "WOTW: Death run", | ||
|  |         'region': "wotw", | ||
|  |         'game_id': "QI07", | ||
|  |         'room': "D02Z01S05"}, | ||
|  |     {'name': "WOTW: Gemino's gift", | ||
|  |         'region': "wotw", | ||
|  |         'game_id': "QI59", | ||
|  |         'room': "D02Z01S01"}, | ||
|  |     {'name': "WOTW: Gemino's reward", | ||
|  |         'region': "wotw", | ||
|  |         'game_id': "RB10", | ||
|  |         'room': "D02Z01S01"}, | ||
|  | 
 | ||
|  |     # Various (20) | ||
|  |     {'name': "Confessor Dungeon 1 extra", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "Arena_NailManager[1000]", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Confessor Dungeon 1 main", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "QI32", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Confessor Dungeon 2 extra", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "HE10", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Confessor Dungeon 2 main", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "QI33", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Confessor Dungeon 3 extra", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "Arena_NailManager[3000]", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Confessor Dungeon 3 main", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "QI34", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Confessor Dungeon 4 extra", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "RB34", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Confessor Dungeon 4 main", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "QI35", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Confessor Dungeon 5 extra", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "Arena_NailManager[5000]", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Confessor Dungeon 5 main", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "QI79", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Confessor Dungeon 6 extra", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "RB35", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Confessor Dungeon 6 main", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "QI80", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Confessor Dungeon 7 extra", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "RB36", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Confessor Dungeon 7 main", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "QI81", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Defeat 1 Amanecida", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "QI107", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Defeat 2 Amanecidas", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "QI108", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Defeat 3 Amanecidas", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "QI109", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Defeat 4 Amanecidas", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "QI110", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Defeat all Amanecidas", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "PR101", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Skill 1, Tier 1", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "COMBO_1", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Skill 1, Tier 2", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "COMBO_2", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Skill 1, Tier 3", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "COMBO_3", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Skill 2, Tier 1", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "CHARGED_1", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Skill 2, Tier 2", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "CHARGED_2", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Skill 2, Tier 3", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "CHARGED_3", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Skill 3, Tier 1", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "RANGED_1", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Skill 3, Tier 2", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "RANGED_2", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Skill 3, Tier 3", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "RANGED_3", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Skill 4, Tier 1", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "VERTICAL_1", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Skill 4, Tier 2", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "VERTICAL_2", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Skill 4, Tier 3", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "VERTICAL_3", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Skill 5, Tier 1", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "LUNGE_1", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Skill 5, Tier 2", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "LUNGE_2", | ||
|  |         'room': "dungeon"}, | ||
|  |     {'name': "Skill 5, Tier 3", | ||
|  |         'region': "dungeon", | ||
|  |         'game_id': "LUNGE_3", | ||
|  |         'room': "dungeon"}, | ||
|  | ] | ||
|  | 
 | ||
|  | shop_set: Set[str] = [ | ||
|  |     "GotP: Shop item 1", | ||
|  |     "GotP: Shop item 2", | ||
|  |     "GotP: Shop item 3", | ||
|  |     "MD: Shop item 1", | ||
|  |     "MD: Shop item 2", | ||
|  |     "MD: Shop item 3", | ||
|  |     "TSC: Shop item 1", | ||
|  |     "TSC: Shop item 2", | ||
|  |     "TSC: Shop item 3" | ||
|  | ] |