about summary refs log tree commit diff stats
path: root/proto/human.proto
diff options
context:
space:
mode:
Diffstat (limited to 'proto/human.proto')
-rw-r--r--proto/human.proto66
1 files changed, 64 insertions, 2 deletions
diff --git a/proto/human.proto b/proto/human.proto index 64231a2..615ac86 100644 --- a/proto/human.proto +++ b/proto/human.proto
@@ -62,6 +62,14 @@ message HumanConnection {
62 62
63 optional bool oneway = 3; 63 optional bool oneway = 3;
64 optional DoorIdentifier door = 4; 64 optional DoorIdentifier door = 4;
65
66 // If true, this connection will only be logically allowed if the Daedalus
67 // Roof Access option is enabled.
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;
65} 73}
66 74
67message HumanConnections { 75message HumanConnections {
@@ -82,13 +90,15 @@ message HumanDoor {
82 optional uint64 complete_at = 9; 90 optional uint64 complete_at = 9;
83 91
84 optional string control_center_color = 6; 92 optional string control_center_color = 6;
85 repeated string switches = 7;
86 repeated KeyholderIdentifier keyholders = 10; 93 repeated KeyholderIdentifier keyholders = 10;
87 repeated RoomIdentifier rooms = 11; 94 repeated RoomIdentifier rooms = 11;
88 repeated DoorIdentifier doors = 12; 95 repeated DoorIdentifier doors = 12;
96 repeated string endings = 13;
97 optional bool double_letters = 15;
89 98
90 optional DoorType type = 4; 99 optional DoorType type = 4;
91 optional string location_room = 5; 100 optional string location_room = 5;
101 optional string location_name = 14;
92} 102}
93 103
94message HumanDoors { 104message HumanDoors {
@@ -101,12 +111,14 @@ message HumanPanel {
101 111
102 optional string clue = 2; 112 optional string clue = 2;
103 optional string answer = 3; 113 optional string answer = 3;
104 repeated string symbols = 4; 114 repeated PuzzleSymbol symbols = 4;
105 115
106 repeated Proxy proxies = 6; 116 repeated Proxy proxies = 6;
107 117
108 optional DoorIdentifier required_door = 7; 118 optional DoorIdentifier required_door = 7;
109 optional RoomIdentifier required_room = 8; 119 optional RoomIdentifier required_room = 8;
120
121 optional string display_name = 9;
110} 122}
111 123
112message HumanPainting { 124message HumanPainting {
@@ -137,6 +149,13 @@ message HumanPort {
137message HumanKeyholder { 149message HumanKeyholder {
138 optional string name = 1; 150 optional string name = 1;
139 optional string path = 2; 151 optional string path = 2;
152
153 // If this is set, the keyholder will become a location when keyholder shuffle
154 // is enabled. This value specifies the key that is required to clear the
155 // location. It should be the same as the key needed for Green Ending. The
156 // only cases when this shouldn't be set is the two disappearing keyholders in
157 // The Congruent.
158 optional string key = 3;
140} 159}
141 160
142message HumanLetter { 161message HumanLetter {
@@ -151,22 +170,62 @@ message HumanMastery {
151 optional string path = 2; 170 optional string path = 2;
152} 171}
153 172
173message HumanEnding {
174 optional string name = 1;
175 optional string path = 2;
176}
177
154message HumanRoom { 178message HumanRoom {
155 optional string name = 1; 179 optional string name = 1;
156 optional string display_name = 2; 180 optional string display_name = 2;
157 181
182 // This is used in panelsanity location names and location names for STANDARD
183 // doors generated from panels in the same area.
184 optional string panel_display_name = 10;
185
158 repeated HumanPanel panels = 3; 186 repeated HumanPanel panels = 3;
159 repeated HumanPainting paintings = 4; 187 repeated HumanPainting paintings = 4;
160 repeated HumanLetter letters = 5; 188 repeated HumanLetter letters = 5;
161 repeated HumanPort ports = 6; 189 repeated HumanPort ports = 6;
162 repeated HumanKeyholder keyholders = 7; 190 repeated HumanKeyholder keyholders = 7;
163 repeated HumanMastery masteries = 8; 191 repeated HumanMastery masteries = 8;
192 repeated HumanEnding endings = 9;
193}
194
195message HumanMap {
196 optional string display_name = 1;
197 repeated string excluded_nodes = 2;
198}
199
200message HumanProgressive {
201 optional string name = 1;
202 repeated DoorIdentifier doors = 2;
203}
204
205message HumanProgressives {
206 repeated HumanProgressive progressives = 1;
207}
208
209message HumanDoorGroup {
210 optional string name = 1;
211 optional DoorGroupType type = 2;
212 repeated DoorIdentifier doors = 3;
213}
214
215message HumanDoorGroups {
216 repeated HumanDoorGroup door_groups = 1;
217}
218
219message HumanGlobalMetadata {
220 repeated string special_names = 1;
221 optional uint64 version = 2;
164} 222}
165 223
166message IdMappings { 224message IdMappings {
167 message RoomIds { 225 message RoomIds {
168 map<string, uint64> panels = 1; 226 map<string, uint64> panels = 1;
169 map<string, uint64> masteries = 2; 227 map<string, uint64> masteries = 2;
228 map<string, uint64> keyholders = 3;
170 } 229 }
171 230
172 message MapIds { 231 message MapIds {
@@ -177,4 +236,7 @@ message IdMappings {
177 map<string, MapIds> maps = 1; 236 map<string, MapIds> maps = 1;
178 map<string, uint64> special = 2; 237 map<string, uint64> special = 2;
179 map<string, uint64> letters = 3; 238 map<string, uint64> letters = 3;
239 map<string, uint64> endings = 4;
240 map<string, uint64> progressives = 5;
241 map<string, uint64> door_groups = 6;
180} 242}