about summary refs log tree commit diff stats
path: root/proto/data.proto
diff options
context:
space:
mode:
Diffstat (limited to 'proto/data.proto')
-rw-r--r--proto/data.proto65
1 files changed, 60 insertions, 5 deletions
diff --git a/proto/data.proto b/proto/data.proto index d3933c4..64e3ddc 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 {
@@ -84,6 +107,10 @@ message Connection {
84 uint64 painting = 5; 107 uint64 painting = 5;
85 ProxyIdentifier panel = 6; 108 ProxyIdentifier panel = 6;
86 } 109 }
110
111 optional bool roof_access = 7;
112 optional bool purple_ending = 8;
113 optional bool cyan_ending = 9;
87} 114}
88 115
89message Door { 116message Door {
@@ -100,12 +127,16 @@ message Door {
100 optional uint64 complete_at = 12; 127 optional uint64 complete_at = 12;
101 128
102 optional string control_center_color = 6; 129 optional string control_center_color = 6;
103 repeated string switches = 7;
104 repeated KeyholderAnswer keyholders = 13; 130 repeated KeyholderAnswer keyholders = 13;
105 repeated uint64 rooms = 14; 131 repeated uint64 rooms = 14;
106 repeated uint64 doors = 15; 132 repeated uint64 doors = 15;
133 repeated uint64 endings = 16;
134 optional bool double_letters = 18;
135 repeated string senders = 19;
107 136
108 optional DoorType type = 8; 137 optional DoorType type = 8;
138
139 optional string location_name = 17;
109} 140}
110 141
111message PanelData { 142message PanelData {
@@ -123,9 +154,11 @@ message PanelData {
123 154
124 optional uint64 required_door = 9; 155 optional uint64 required_door = 9;
125 optional uint64 required_room = 11; 156 optional uint64 required_room = 11;
157
158 optional string display_name = 12;
126} 159}
127 160
128message Painting { 161message PaintingData {
129 optional uint64 id = 1; 162 optional uint64 id = 1;
130 optional uint64 room_id = 2; 163 optional uint64 room_id = 2;
131 optional string name = 9; 164 optional string name = 9;
@@ -154,12 +187,14 @@ message Port {
154 optional uint64 required_door = 6; 187 optional uint64 required_door = 6;
155} 188}
156 189
157message Keyholder { 190message KeyholderData {
158 optional uint64 id = 1; 191 optional uint64 id = 1;
192 optional uint64 ap_id = 6;
159 optional uint64 room_id = 2; 193 optional uint64 room_id = 2;
160 194
161 optional string name = 3; 195 optional string name = 3;
162 optional string path = 4; 196 optional string path = 4;
197 optional string key = 5;
163} 198}
164 199
165message Letter { 200message Letter {
@@ -197,6 +232,7 @@ message Room {
197 optional uint64 map_id = 8; 232 optional uint64 map_id = 8;
198 optional string name = 2; 233 optional string name = 2;
199 optional string display_name = 3; 234 optional string display_name = 3;
235 optional string panel_display_name = 13;
200 236
201 repeated uint64 panels = 4; 237 repeated uint64 panels = 4;
202 repeated uint64 paintings = 5; 238 repeated uint64 paintings = 5;
@@ -214,17 +250,36 @@ message Map {
214 optional string display_name = 3; 250 optional string display_name = 3;
215} 251}
216 252
253message Progressive {
254 optional uint64 id = 1;
255 optional string name = 2;
256 optional uint64 ap_id = 3;
257 repeated uint64 doors = 4;
258}
259
260message DoorGroup {
261 optional uint64 id = 1;
262 optional string name = 2;
263 optional uint64 ap_id = 3;
264 optional DoorGroupType type = 4;
265 repeated uint64 doors = 5;
266}
267
217message AllObjects { 268message AllObjects {
269 optional uint64 version = 15;
270
218 repeated Map maps = 7; 271 repeated Map maps = 7;
219 repeated Room rooms = 1; 272 repeated Room rooms = 1;
220 repeated Door doors = 2; 273 repeated Door doors = 2;
221 repeated PanelData panels = 3; 274 repeated PanelData panels = 3;
222 repeated Painting paintings = 4; 275 repeated PaintingData paintings = 4;
223 repeated Port ports = 5; 276 repeated Port ports = 5;
224 repeated Keyholder keyholders = 11; 277 repeated KeyholderData keyholders = 11;
225 repeated Letter letters = 9; 278 repeated Letter letters = 9;
226 repeated Mastery masteries = 10; 279 repeated Mastery masteries = 10;
227 repeated Ending endings = 12; 280 repeated Ending endings = 12;
228 repeated Connection connections = 6; 281 repeated Connection connections = 6;
282 repeated Progressive progressives = 13;
283 repeated DoorGroup door_groups = 14;
229 map<string, uint64> special_ids = 8; 284 map<string, uint64> special_ids = 8;
230} 285}