about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--apworld/options.py2
-rw-r--r--apworld/player_logic.py4
-rw-r--r--apworld/static_logic.py3
-rw-r--r--data/ids.yaml3
-rw-r--r--data/maps/control_center/rooms/Ancient Entrance.txtpb4
-rw-r--r--data/maps/daedalus/rooms/Hotel.txtpb2
-rw-r--r--data/maps/the_butterfly/doors.txtpb1
-rw-r--r--data/maps/the_colorful/doors.txtpb1
-rw-r--r--data/maps/the_congruent/rooms/C Keyholder.txtpb1
-rw-r--r--data/maps/the_congruent/rooms/G Keyholder.txtpb1
-rw-r--r--data/maps/the_darkroom/doors.txtpb1
-rw-r--r--data/maps/the_entry/doors.txtpb2
-rw-r--r--data/maps/the_partial/doors.txtpb3
-rw-r--r--data/maps/the_relentless/doors.txtpb6
-rw-r--r--proto/data.proto3
-rw-r--r--tools/validator/validator.cpp3
16 files changed, 22 insertions, 18 deletions
diff --git a/apworld/options.py b/apworld/options.py index a56b40d..f687434 100644 --- a/apworld/options.py +++ b/apworld/options.py
@@ -197,7 +197,7 @@ class MasteriesRequirement(Range):
197 the maximum.""" 197 the maximum."""
198 display_name = "Masteries Requirement" 198 display_name = "Masteries Requirement"
199 range_start = 0 199 range_start = 0
200 range_end = 18 200 range_end = 19
201 default = 0 201 default = 0
202 202
203 203
diff --git a/apworld/player_logic.py b/apworld/player_logic.py index d7b18c2..1d68e4a 100644 --- a/apworld/player_logic.py +++ b/apworld/player_logic.py
@@ -299,7 +299,8 @@ class Lingo2PlayerLogic:
299 if door.map_id not in self.shuffled_maps: 299 if door.map_id not in self.shuffled_maps:
300 continue 300 continue
301 301
302 if door.type in [data_pb2.DoorType.EVENT, data_pb2.DoorType.LOCATION_ONLY, data_pb2.DoorType.GRAVESTONE]: 302 if door.type in [data_pb2.DoorType.EVENT, data_pb2.DoorType.LOCATION_ONLY, data_pb2.DoorType.GRAVESTONE,
303 data_pb2.DoorType.LEGACY_LOCATION]:
303 continue 304 continue
304 305
305 if door.id in self.item_by_door: 306 if door.id in self.item_by_door:
@@ -511,7 +512,6 @@ class Lingo2PlayerLogic:
511 reqs.possibilities.append(panel_reqs) 512 reqs.possibilities.append(panel_reqs)
512 513
513 if door.HasField("control_center_color"): 514 if door.HasField("control_center_color"):
514 # TODO: Logic for ensuring two CC states aren't needed at once.
515 reqs.rooms.add("Control Center - Main Area") 515 reqs.rooms.add("Control Center - Main Area")
516 self.add_solution_reqs(reqs, door.control_center_color) 516 self.add_solution_reqs(reqs, door.control_center_color)
517 517
diff --git a/apworld/static_logic.py b/apworld/static_logic.py index 8e07b82..702f30b 100644 --- a/apworld/static_logic.py +++ b/apworld/static_logic.py
@@ -31,7 +31,8 @@ class Lingo2StaticLogic:
31 location_name = self.get_door_location_name(door) 31 location_name = self.get_door_location_name(door)
32 self.location_id_to_name[door.ap_id] = location_name 32 self.location_id_to_name[door.ap_id] = location_name
33 33
34 if door.type not in [data_pb2.DoorType.EVENT, data_pb2.DoorType.LOCATION_ONLY, data_pb2.DoorType.GRAVESTONE]: 34 if door.type not in [data_pb2.DoorType.EVENT, data_pb2.DoorType.LOCATION_ONLY, data_pb2.DoorType.GRAVESTONE,
35 data_pb2.DoorType.LEGACY_LOCATION]:
35 item_name = self.get_door_item_name(door) 36 item_name = self.get_door_item_name(door)
36 self.item_id_to_name[door.ap_id] = item_name 37 self.item_id_to_name[door.ap_id] = item_name
37 38
diff --git a/data/ids.yaml b/data/ids.yaml index 6a44044..49dd23f 100644 --- a/data/ids.yaml +++ b/data/ids.yaml
@@ -2789,6 +2789,7 @@ maps:
2789 FINCH: 886 2789 FINCH: 886
2790 FOUR: 885 2790 FOUR: 885
2791 doors: 2791 doors:
2792 Control Center Entrance: 865
2792 F Door: 866 2793 F Door: 866
2793 L Entered: 2843 2794 L Entered: 2843
2794 Main Room Puzzles: 863 2795 Main Room Puzzles: 863
@@ -2974,8 +2975,10 @@ maps:
2974 MORE: 1022 2975 MORE: 1022
2975 doors: 2976 doors:
2976 Left Only Puzzles: 3020 2977 Left Only Puzzles: 3020
2978 Left/Turn Door: 984
2977 Shop Only Puzzles: 3019 2979 Shop Only Puzzles: 3019
2978 Turn Only Puzzles: 3018 2980 Turn Only Puzzles: 3018
2981 Turn/Shop Door: 985
2979 the_repetitive: 2982 the_repetitive:
2980 rooms: 2983 rooms:
2981 Anti Room: 2984 Anti Room:
diff --git a/data/maps/control_center/rooms/Ancient Entrance.txtpb b/data/maps/control_center/rooms/Ancient Entrance.txtpb index 5b65d9a..dc018ba 100644 --- a/data/maps/control_center/rooms/Ancient Entrance.txtpb +++ b/data/maps/control_center/rooms/Ancient Entrance.txtpb
@@ -5,6 +5,8 @@ ports {
5 path: "Components/Warps/worldport8" 5 path: "Components/Warps/worldport8"
6 destination { x: -27 y: 0 z: -34 } 6 destination { x: -27 y: 0 z: -34 }
7 rotation: 90 7 rotation: 90
8 # TODO: shuffle entrances with dependent keyholders 8 # This is because there's no port on the other side of the connection, so if
9 # this connection was removed and gallery paintings aren't shuffled then
10 # there'd be no way into The Ancient.
9 no_shuffle: true 11 no_shuffle: true
10} 12}
diff --git a/data/maps/daedalus/rooms/Hotel.txtpb b/data/maps/daedalus/rooms/Hotel.txtpb index d2a05db..d590841 100644 --- a/data/maps/daedalus/rooms/Hotel.txtpb +++ b/data/maps/daedalus/rooms/Hotel.txtpb
@@ -1,7 +1,5 @@
1name: "Hotel" 1name: "Hotel"
2panel_display_name: "Southwest Area" 2panel_display_name: "Southwest Area"
3# TODO: Something has to be changed in-game so that the puzzles don't disappear
4# and thus cause them to become unsolvable.
5panels { 3panels {
6 name: "MARLIN" 4 name: "MARLIN"
7 path: "Panels/Connections/connections_2" 5 path: "Panels/Connections/connections_2"
diff --git a/data/maps/the_butterfly/doors.txtpb b/data/maps/the_butterfly/doors.txtpb index 987c269..1ebc3a2 100644 --- a/data/maps/the_butterfly/doors.txtpb +++ b/data/maps/the_butterfly/doors.txtpb
@@ -1,4 +1,3 @@
1# TODO: The gallery painting
2doors { 1doors {
3 name: "Panels" 2 name: "Panels"
4 type: EVENT 3 type: EVENT
diff --git a/data/maps/the_colorful/doors.txtpb b/data/maps/the_colorful/doors.txtpb index 003c9a9..4785cf2 100644 --- a/data/maps/the_colorful/doors.txtpb +++ b/data/maps/the_colorful/doors.txtpb
@@ -1,4 +1,3 @@
1# TODO: gallery painting
2doors { 1doors {
3 name: "White Door" 2 name: "White Door"
4 type: STANDARD 3 type: STANDARD
diff --git a/data/maps/the_congruent/rooms/C Keyholder.txtpb b/data/maps/the_congruent/rooms/C Keyholder.txtpb index 75ef920..d9a8cf2 100644 --- a/data/maps/the_congruent/rooms/C Keyholder.txtpb +++ b/data/maps/the_congruent/rooms/C Keyholder.txtpb
@@ -2,5 +2,4 @@ name: "C Keyholder"
2keyholders { 2keyholders {
3 name: "C" 3 name: "C"
4 path: "Components/KeyHolders/keyHolder" 4 path: "Components/KeyHolders/keyHolder"
5 # TODO: This will need to be modified so that it doesn't actually take the letter.
6} 5}
diff --git a/data/maps/the_congruent/rooms/G Keyholder.txtpb b/data/maps/the_congruent/rooms/G Keyholder.txtpb index 8184703..cd12419 100644 --- a/data/maps/the_congruent/rooms/G Keyholder.txtpb +++ b/data/maps/the_congruent/rooms/G Keyholder.txtpb
@@ -2,5 +2,4 @@ name: "G Keyholder"
2keyholders { 2keyholders {
3 name: "G" 3 name: "G"
4 path: "Components/KeyHolders/keyHolder2" 4 path: "Components/KeyHolders/keyHolder2"
5 # TODO: This will need to be modified so that it doesn't actually take the letter.
6} 5}
diff --git a/data/maps/the_darkroom/doors.txtpb b/data/maps/the_darkroom/doors.txtpb index 047c7d0..c4a47a0 100644 --- a/data/maps/the_darkroom/doors.txtpb +++ b/data/maps/the_darkroom/doors.txtpb
@@ -1,4 +1,3 @@
1# TODO: gallery painting
2doors { 1doors {
3 name: "Double Letter Panel Blockers" 2 name: "Double Letter Panel Blockers"
4 type: EVENT 3 type: EVENT
diff --git a/data/maps/the_entry/doors.txtpb b/data/maps/the_entry/doors.txtpb index 9e6a30f..5bc6f57 100644 --- a/data/maps/the_entry/doors.txtpb +++ b/data/maps/the_entry/doors.txtpb
@@ -304,7 +304,6 @@ doors {
304doors { 304doors {
305 name: "Red Room Painting" 305 name: "Red Room Painting"
306 type: STANDARD 306 type: STANDARD
307 #move_paintings { room: "Right Eye" name: "PSYCHIC" }
308 receivers: "Components/Paintings/psychic/teleportListener" 307 receivers: "Components/Paintings/psychic/teleportListener"
309 panels { room: "Right Eye" name: "FAINT" } 308 panels { room: "Right Eye" name: "FAINT" }
310 location_room: "Right Eye" 309 location_room: "Right Eye"
@@ -312,7 +311,6 @@ doors {
312doors { 311doors {
313 name: "Third Eye Painting" 312 name: "Third Eye Painting"
314 type: LOCATION_ONLY 313 type: LOCATION_ONLY
315 # move_paintings { room: "Eye Room" name: "GALLERY" }
316 # TODO: ummmm 314 # TODO: ummmm
317 panels { room: "Eye Room" name: "I" } 315 panels { room: "Eye Room" name: "I" }
318 location_room: "Eye Room" 316 location_room: "Eye Room"
diff --git a/data/maps/the_partial/doors.txtpb b/data/maps/the_partial/doors.txtpb index b6445cd..11826ea 100644 --- a/data/maps/the_partial/doors.txtpb +++ b/data/maps/the_partial/doors.txtpb
@@ -49,9 +49,10 @@ doors {
49} 49}
50doors { 50doors {
51 name: "Control Center Entrance" 51 name: "Control Center Entrance"
52 type: EVENT 52 type: LEGACY_LOCATION
53 #receivers: "Components/Doors/controlDoor" 53 #receivers: "Components/Doors/controlDoor"
54 panels { room: "Control Center Entrance" name: "RETURN" } 54 panels { room: "Control Center Entrance" name: "RETURN" }
55 location_room: "Control Center Entrance"
55} 56}
56doors { 57doors {
57 name: "F Door" 58 name: "F Door"
diff --git a/data/maps/the_relentless/doors.txtpb b/data/maps/the_relentless/doors.txtpb index 727599f..e970e40 100644 --- a/data/maps/the_relentless/doors.txtpb +++ b/data/maps/the_relentless/doors.txtpb
@@ -26,17 +26,18 @@ doors {
26} 26}
27doors { 27doors {
28 name: "Left/Turn Door" 28 name: "Left/Turn Door"
29 type: EVENT 29 type: LEGACY_LOCATION
30 panels { room: "Left Room" name: "HIDE" } 30 panels { room: "Left Room" name: "HIDE" }
31 panels { room: "Left Room" name: "LEFT" } 31 panels { room: "Left Room" name: "LEFT" }
32 panels { room: "Left Room" name: "MORE" } 32 panels { room: "Left Room" name: "MORE" }
33 panels { room: "Turn Room" name: "HIDE (1)" } 33 panels { room: "Turn Room" name: "HIDE (1)" }
34 panels { room: "Turn Room" name: "HIDE (2)" } 34 panels { room: "Turn Room" name: "HIDE (2)" }
35 panels { room: "Turn Room" name: "MORE" } 35 panels { room: "Turn Room" name: "MORE" }
36 location_room: "Turn Room"
36} 37}
37doors { 38doors {
38 name: "Turn/Shop Door" 39 name: "Turn/Shop Door"
39 type: EVENT 40 type: LEGACY_LOCATION
40 panels { room: "Turn Room" name: "HIDE (1)" } 41 panels { room: "Turn Room" name: "HIDE (1)" }
41 panels { room: "Turn Room" name: "HIDE (2)" } 42 panels { room: "Turn Room" name: "HIDE (2)" }
42 panels { room: "Turn Room" name: "MORE" } 43 panels { room: "Turn Room" name: "MORE" }
@@ -45,6 +46,7 @@ doors {
45 panels { room: "Shop Room" name: "EXIT (1)" } 46 panels { room: "Shop Room" name: "EXIT (1)" }
46 panels { room: "Shop Room" name: "EXIT (2)" } 47 panels { room: "Shop Room" name: "EXIT (2)" }
47 panels { room: "Shop Room" name: "EXIT (3)" } 48 panels { room: "Shop Room" name: "EXIT (3)" }
49 location_room: "Turn Room"
48} 50}
49doors { 51doors {
50 name: "All Doors" 52 name: "All Doors"
diff --git a/proto/data.proto b/proto/data.proto index b46ab99..d84c598 100644 --- a/proto/data.proto +++ b/proto/data.proto
@@ -30,6 +30,9 @@ enum DoorType {
30 30
31 // This door is never a location, and is an item as long as gallery painting shuffle is on. 31 // This door is never a location, and is an item as long as gallery painting shuffle is on.
32 GALLERY_PAINTING = 7; 32 GALLERY_PAINTING = 7;
33
34 // This location is not added to new worlds, but the client can send it out for backwards compataibility purposes.
35 LEGACY_LOCATION = 8;
33} 36}
34 37
35enum DoorGroupType { 38enum DoorGroupType {
diff --git a/tools/validator/validator.cpp b/tools/validator/validator.cpp index e1fc138..5f8e0ba 100644 --- a/tools/validator/validator.cpp +++ b/tools/validator/validator.cpp
@@ -227,7 +227,8 @@ class Validator {
227 227
228 if (h_door.type() == DoorType::STANDARD || 228 if (h_door.type() == DoorType::STANDARD ||
229 h_door.type() == DoorType::LOCATION_ONLY || 229 h_door.type() == DoorType::LOCATION_ONLY ||
230 h_door.type() == DoorType::GRAVESTONE) { 230 h_door.type() == DoorType::GRAVESTONE ||
231 h_door.type() == DoorType::LEGACY_LOCATION) {
231 if (h_door.double_letters()) { 232 if (h_door.double_letters()) {
232 std::cout << "Door " << door_identifier.ShortDebugString() 233 std::cout << "Door " << door_identifier.ShortDebugString()
233 << " is a location that depends on double_letters." 234 << " is a location that depends on double_letters."