summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--apworld/player_logic.py4
-rw-r--r--data/ids.txtpb103
-rw-r--r--data/maps/the_gallery/doors.txtpb4
-rw-r--r--proto/data.proto1
-rw-r--r--tools/datapacker/main.cpp7
5 files changed, 117 insertions, 2 deletions
diff --git a/apworld/player_logic.py b/apworld/player_logic.py index 8b240b5..7209ee5 100644 --- a/apworld/player_logic.py +++ b/apworld/player_logic.py
@@ -160,4 +160,8 @@ class Lingo2PlayerLogic:
160 for room in door.rooms: 160 for room in door.rooms:
161 reqs.rooms.add(self.world.static_logic.get_room_region_name(room)) 161 reqs.rooms.add(self.world.static_logic.get_room_region_name(room))
162 162
163 for sub_door_id in door.doors:
164 sub_reqs = self.get_door_reqs(sub_door_id)
165 reqs.merge(sub_reqs)
166
163 return reqs 167 return reqs
diff --git a/data/ids.txtpb b/data/ids.txtpb index 0a05672..019ae84 100644 --- a/data/ids.txtpb +++ b/data/ids.txtpb
@@ -2169,6 +2169,109 @@ maps {
2169 } 2169 }
2170 } 2170 }
2171} 2171}
2172maps {
2173 key: "the_gallery"
2174 value {
2175 doors {
2176 key: "Ancient Painting"
2177 value: 431
2178 }
2179 doors {
2180 key: "Between Painting"
2181 value: 417
2182 }
2183 doors {
2184 key: "Butterfly Painting"
2185 value: 413
2186 }
2187 doors {
2188 key: "Castle Painting"
2189 value: 429
2190 }
2191 doors {
2192 key: "Colorful Painting"
2193 value: 428
2194 }
2195 doors {
2196 key: "Control Center Painting"
2197 value: 423
2198 }
2199 doors {
2200 key: "Darkroom Painting"
2201 value: 412
2202 }
2203 doors {
2204 key: "Ending Door"
2205 value: 433
2206 }
2207 doors {
2208 key: "Entry Painting"
2209 value: 418
2210 }
2211 doors {
2212 key: "Gallery Extension"
2213 value: 432
2214 }
2215 doors {
2216 key: "Graveyard Painting"
2217 value: 422
2218 }
2219 doors {
2220 key: "Rainbow Painting"
2221 value: 426
2222 }
2223 doors {
2224 key: "Sun Temple Painting"
2225 value: 430
2226 }
2227 doors {
2228 key: "Tower Painting"
2229 value: 424
2230 }
2231 doors {
2232 key: "Tree Painting"
2233 value: 420
2234 }
2235 doors {
2236 key: "Unyielding Painting"
2237 value: 421
2238 }
2239 doors {
2240 key: "Wise Painting"
2241 value: 419
2242 }
2243 doors {
2244 key: "Wondrous Painting"
2245 value: 425
2246 }
2247 doors {
2248 key: "Words Painting"
2249 value: 427
2250 }
2251 rooms {
2252 key: "Back Room"
2253 value {
2254 panels {
2255 key: "TREE"
2256 value: 416
2257 }
2258 panels {
2259 key: "UNYIELDING"
2260 value: 415
2261 }
2262 }
2263 }
2264 rooms {
2265 key: "Daedalus Extension"
2266 value {
2267 panels {
2268 key: "WHERE"
2269 value: 414
2270 }
2271 }
2272 }
2273 }
2274}
2172letters { 2275letters {
2173 key: "a2" 2276 key: "a2"
2174 value: 278 2277 value: 278
diff --git a/data/maps/the_gallery/doors.txtpb b/data/maps/the_gallery/doors.txtpb index 6ce4b0e..a010220 100644 --- a/data/maps/the_gallery/doors.txtpb +++ b/data/maps/the_gallery/doors.txtpb
@@ -28,7 +28,7 @@ doors {
28 name: "Butterfly Painting" 28 name: "Butterfly Painting"
29 type: ITEM_ONLY 29 type: ITEM_ONLY
30 move_paintings { room: "Main Area" name: "BUTTERFLY" } 30 move_paintings { room: "Main Area" name: "BUTTERFLY" }
31 required_room { map: "the_butterfly" name: "Main Area" } 31 rooms { map: "the_butterfly" name: "Main Area" }
32} 32}
33doors { 33doors {
34 name: "Between Painting" 34 name: "Between Painting"
@@ -129,7 +129,7 @@ doors {
129 name: "Colorful Painting" 129 name: "Colorful Painting"
130 type: ITEM_ONLY 130 type: ITEM_ONLY
131 move_paintings { room: "Main Area" name: "COLORFUL" } 131 move_paintings { room: "Main Area" name: "COLORFUL" }
132 required_room { map: "the_colorful" name: "White Room" } 132 rooms { map: "the_colorful" name: "White Room" }
133} 133}
134doors { 134doors {
135 name: "Castle Painting" 135 name: "Castle Painting"
diff --git a/proto/data.proto b/proto/data.proto index f60d54f..49a940c 100644 --- a/proto/data.proto +++ b/proto/data.proto
@@ -76,6 +76,7 @@ message Door {
76 repeated string switches = 7; 76 repeated string switches = 7;
77 repeated KeyholderAnswer keyholders = 13; 77 repeated KeyholderAnswer keyholders = 13;
78 repeated uint64 rooms = 14; 78 repeated uint64 rooms = 14;
79 repeated uint64 doors = 15;
79 80
80 optional DoorType type = 8; 81 optional DoorType type = 8;
81} 82}
diff --git a/tools/datapacker/main.cpp b/tools/datapacker/main.cpp index 8b87ab1..1736ec1 100644 --- a/tools/datapacker/main.cpp +++ b/tools/datapacker/main.cpp
@@ -339,6 +339,13 @@ class DataPacker {
339 container_.FindOrAddRoom(map_name, ri.name(), current_map_name)); 339 container_.FindOrAddRoom(map_name, ri.name(), current_map_name));
340 } 340 }
341 341
342 for (const DoorIdentifier& di : h_door.doors()) {
343 std::optional<std::string> map_name =
344 di.has_map() ? std::optional<std::string>(di.map()) : std::nullopt;
345 door.add_doors(
346 container_.FindOrAddDoor(map_name, di.name(), current_map_name));
347 }
348
342 if (h_door.has_control_center_color()) { 349 if (h_door.has_control_center_color()) {
343 door.set_control_center_color(h_door.control_center_color()); 350 door.set_control_center_color(h_door.control_center_color());
344 } 351 }