diff options
-rw-r--r-- | apworld/player_logic.py | 4 | ||||
-rw-r--r-- | data/ids.txtpb | 103 | ||||
-rw-r--r-- | data/maps/the_gallery/doors.txtpb | 4 | ||||
-rw-r--r-- | proto/data.proto | 1 | ||||
-rw-r--r-- | tools/datapacker/main.cpp | 7 |
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 | } |
2172 | maps { | ||
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 | } | ||
2172 | letters { | 2275 | letters { |
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 | } |
33 | doors { | 33 | doors { |
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 | } |
134 | doors { | 134 | doors { |
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 | } |