Skip to content

Commit fffc8fb

Browse files
committed
world-side entrance randomization done
1 parent dcce402 commit fffc8fb

File tree

6 files changed

+347
-61
lines changed

6 files changed

+347
-61
lines changed

worlds/zork_grand_inquisitor/data/entrance_data.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,10 @@
148148
(ZorkGrandInquisitorRegions.GUE_TECH_ENTRANCE, ZorkGrandInquisitorRegions.CROSSROADS): None,
149149
(ZorkGrandInquisitorRegions.GUE_TECH_ENTRANCE, ZorkGrandInquisitorRegions.GUE_TECH): (
150150
(
151-
ZorkGrandInquisitorItems.HOTSPOT_GUE_TECH_WINDOWS,
152-
ZorkGrandInquisitorItems.HOTSPOT_REGIONAL_GUE_TECH,
151+
(
152+
ZorkGrandInquisitorItems.HOTSPOT_GUE_TECH_WINDOWS,
153+
ZorkGrandInquisitorItems.HOTSPOT_REGIONAL_GUE_TECH,
154+
),
153155
),
154156
),
155157
(ZorkGrandInquisitorRegions.GUE_TECH_HALLWAY, ZorkGrandInquisitorRegions.GUE_TECH): None,

worlds/zork_grand_inquisitor/data/entrance_randomizer_data.py

+134-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,125 @@
1-
from typing import Tuple
1+
from typing import Dict, Set, Tuple
22

33
from ..enums import ZorkGrandInquisitorRegions as ZGIRegions
44

55

