diff options
-rw-r--r-- | apworld/player_logic.py | 3 | ||||
-rw-r--r-- | data/door_groups.txtpb | 20 | ||||
-rw-r--r-- | data/ids.yaml | 3 | ||||
-rw-r--r-- | data/maps/daedalus/doors.txtpb | 8 | ||||
-rw-r--r-- | data/maps/the_ancient/doors.txtpb | 3 | ||||
-rw-r--r-- | data/maps/the_ancient/rooms/Inside.txtpb | 1 | ||||
-rw-r--r-- | data/maps/the_congruent/doors.txtpb | 8 | ||||
-rw-r--r-- | data/maps/the_great/doors.txtpb | 8 | ||||
-rw-r--r-- | data/maps/the_parthenon/doors.txtpb | 7 | ||||
-rw-r--r-- | proto/data.proto | 4 | ||||
-rw-r--r-- | proto/human.proto | 1 | ||||
-rw-r--r-- | tools/datapacker/main.cpp | 3 |
12 files changed, 53 insertions, 16 deletions
diff --git a/apworld/player_logic.py b/apworld/player_logic.py index 317d13b..c94b809 100644 --- a/apworld/player_logic.py +++ b/apworld/player_logic.py | |||
@@ -130,6 +130,9 @@ class Lingo2PlayerLogic: | |||
130 | elif door_group.type == data_pb2.DoorGroupType.COLOR_CONNECTOR: | 130 | elif door_group.type == data_pb2.DoorGroupType.COLOR_CONNECTOR: |
131 | if not self.world.options.shuffle_control_center_colors: | 131 | if not self.world.options.shuffle_control_center_colors: |
132 | continue | 132 | continue |
133 | elif door_group.type == data_pb2.DoorGroupType.SHUFFLE_GROUP: | ||
134 | if not self.world.options.shuffle_doors: | ||
135 | continue | ||
133 | else: | 136 | else: |
134 | continue | 137 | continue |
135 | 138 | ||
diff --git a/data/door_groups.txtpb b/data/door_groups.txtpb index a90bc9a..1a75c45 100644 --- a/data/door_groups.txtpb +++ b/data/door_groups.txtpb | |||
@@ -138,3 +138,23 @@ door_groups { | |||
138 | name: "Cyan Doors" | 138 | name: "Cyan Doors" |
139 | } | 139 | } |
140 | } | 140 | } |
141 | door_groups { | ||
142 | name: "Lavender Cubes" | ||
143 | type: SHUFFLE_GROUP | ||
144 | doors { | ||
145 | map: "daedalus" | ||
146 | name: "C Keyholder Blocker" | ||
147 | } | ||
148 | doors { | ||
149 | map: "the_congruent" | ||
150 | name: "T Keyholder Blocker" | ||
151 | } | ||
152 | doors { | ||
153 | map: "the_great" | ||
154 | name: "Lavender Cube" | ||
155 | } | ||
156 | doors { | ||
157 | map: "the_parthenon" | ||
158 | name: "Lavender Cubes" | ||
159 | } | ||
160 | } | ||
diff --git a/data/ids.yaml b/data/ids.yaml index 4e2cd66..e2ec985 100644 --- a/data/ids.yaml +++ b/data/ids.yaml | |||
@@ -1484,7 +1484,6 @@ maps: | |||
1484 | Obverse Magenta Door: 173 | 1484 | Obverse Magenta Door: 173 |
1485 | Obverse Yellow Door: 178 | 1485 | Obverse Yellow Door: 178 |
1486 | Obverse Yellow Puzzles: 179 | 1486 | Obverse Yellow Puzzles: 179 |
1487 | T Keyholder Blocker: 183 | ||
1488 | the_darkroom: | 1487 | the_darkroom: |
1489 | rooms: | 1488 | rooms: |
1490 | First Room: | 1489 | First Room: |
@@ -2084,7 +2083,6 @@ maps: | |||
2084 | Into The Mouth Gravestone: 457 | 2083 | Into The Mouth Gravestone: 457 |
2085 | Invisible Entrance: 465 | 2084 | Invisible Entrance: 465 |
2086 | Jail Entrance: 451 | 2085 | Jail Entrance: 451 |
2087 | Lavender Cube: 469 | ||
2088 | Magnet Room Entrance: 449 | 2086 | Magnet Room Entrance: 449 |
2089 | Nature Room Door: 466 | 2087 | Nature Room Door: 466 |
2090 | Nature Room Panels: 467 | 2088 | Nature Room Panels: 467 |
@@ -3847,5 +3845,6 @@ door_groups: | |||
3847 | Control Center Purple Doors: 2785 | 3845 | Control Center Purple Doors: 2785 |
3848 | Control Center White Doors: 2784 | 3846 | Control Center White Doors: 2784 |
3849 | Cyan Doors: 2789 | 3847 | Cyan Doors: 2789 |
3848 | Lavender Cubes: 2790 | ||
3850 | The Entry - Repetitive Entrance: 2782 | 3849 | The Entry - Repetitive Entrance: 2782 |
3851 | The Repetitive - Plaza Entrance: 2783 | 3850 | The Repetitive - Plaza Entrance: 2783 |
diff --git a/data/maps/daedalus/doors.txtpb b/data/maps/daedalus/doors.txtpb index d6c33f4..ccbf3f0 100644 --- a/data/maps/daedalus/doors.txtpb +++ b/data/maps/daedalus/doors.txtpb | |||
@@ -2112,8 +2112,12 @@ doors { | |||
2112 | doors { | 2112 | doors { |
2113 | name: "C Keyholder Blocker" | 2113 | name: "C Keyholder Blocker" |
2114 | type: EVENT | 2114 | type: EVENT |
2115 | # Components/Doors/Unincorporated/temple_foyer_7 | 2115 | receivers: "Components/Doors/Unincorporated/temple_foyer_7" |
2116 | switches: "lavender_cubes" | 2116 | panels { |
2117 | map: "the_ancient" | ||
2118 | room: "Inside" | ||
2119 | name: "COLOR" | ||
2120 | } | ||
2117 | } | 2121 | } |
2118 | doors { | 2122 | doors { |
2119 | name: "Computer Room Back Door" | 2123 | name: "Computer Room Back Door" |
diff --git a/data/maps/the_ancient/doors.txtpb b/data/maps/the_ancient/doors.txtpb index 5dc062e..e550306 100644 --- a/data/maps/the_ancient/doors.txtpb +++ b/data/maps/the_ancient/doors.txtpb | |||
@@ -38,7 +38,8 @@ doors { | |||
38 | } | 38 | } |
39 | doors { | 39 | doors { |
40 | name: "Lavender Cubes" | 40 | name: "Lavender Cubes" |
41 | type: STANDARD | 41 | type: LOCATION_ONLY |
42 | panels { room: "Inside" name: "COLOR" } | 42 | panels { room: "Inside" name: "COLOR" } |
43 | location_room: "Inside" | 43 | location_room: "Inside" |
44 | location_name: "COLOR" | ||
44 | } | 45 | } |
diff --git a/data/maps/the_ancient/rooms/Inside.txtpb b/data/maps/the_ancient/rooms/Inside.txtpb index d6e8575..3723b2d 100644 --- a/data/maps/the_ancient/rooms/Inside.txtpb +++ b/data/maps/the_ancient/rooms/Inside.txtpb | |||
@@ -5,5 +5,4 @@ panels { | |||
5 | clue: "color" | 5 | clue: "color" |
6 | answer: "lavender" | 6 | answer: "lavender" |
7 | symbols: EXAMPLE | 7 | symbols: EXAMPLE |
8 | # TODO: how does this connect to the "lavender_cubes" switch? | ||
9 | } | 8 | } |
diff --git a/data/maps/the_congruent/doors.txtpb b/data/maps/the_congruent/doors.txtpb index 7c79c00..a714eba 100644 --- a/data/maps/the_congruent/doors.txtpb +++ b/data/maps/the_congruent/doors.txtpb | |||
@@ -119,7 +119,11 @@ doors { | |||
119 | } | 119 | } |
120 | doors { | 120 | doors { |
121 | name: "T Keyholder Blocker" | 121 | name: "T Keyholder Blocker" |
122 | type: ITEM_ONLY | 122 | type: EVENT |
123 | receivers: "Components/Doors/magenta_enterer3" | 123 | receivers: "Components/Doors/magenta_enterer3" |
124 | switches: "lavender_cubes" | 124 | panels { |
125 | map: "the_ancient" | ||
126 | room: "Inside" | ||
127 | name: "COLOR" | ||
128 | } | ||
125 | } | 129 | } |
diff --git a/data/maps/the_great/doors.txtpb b/data/maps/the_great/doors.txtpb index 0389a38..f0f2fde 100644 --- a/data/maps/the_great/doors.txtpb +++ b/data/maps/the_great/doors.txtpb | |||
@@ -471,9 +471,13 @@ doors { | |||
471 | } | 471 | } |
472 | doors { | 472 | doors { |
473 | name: "Lavender Cube" | 473 | name: "Lavender Cube" |
474 | type: ITEM_ONLY | 474 | type: EVENT |
475 | receivers: "Components/Doors/entry_28" | 475 | receivers: "Components/Doors/entry_28" |
476 | switches: "lavender_cubes" | 476 | panels { |
477 | map: "the_ancient" | ||
478 | room: "Inside" | ||
479 | name: "COLOR" | ||
480 | } | ||
477 | } | 481 | } |
478 | doors { | 482 | doors { |
479 | name: "Zero Entrance" | 483 | name: "Zero Entrance" |
diff --git a/data/maps/the_parthenon/doors.txtpb b/data/maps/the_parthenon/doors.txtpb index 5187aea..1161917 100644 --- a/data/maps/the_parthenon/doors.txtpb +++ b/data/maps/the_parthenon/doors.txtpb | |||
@@ -13,7 +13,12 @@ doors { | |||
13 | doors { | 13 | doors { |
14 | name: "Lavender Cubes" | 14 | name: "Lavender Cubes" |
15 | type: EVENT | 15 | type: EVENT |
16 | switches: "lavender_cubes" | 16 | receivers: "Components/Doors/entry_3" |
17 | panels { | ||
18 | map: "the_ancient" | ||
19 | room: "Inside" | ||
20 | name: "COLOR" | ||
21 | } | ||
17 | } | 22 | } |
18 | doors { | 23 | doors { |
19 | name: "K2 Door" | 24 | name: "K2 Door" |
diff --git a/proto/data.proto b/proto/data.proto index 24b98fe..014cbeb 100644 --- a/proto/data.proto +++ b/proto/data.proto | |||
@@ -44,6 +44,9 @@ enum DoorGroupType { | |||
44 | 44 | ||
45 | // Groups with this type become an item if cyan door behavior is set to item. | 45 | // Groups with this type become an item if cyan door behavior is set to item. |
46 | CYAN_DOORS = 3; | 46 | CYAN_DOORS = 3; |
47 | |||
48 | // Groups with this type always become an item if door shuffle is on. | ||
49 | SHUFFLE_GROUP = 4; | ||
47 | } | 50 | } |
48 | 51 | ||
49 | enum AxisDirection { | 52 | enum AxisDirection { |
@@ -119,7 +122,6 @@ message Door { | |||
119 | optional uint64 complete_at = 12; | 122 | optional uint64 complete_at = 12; |
120 | 123 | ||
121 | optional string control_center_color = 6; | 124 | optional string control_center_color = 6; |
122 | repeated string switches = 7; | ||
123 | repeated KeyholderAnswer keyholders = 13; | 125 | repeated KeyholderAnswer keyholders = 13; |
124 | repeated uint64 rooms = 14; | 126 | repeated uint64 rooms = 14; |
125 | repeated uint64 doors = 15; | 127 | repeated uint64 doors = 15; |
diff --git a/proto/human.proto b/proto/human.proto index 89fd076..d48f687 100644 --- a/proto/human.proto +++ b/proto/human.proto | |||
@@ -86,7 +86,6 @@ message HumanDoor { | |||
86 | optional uint64 complete_at = 9; | 86 | optional uint64 complete_at = 9; |
87 | 87 | ||
88 | optional string control_center_color = 6; | 88 | optional string control_center_color = 6; |
89 | repeated string switches = 7; | ||
90 | repeated KeyholderIdentifier keyholders = 10; | 89 | repeated KeyholderIdentifier keyholders = 10; |
91 | repeated RoomIdentifier rooms = 11; | 90 | repeated RoomIdentifier rooms = 11; |
92 | repeated DoorIdentifier doors = 12; | 91 | repeated DoorIdentifier doors = 12; |
diff --git a/tools/datapacker/main.cpp b/tools/datapacker/main.cpp index c72462d..c640de6 100644 --- a/tools/datapacker/main.cpp +++ b/tools/datapacker/main.cpp | |||
@@ -344,9 +344,6 @@ class DataPacker { | |||
344 | std::copy( | 344 | std::copy( |
345 | h_door.receivers().begin(), h_door.receivers().end(), | 345 | h_door.receivers().begin(), h_door.receivers().end(), |
346 | google::protobuf::RepeatedFieldBackInserter(door.mutable_receivers())); | 346 | google::protobuf::RepeatedFieldBackInserter(door.mutable_receivers())); |
347 | std::copy( | ||
348 | h_door.switches().begin(), h_door.switches().end(), | ||
349 | google::protobuf::RepeatedFieldBackInserter(door.mutable_switches())); | ||
350 | 347 | ||
351 | for (const PaintingIdentifier& pi : h_door.move_paintings()) { | 348 | for (const PaintingIdentifier& pi : h_door.move_paintings()) { |
352 | std::optional<std::string> map_name = | 349 | std::optional<std::string> map_name = |