diff options
| author | Star Rauchenberger <fefferburbia@gmail.com> | 2026-02-05 14:58:51 -0500 |
|---|---|---|
| committer | Star Rauchenberger <fefferburbia@gmail.com> | 2026-02-05 14:59:18 -0500 |
| commit | c5fa0dcde264ea95e75b54884934abc2573cd8f9 (patch) | |
| tree | 4225c60660d812511679a26bafb5d97696e2394b | |
| parent | 432531dca528825f841f632ad0c8291a3a7dcc19 (diff) | |
| download | lingo2-archipelago-c5fa0dcde264ea95e75b54884934abc2573cd8f9.tar.gz lingo2-archipelago-c5fa0dcde264ea95e75b54884934abc2573cd8f9.tar.bz2 lingo2-archipelago-c5fa0dcde264ea95e75b54884934abc2573cd8f9.zip | |
Annotate Lavender Cubes as always item in daed only mode
| -rw-r--r-- | apworld/player_logic.py | 6 | ||||
| -rw-r--r-- | data/door_groups.txtpb | 1 | ||||
| -rw-r--r-- | proto/data.proto | 2 | ||||
| -rw-r--r-- | proto/human.proto | 2 | ||||
| -rw-r--r-- | tools/datapacker/main.cpp | 4 |
5 files changed, 11 insertions, 4 deletions
| diff --git a/apworld/player_logic.py b/apworld/player_logic.py index 2ffc0eb..b946296 100644 --- a/apworld/player_logic.py +++ b/apworld/player_logic.py | |||
| @@ -322,10 +322,8 @@ class Lingo2PlayerLogic: | |||
| 322 | if not self.world.options.shuffle_control_center_colors or self.world.options.shuffle_worldports: | 322 | if not self.world.options.shuffle_control_center_colors or self.world.options.shuffle_worldports: |
| 323 | continue | 323 | continue |
| 324 | elif door_group.type == data_pb2.DoorGroupType.SHUFFLE_GROUP: | 324 | elif door_group.type == data_pb2.DoorGroupType.SHUFFLE_GROUP: |
| 325 | if door_group.name == "Lavender Cubes" and self.world.options.daedalus_only: | 325 | if (not self.world.options.shuffle_doors and |
| 326 | # Always shuffle this if we're in Daed-only mode. | 326 | not (door_group.daedalus_only_always_item and self.world.options.daedalus_only)): |
| 327 | pass | ||
| 328 | elif not self.world.options.shuffle_doors: | ||
| 329 | continue | 327 | continue |
| 330 | else: | 328 | else: |
| 331 | continue | 329 | continue |
| diff --git a/data/door_groups.txtpb b/data/door_groups.txtpb index 2e65d4b..0f704da 100644 --- a/data/door_groups.txtpb +++ b/data/door_groups.txtpb | |||
| @@ -156,6 +156,7 @@ door_groups { | |||
| 156 | door_groups { | 156 | door_groups { |
| 157 | name: "Lavender Cubes" | 157 | name: "Lavender Cubes" |
| 158 | type: SHUFFLE_GROUP | 158 | type: SHUFFLE_GROUP |
| 159 | daedalus_only_always_item: true | ||
| 159 | doors { | 160 | doors { |
| 160 | map: "daedalus" | 161 | map: "daedalus" |
| 161 | name: "C Keyholder Blocker" | 162 | name: "C Keyholder Blocker" |
| diff --git a/proto/data.proto b/proto/data.proto index de20128..d7538da 100644 --- a/proto/data.proto +++ b/proto/data.proto | |||
| @@ -303,6 +303,8 @@ message DoorGroup { | |||
| 303 | optional uint64 ap_id = 3; | 303 | optional uint64 ap_id = 3; |
| 304 | optional DoorGroupType type = 4; | 304 | optional DoorGroupType type = 4; |
| 305 | repeated uint64 doors = 5; | 305 | repeated uint64 doors = 5; |
| 306 | |||
| 307 | optional bool daedalus_only_always_item = 6; | ||
| 306 | } | 308 | } |
| 307 | 309 | ||
| 308 | message AllObjects { | 310 | message AllObjects { |
| diff --git a/proto/human.proto b/proto/human.proto index 2d3dbb6..39625d5 100644 --- a/proto/human.proto +++ b/proto/human.proto | |||
| @@ -262,6 +262,8 @@ message HumanDoorGroup { | |||
| 262 | optional string name = 1; | 262 | optional string name = 1; |
| 263 | optional DoorGroupType type = 2; | 263 | optional DoorGroupType type = 2; |
| 264 | repeated DoorIdentifier doors = 3; | 264 | repeated DoorIdentifier doors = 3; |
| 265 | |||
| 266 | optional bool daedalus_only_always_item = 4; | ||
| 265 | } | 267 | } |
| 266 | 268 | ||
| 267 | message HumanDoorGroups { | 269 | message HumanDoorGroups { |
| diff --git a/tools/datapacker/main.cpp b/tools/datapacker/main.cpp index 349e895..953821f 100644 --- a/tools/datapacker/main.cpp +++ b/tools/datapacker/main.cpp | |||
| @@ -657,6 +657,10 @@ class DataPacker { | |||
| 657 | container_.FindOrAddDoor(di.map(), di.name(), std::nullopt); | 657 | container_.FindOrAddDoor(di.map(), di.name(), std::nullopt); |
| 658 | group.add_doors(door_id); | 658 | group.add_doors(door_id); |
| 659 | } | 659 | } |
| 660 | |||
| 661 | if (h_group.has_daedalus_only_always_item()) { | ||
| 662 | group.set_daedalus_only_always_item(h_group.daedalus_only_always_item()); | ||
| 663 | } | ||
| 660 | } | 664 | } |
| 661 | 665 | ||
| 662 | void ProcessGlobalMetadataFile(std::filesystem::path path) { | 666 | void ProcessGlobalMetadataFile(std::filesystem::path path) { |