6-
randomizable_entrances: Tuple[Tuple[ZGIRegions, ZGIRegions,]] = (
6+
entrances_to_game_location_teleports: Dict[
7+
Tuple[ZGIRegions, ZGIRegions],
8+
Tuple[str, str],
9+
] = {
10+
(ZGIRegions.BOTTOM_OF_THE_WELL, ZGIRegions.CROSSROADS): ("u c 1 0", "25"),
11+
(ZGIRegions.BOTTOM_OF_THE_WELL, ZGIRegions.OUTSIDE_PORT_FOOZLE_WELL): ("p c 1 0", "250"),
12+
(ZGIRegions.CROSSROADS, ZGIRegions.BOTTOM_OF_THE_WELL): ("u w 1 0", "30"),
13+
(ZGIRegions.CROSSROADS, ZGIRegions.DM_LAIR): ("d g 1 0", "1410"),
14+
(ZGIRegions.CROSSROADS, ZGIRegions.GUE_TECH_ENTRANCE): ("t e 1 0", "200"),
15+
(ZGIRegions.CROSSROADS, ZGIRegions.SUBWAY_CROSSROADS): ("u s 1 0", "1440"),
16+
(ZGIRegions.DM_LAIR, ZGIRegions.CROSSROADS): ("u c 3 0", "500"),
17+
(ZGIRegions.DM_LAIR, ZGIRegions.DM_LAIR_INTERIOR): ("d v 1 0", "1590"),
18+
(ZGIRegions.DM_LAIR_INTERIOR, ZGIRegions.DM_LAIR): ("d g 4 0", "120"),
19+
(ZGIRegions.DM_LAIR_INTERIOR, ZGIRegions.WALKING_CASTLE): ("d c 1 0", "1150"),
20+
(ZGIRegions.GUE_TECH, ZGIRegions.GUE_TECH_ENTRANCE): ("t e 3 0", "1010"),
21+
(ZGIRegions.GUE_TECH, ZGIRegions.GUE_TECH_OUTSIDE): ("t e 4 0", "1120"),
22+
(ZGIRegions.GUE_TECH_ENTRANCE, ZGIRegions.CROSSROADS): ("u c 4 0", "470"),
23+
(ZGIRegions.GUE_TECH_ENTRANCE, ZGIRegions.GUE_TECH): ("t r 1 0", "150"),
24+
(ZGIRegions.GUE_TECH_HALLWAY, ZGIRegions.SPELL_LAB_BRIDGE): ("t p 1 0", "1080"),
25+
(ZGIRegions.GUE_TECH_OUTSIDE, ZGIRegions.GUE_TECH): ("t r 1 0", "150"),
26+
(ZGIRegions.HADES, ZGIRegions.HADES_BEYOND_GATES): ("h p 6 0", "380"),
27+
(ZGIRegions.HADES, ZGIRegions.HADES_SHORE): ("h p 1 0", "1480"),
28+
(ZGIRegions.HADES_BEYOND_GATES, ZGIRegions.HADES): ("h p 5 0", "1350"),
29+
(ZGIRegions.HADES_SHORE, ZGIRegions.HADES): ("h p 4 0", "340"),
30+
(ZGIRegions.HADES_SHORE, ZGIRegions.SUBWAY_HADES): ("u h 1 0", "0"),
31+
(ZGIRegions.MONASTERY, ZGIRegions.MONASTERY_EXHIBIT): ("m e 2 0", "900"),
32+
(ZGIRegions.MONASTERY, ZGIRegions.SUBWAY_MONASTERY): ("u m 1 0", "1590"),
33+
(ZGIRegions.MONASTERY_EXHIBIT, ZGIRegions.MONASTERY): ("m t 3 0", "0"),
34+
(ZGIRegions.OUTSIDE_PORT_FOOZLE_INQUISITION_HQ, ZGIRegions.OUTSIDE_PORT_FOOZLE_SIGNPOST): ("p s 1 0", "680"),
35+
(ZGIRegions.OUTSIDE_PORT_FOOZLE_SIGNPOST, ZGIRegions.OUTSIDE_PORT_FOOZLE_INQUISITION_HQ): ("p x 1 0", "50"),
36+
(ZGIRegions.OUTSIDE_PORT_FOOZLE_SIGNPOST, ZGIRegions.OUTSIDE_PORT_FOOZLE_WELL): ("p s 2 0", "1360"),
37+
(ZGIRegions.OUTSIDE_PORT_FOOZLE_SIGNPOST, ZGIRegions.PORT_FOOZLE): ("p e 1 0", "210"),
38+
(ZGIRegions.OUTSIDE_PORT_FOOZLE_WELL, ZGIRegions.BOTTOM_OF_THE_WELL): ("u w 1 0", "0"),
39+
(ZGIRegions.OUTSIDE_PORT_FOOZLE_WELL, ZGIRegions.OUTSIDE_PORT_FOOZLE_SIGNPOST): ("p s 1 0", "170"),
40+
(ZGIRegions.PORT_FOOZLE, ZGIRegions.OUTSIDE_PORT_FOOZLE_SIGNPOST): ("p s 1 0", "1430"),
41+
(ZGIRegions.PORT_FOOZLE, ZGIRegions.PORT_FOOZLE_JACKS_SHOP): ("p p 1 0", "1130"),
42+
(ZGIRegions.PORT_FOOZLE_JACKS_SHOP, ZGIRegions.PORT_FOOZLE): ("p e 1 0", "1630"),
43+
(ZGIRegions.SPELL_LAB, ZGIRegions.SPELL_LAB_BRIDGE): ("t p 1 0", "140"),
44+
(ZGIRegions.SPELL_LAB_BRIDGE, ZGIRegions.GUE_TECH_HALLWAY): ("t h 3 0", "740"),
45+
(ZGIRegions.SPELL_LAB_BRIDGE, ZGIRegions.SPELL_LAB): ("t p 2 0", "1240"),
46+
(ZGIRegions.SUBWAY_CROSSROADS, ZGIRegions.CROSSROADS): ("u c 6 0", "1320"),
47+
(ZGIRegions.SUBWAY_CROSSROADS, ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM): ("u e 2 0", "1030"),
48+
(ZGIRegions.SUBWAY_CROSSROADS, ZGIRegions.SUBWAY_HADES): ("u h 2 0", "1030"),
49+
(ZGIRegions.SUBWAY_CROSSROADS, ZGIRegions.SUBWAY_MONASTERY): ("u m 2 0", "1030"),
50+
(ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM, ZGIRegions.SUBWAY_CROSSROADS): ("u s 2 0", "1030"),
51+
(ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM, ZGIRegions.SUBWAY_HADES): ("u h 2 0", "1030"),
52+
(ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM, ZGIRegions.SUBWAY_MONASTERY): ("u m 2 0", "1030"),
53+
(ZGIRegions.SUBWAY_HADES, ZGIRegions.HADES_SHORE): ("h p 1 0", "530"),
54+
(ZGIRegions.SUBWAY_HADES, ZGIRegions.SUBWAY_CROSSROADS): ("u s 2 0", "1030"),
55+
(ZGIRegions.SUBWAY_HADES, ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM): ("u e 2 0", "1030"),
56+
(ZGIRegions.SUBWAY_HADES, ZGIRegions.SUBWAY_MONASTERY): ("u m 2 0", "1030"),
57+
(ZGIRegions.SUBWAY_MONASTERY, ZGIRegions.MONASTERY): ("m t 1 0", "1530"),
58+
(ZGIRegions.SUBWAY_MONASTERY, ZGIRegions.SUBWAY_CROSSROADS): ("u s 2 0", "1030"),
59+
(ZGIRegions.SUBWAY_MONASTERY, ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM): ("u e 2 0", "1030"),
60+
(ZGIRegions.SUBWAY_MONASTERY, ZGIRegions.SUBWAY_HADES): ("u h 2 0", "1030"),
61+
(ZGIRegions.WALKING_CASTLE, ZGIRegions.DM_LAIR_INTERIOR): ("d v 1 0", "680"),
62+
}
63+
64+
entrances_to_game_locations: Dict[
65+
Tuple[Tuple[ZGIRegions, ZGIRegions]],
66+
Tuple[Tuple[str, str], ...],
67+
] = {
68+
(ZGIRegions.BOTTOM_OF_THE_WELL, ZGIRegions.CROSSROADS): (("uw1f", "uc10"),),
69+
(ZGIRegions.BOTTOM_OF_THE_WELL, ZGIRegions.OUTSIDE_PORT_FOOZLE_WELL): (("uw10", "pc10"),),
70+
(ZGIRegions.CROSSROADS, ZGIRegions.BOTTOM_OF_THE_WELL): (("uc10", "uw10"),),
71+
(ZGIRegions.CROSSROADS, ZGIRegions.DM_LAIR): (("uc30", "dg10"),),
72+
(ZGIRegions.CROSSROADS, ZGIRegions.GUE_TECH_ENTRANCE): (("uc40", "te10"),),
73+
(ZGIRegions.CROSSROADS, ZGIRegions.SUBWAY_CROSSROADS): (("uc60", "us10"),),
74+
(ZGIRegions.DM_LAIR, ZGIRegions.CROSSROADS): (("dg10", "uc30"),),
75+
(ZGIRegions.DM_LAIR, ZGIRegions.DM_LAIR_INTERIOR): (("dg40", "dv10"),),
76+
(ZGIRegions.DM_LAIR_INTERIOR, ZGIRegions.DM_LAIR): (("dv10", "dg40"),),
77+
(ZGIRegions.DM_LAIR_INTERIOR, ZGIRegions.WALKING_CASTLE): (("dv10", "dc10"),),
78+
(ZGIRegions.GUE_TECH, ZGIRegions.GUE_TECH_ENTRANCE): (("tr1g", "te30"),),
79+
(ZGIRegions.GUE_TECH, ZGIRegions.GUE_TECH_OUTSIDE): (("tr1k", "te40"),),
80+
(ZGIRegions.GUE_TECH_ENTRANCE, ZGIRegions.CROSSROADS): (("te10", "uc40"),),
81+
(ZGIRegions.GUE_TECH_ENTRANCE, ZGIRegions.GUE_TECH): (("te3e", "tr10"),),
82+
(ZGIRegions.GUE_TECH_HALLWAY, ZGIRegions.SPELL_LAB_BRIDGE): (("th30", "tp10"),),
83+
(ZGIRegions.GUE_TECH_OUTSIDE, ZGIRegions.GUE_TECH): (("te40", "tr10"),),
84+
(ZGIRegions.HADES, ZGIRegions.HADES_BEYOND_GATES): (("hp50", "hp60"),),
85+
(ZGIRegions.HADES, ZGIRegions.HADES_SHORE): (("hp4e", "hp10"),),
86+
(ZGIRegions.HADES_BEYOND_GATES, ZGIRegions.HADES): (("hp60", "hp50"),),
87+
(ZGIRegions.HADES_SHORE, ZGIRegions.HADES): (("hp1f", "hp40"),),
88+
(ZGIRegions.HADES_SHORE, ZGIRegions.SUBWAY_HADES): (("hp10", "uh10"),),
89+
(ZGIRegions.MONASTERY, ZGIRegions.MONASTERY_EXHIBIT): (("mt2e", "me20"), ("mt30", "me20")),
90+
(ZGIRegions.MONASTERY, ZGIRegions.SUBWAY_MONASTERY): (("mt1e", "um10"),),
91+
(ZGIRegions.MONASTERY_EXHIBIT, ZGIRegions.MONASTERY): (("me5f", "mt30"),),
92+
(ZGIRegions.OUTSIDE_PORT_FOOZLE_INQUISITION_HQ, ZGIRegions.OUTSIDE_PORT_FOOZLE_SIGNPOST): (("px10", "ps10"),),
93+
(ZGIRegions.OUTSIDE_PORT_FOOZLE_SIGNPOST, ZGIRegions.OUTSIDE_PORT_FOOZLE_INQUISITION_HQ): (("ps10", "px10"),),
94+
(ZGIRegions.OUTSIDE_PORT_FOOZLE_SIGNPOST, ZGIRegions.OUTSIDE_PORT_FOOZLE_WELL): (("ps10", "ps20"),),
95+
(ZGIRegions.OUTSIDE_PORT_FOOZLE_SIGNPOST, ZGIRegions.PORT_FOOZLE): (("ps10", "pe10"),),
96+
(ZGIRegions.OUTSIDE_PORT_FOOZLE_WELL, ZGIRegions.BOTTOM_OF_THE_WELL): (("pc1e", "uw10"),),
97+
(ZGIRegions.OUTSIDE_PORT_FOOZLE_WELL, ZGIRegions.OUTSIDE_PORT_FOOZLE_SIGNPOST): (("ps20", "ps10"),),
98+
(ZGIRegions.PORT_FOOZLE, ZGIRegions.OUTSIDE_PORT_FOOZLE_SIGNPOST): (("pe10", "ps10"),),
99+
(ZGIRegions.PORT_FOOZLE, ZGIRegions.PORT_FOOZLE_JACKS_SHOP): (("pe1e", "pp10"),),
100+
(ZGIRegions.PORT_FOOZLE_JACKS_SHOP, ZGIRegions.PORT_FOOZLE): (("pp10", "pe10"),),
101+
(ZGIRegions.SPELL_LAB, ZGIRegions.SPELL_LAB_BRIDGE): (("tp20", "tp50"),),
102+
(ZGIRegions.SPELL_LAB_BRIDGE, ZGIRegions.GUE_TECH_HALLWAY): (("tp10", "th30"),),
103+
(ZGIRegions.SPELL_LAB_BRIDGE, ZGIRegions.SPELL_LAB): (("tp10", "tp50"),),
104+
(ZGIRegions.SUBWAY_CROSSROADS, ZGIRegions.CROSSROADS): (("us1e", "uc60"),),
105+
(ZGIRegions.SUBWAY_CROSSROADS, ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM): (("us2f", "ue2f"),),
106+
(ZGIRegions.SUBWAY_CROSSROADS, ZGIRegions.SUBWAY_HADES): (("us2f", "uh2f"),),
107+
(ZGIRegions.SUBWAY_CROSSROADS, ZGIRegions.SUBWAY_MONASTERY): (("us2f", "um2f"),),
108+
(ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM, ZGIRegions.SUBWAY_CROSSROADS): (("ue2f", "us2f"),),
109+
(ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM, ZGIRegions.SUBWAY_HADES): (("ue2f", "uh2f"),),
110+
(ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM, ZGIRegions.SUBWAY_MONASTERY): (("ue2f", "um2f"),),
111+
(ZGIRegions.SUBWAY_HADES, ZGIRegions.HADES_SHORE): (("uh10", "hp10"),),
112+
(ZGIRegions.SUBWAY_HADES, ZGIRegions.SUBWAY_CROSSROADS): (("uh2f", "us2f"),),
113+
(ZGIRegions.SUBWAY_HADES, ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM): (("uh2f", "ue2f"),),
114+
(ZGIRegions.SUBWAY_HADES, ZGIRegions.SUBWAY_MONASTERY): (("uh2f", "um2f"),),
115+
(ZGIRegions.SUBWAY_MONASTERY, ZGIRegions.MONASTERY): (("um10", "mt10"),),
116+
(ZGIRegions.SUBWAY_MONASTERY, ZGIRegions.SUBWAY_CROSSROADS): (("um2f", "us2f"),),
117+
(ZGIRegions.SUBWAY_MONASTERY, ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM): (("um2f", "ue2f"),),
118+
(ZGIRegions.SUBWAY_MONASTERY, ZGIRegions.SUBWAY_HADES): (("um2f", "uh2f"),),
119+
(ZGIRegions.WALKING_CASTLE, ZGIRegions.DM_LAIR_INTERIOR): (("dc10", "dv10"),),
120+
}
121+
122+
randomizable_entrances: Tuple[Tuple[ZGIRegions, ZGIRegions]] = (
7123
(ZGIRegions.BOTTOM_OF_THE_WELL, ZGIRegions.CROSSROADS),
8124
(ZGIRegions.BOTTOM_OF_THE_WELL, ZGIRegions.OUTSIDE_PORT_FOOZLE_WELL),
9125
(ZGIRegions.CROSSROADS, ZGIRegions.BOTTOM_OF_THE_WELL),
@@ -41,19 +157,32 @@
41157
(ZGIRegions.SPELL_LAB_BRIDGE, ZGIRegions.GUE_TECH_HALLWAY),
42158
(ZGIRegions.SPELL_LAB_BRIDGE, ZGIRegions.SPELL_LAB),
43159
(ZGIRegions.SUBWAY_CROSSROADS, ZGIRegions.CROSSROADS),
160+
(ZGIRegions.SUBWAY_HADES, ZGIRegions.HADES_SHORE),
161+
(ZGIRegions.SUBWAY_MONASTERY, ZGIRegions.MONASTERY),
162+
(ZGIRegions.WALKING_CASTLE, ZGIRegions.DM_LAIR_INTERIOR),
163+
)
164+
165+
randomizable_entrances_subway: Tuple[Tuple[ZGIRegions, ZGIRegions]] = (
44166
(ZGIRegions.SUBWAY_CROSSROADS, ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM),
45167
(ZGIRegions.SUBWAY_CROSSROADS, ZGIRegions.SUBWAY_HADES),
46168
(ZGIRegions.SUBWAY_CROSSROADS, ZGIRegions.SUBWAY_MONASTERY),
47169
(ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM, ZGIRegions.SUBWAY_CROSSROADS),
48170
(ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM, ZGIRegions.SUBWAY_HADES),
49171
(ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM, ZGIRegions.SUBWAY_MONASTERY),
50-
(ZGIRegions.SUBWAY_HADES, ZGIRegions.HADES_SHORE),
51172
(ZGIRegions.SUBWAY_HADES, ZGIRegions.SUBWAY_CROSSROADS),
52173
(ZGIRegions.SUBWAY_HADES, ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM),
53174
(ZGIRegions.SUBWAY_HADES, ZGIRegions.SUBWAY_MONASTERY),
54-
(ZGIRegions.SUBWAY_MONASTERY, ZGIRegions.MONASTERY),
55175
(ZGIRegions.SUBWAY_MONASTERY, ZGIRegions.SUBWAY_CROSSROADS),
56176
(ZGIRegions.SUBWAY_MONASTERY, ZGIRegions.SUBWAY_FLOOD_CONTROL_DAM),
57177
(ZGIRegions.SUBWAY_MONASTERY, ZGIRegions.SUBWAY_HADES),
58-
(ZGIRegions.WALKING_CASTLE, ZGIRegions.DM_LAIR_INTERIOR),
59178
)
179+
180+
relevant_game_locations: Set[str] = set()
181+
182+
entrance_pairs: Tuple[Tuple[str, str]]
183+
for entrance_pairs in entrances_to_game_locations.values():
184+
entrance_from: str
185+
entrance_to: str
186+
for entrance_from, entrance_to in entrance_pairs:
187+
relevant_game_locations.add(entrance_from)
188+
relevant_game_locations.add(entrance_to)

0 commit comments

Comments
 (0)