about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--apworld/player_logic.py3
-rw-r--r--data/door_groups.txtpb20
-rw-r--r--data/ids.yaml3
-rw-r--r--data/maps/daedalus/doors.txtpb8
-rw-r--r--data/maps/the_ancient/doors.txtpb3
-rw-r--r--data/maps/the_ancient/rooms/Inside.txtpb1
-rw-r--r--data/maps/the_congruent/doors.txtpb8
-rw-r--r--data/maps/the_great/doors.txtpb8
-rw-r--r--data/maps/the_parthenon/doors.txtpb7
-rw-r--r--proto/data.proto4
-rw-r--r--proto/human.proto1
-rw-r--r--tools/datapacker/main.cpp3
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}
141door_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 {
2112doors { 2112doors {
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}
2118doors { 2122doors {
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}
39doors { 39doors {
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}
120doors { 120doors {
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}
472doors { 472doors {
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}
478doors { 482doors {
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 {
13doors { 13doors {
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}
18doors { 23doors {
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
49enum AxisDirection { 52enum 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 =