about summary refs log tree commit diff stats
path: root/proto
diff options
context:
space:
mode:
Diffstat (limited to 'proto')
-rw-r--r--proto/data.proto36
-rw-r--r--proto/human.proto25
2 files changed, 59 insertions, 2 deletions
diff --git a/proto/data.proto b/proto/data.proto index 855c28c..7a1918a 100644 --- a/proto/data.proto +++ b/proto/data.proto
@@ -27,6 +27,29 @@ enum DoorType {
27 27
28 // This door is an item if gravestone shuffle is enabled, and is a location as long as panelsanity is not on. 28 // This door is an item if gravestone shuffle is enabled, and is a location as long as panelsanity is not on.
29 GRAVESTONE = 6; 29 GRAVESTONE = 6;
30
31 // This door is never a location, and is an item as long as gallery painting shuffle is on.
32 GALLERY_PAINTING = 7;
33}
34
35enum DoorGroupType {
36 DOOR_GROUP_TYPE_UNKNOWN = 0;
37
38 // These doors border a worldport. They should be grouped when connections are
39 // not shuffled.
40 CONNECTOR = 1;
41
42 // Similar to CONNECTOR, but these doors are also ordinarily opened by solving
43 // the COLOR panel in the Control Center. These should be grouped when
44 // connections are not shuffled, but are not items at all when control center
45 // colors are not shuffled.
46 COLOR_CONNECTOR = 2;
47
48 // Groups with this type become an item if cyan door behavior is set to item.
49 CYAN_DOORS = 3;
50
51 // Groups with this type always become an item if door shuffle is on.
52 SHUFFLE_GROUP = 4;
30} 53}
31 54
32enum AxisDirection { 55enum AxisDirection {
@@ -102,12 +125,12 @@ message Door {
102 optional uint64 complete_at = 12; 125 optional uint64 complete_at = 12;
103 126
104 optional string control_center_color = 6; 127 optional string control_center_color = 6;
105 repeated string switches = 7;
106 repeated KeyholderAnswer keyholders = 13; 128 repeated KeyholderAnswer keyholders = 13;
107 repeated uint64 rooms = 14; 129 repeated uint64 rooms = 14;
108 repeated uint64 doors = 15; 130 repeated uint64 doors = 15;
109 repeated uint64 endings = 16; 131 repeated uint64 endings = 16;
110 optional bool double_letters = 18; 132 optional bool double_letters = 18;
133 repeated string senders = 19;
111 134
112 optional DoorType type = 8; 135 optional DoorType type = 8;
113 136
@@ -232,7 +255,17 @@ message Progressive {
232 repeated uint64 doors = 4; 255 repeated uint64 doors = 4;
233} 256}
234 257
258message DoorGroup {
259 optional uint64 id = 1;
260 optional string name = 2;
261 optional uint64 ap_id = 3;
262 optional DoorGroupType type = 4;
263 repeated uint64 doors = 5;
264}
265
235message AllObjects { 266message AllObjects {
267 optional uint64 version = 15;
268
236 repeated Map maps = 7; 269 repeated Map maps = 7;
237 repeated Room rooms = 1; 270 repeated Room rooms = 1;
238 repeated Door doors = 2; 271 repeated Door doors = 2;
@@ -245,5 +278,6 @@ message AllObjects {
245 repeated Ending endings = 12; 278 repeated Ending endings = 12;
246 repeated Connection connections = 6; 279 repeated Connection connections = 6;
247 repeated Progressive progressives = 13; 280 repeated Progressive progressives = 13;
281 repeated DoorGroup door_groups = 14;
248 map<string, uint64> special_ids = 8; 282 map<string, uint64> special_ids = 8;
249} 283}
diff --git a/proto/human.proto b/proto/human.proto index 205b867..f9517bd 100644 --- a/proto/human.proto +++ b/proto/human.proto
@@ -66,6 +66,10 @@ message HumanConnection {
66 // If true, this connection will only be logically allowed if the Daedalus 66 // If true, this connection will only be logically allowed if the Daedalus
67 // Roof Access option is enabled. 67 // Roof Access option is enabled.
68 optional bool roof_access = 7; 68 optional bool roof_access = 7;
69
70 // This means that the connection intentionally skips the target object's
71 // required door.
72 optional bool bypass_target_door = 8;
69} 73}
70 74
71message HumanConnections { 75message HumanConnections {
@@ -86,13 +90,16 @@ message HumanDoor {
86 optional uint64 complete_at = 9; 90 optional uint64 complete_at = 9;
87 91
88 optional string control_center_color = 6; 92 optional string control_center_color = 6;
89 repeated string switches = 7;
90 repeated KeyholderIdentifier keyholders = 10; 93 repeated KeyholderIdentifier keyholders = 10;
91 repeated RoomIdentifier rooms = 11; 94 repeated RoomIdentifier rooms = 11;
92 repeated DoorIdentifier doors = 12; 95 repeated DoorIdentifier doors = 12;
93 repeated string endings = 13; 96 repeated string endings = 13;
94 optional bool double_letters = 15; 97 optional bool double_letters = 15;
95 98
99 // Sender nodes to be added to the list of requirements for triggering the
100 // location. Only for senders that have no logic requirements.
101 repeated string senders = 16;
102
96 optional DoorType type = 4; 103 optional DoorType type = 4;
97 optional string location_room = 5; 104 optional string location_room = 5;
98 optional string location_name = 14; 105 optional string location_name = 14;
@@ -203,6 +210,21 @@ message HumanProgressives {
203 repeated HumanProgressive progressives = 1; 210 repeated HumanProgressive progressives = 1;
204} 211}
205 212
213message HumanDoorGroup {
214 optional string name = 1;
215 optional DoorGroupType type = 2;
216 repeated DoorIdentifier doors = 3;
217}
218
219message HumanDoorGroups {
220 repeated HumanDoorGroup door_groups = 1;
221}
222
223message HumanGlobalMetadata {
224 repeated string special_names = 1;
225 optional uint64 version = 2;
226}
227
206message IdMappings { 228message IdMappings {
207 message RoomIds { 229 message RoomIds {
208 map<string, uint64> panels = 1; 230 map<string, uint64> panels = 1;
@@ -220,4 +242,5 @@ message IdMappings {
220 map<string, uint64> letters = 3; 242 map<string, uint64> letters = 3;
221 map<string, uint64> endings = 4; 243 map<string, uint64> endings = 4;
222 map<string, uint64> progressives = 5; 244 map<string, uint64> progressives = 5;
245 map<string, uint64> door_groups = 6;
223} 246}