diff options
| -rw-r--r-- | apworld/player_logic.py | 3 | ||||
| -rw-r--r-- | data/maps/daedalus/doors.txtpb | 1 | ||||
| -rw-r--r-- | proto/data.proto | 1 | ||||
| -rw-r--r-- | proto/human.proto | 1 | ||||
| -rw-r--r-- | tools/datapacker/main.cpp | 4 |
5 files changed, 9 insertions, 1 deletions
| diff --git a/apworld/player_logic.py b/apworld/player_logic.py index aea7698..d3518d9 100644 --- a/apworld/player_logic.py +++ b/apworld/player_logic.py | |||
| @@ -323,7 +323,8 @@ class Lingo2PlayerLogic: | |||
| 323 | continue | 323 | continue |
| 324 | 324 | ||
| 325 | if (door.type in [data_pb2.DoorType.STANDARD, data_pb2.DoorType.ITEM_ONLY] and | 325 | if (door.type in [data_pb2.DoorType.STANDARD, data_pb2.DoorType.ITEM_ONLY] and |
| 326 | not self.world.options.shuffle_doors): | 326 | not self.world.options.shuffle_doors and |
| 327 | not (door.daedalus_only_always_item and self.world.options.daedalus_only)): | ||
| 327 | continue | 328 | continue |
| 328 | 329 | ||
| 329 | if (door.type == data_pb2.DoorType.CONTROL_CENTER_COLOR and | 330 | if (door.type == data_pb2.DoorType.CONTROL_CENTER_COLOR and |
| diff --git a/data/maps/daedalus/doors.txtpb b/data/maps/daedalus/doors.txtpb index f2f4592..c44792e 100644 --- a/data/maps/daedalus/doors.txtpb +++ b/data/maps/daedalus/doors.txtpb | |||
| @@ -1538,6 +1538,7 @@ doors { | |||
| 1538 | type: ITEM_ONLY | 1538 | type: ITEM_ONLY |
| 1539 | receivers: "Components/Doors/Color Reading/door_2" | 1539 | receivers: "Components/Doors/Color Reading/door_2" |
| 1540 | panels { room: "Rainbow Start" name: "PAINTING" } | 1540 | panels { room: "Rainbow Start" name: "PAINTING" } |
| 1541 | daedalus_only_always_item: true | ||
| 1541 | } | 1542 | } |
| 1542 | doors { | 1543 | doors { |
| 1543 | name: "Red Rainbow Room" | 1544 | name: "Red Rainbow Room" |
| diff --git a/proto/data.proto b/proto/data.proto index d6cc8cb..de20128 100644 --- a/proto/data.proto +++ b/proto/data.proto | |||
| @@ -166,6 +166,7 @@ message Door { | |||
| 166 | 166 | ||
| 167 | optional string location_name = 17; | 167 | optional string location_name = 17; |
| 168 | optional bool daedalus_only_allow = 22; | 168 | optional bool daedalus_only_allow = 22; |
| 169 | optional bool daedalus_only_always_item = 23; | ||
| 169 | } | 170 | } |
| 170 | 171 | ||
| 171 | message PanelData { | 172 | message PanelData { |
| diff --git a/proto/human.proto b/proto/human.proto index 73a3ed3..2d3dbb6 100644 --- a/proto/human.proto +++ b/proto/human.proto | |||
| @@ -126,6 +126,7 @@ message HumanDoor { | |||
| 126 | optional bool legacy_location = 18; | 126 | optional bool legacy_location = 18; |
| 127 | 127 | ||
| 128 | optional bool daedalus_only_allow = 19; | 128 | optional bool daedalus_only_allow = 19; |
| 129 | optional bool daedalus_only_always_item = 20; | ||
| 129 | } | 130 | } |
| 130 | 131 | ||
| 131 | message HumanDoors { | 132 | message HumanDoors { |
| diff --git a/tools/datapacker/main.cpp b/tools/datapacker/main.cpp index 9808a98..349e895 100644 --- a/tools/datapacker/main.cpp +++ b/tools/datapacker/main.cpp | |||
| @@ -453,6 +453,10 @@ class DataPacker { | |||
| 453 | if (h_door.has_daedalus_only_allow()) { | 453 | if (h_door.has_daedalus_only_allow()) { |
| 454 | door.set_daedalus_only_allow(h_door.daedalus_only_allow()); | 454 | door.set_daedalus_only_allow(h_door.daedalus_only_allow()); |
| 455 | } | 455 | } |
| 456 | |||
| 457 | if (h_door.has_daedalus_only_always_item()) { | ||
| 458 | door.set_daedalus_only_always_item(h_door.daedalus_only_always_item()); | ||
| 459 | } | ||
| 456 | } | 460 | } |
| 457 | 461 | ||
| 458 | void ProcessConnectionsFile(std::filesystem::path path, | 462 | void ProcessConnectionsFile(std::filesystem::path path, |
