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.proto76
1 files changed, 74 insertions, 2 deletions
diff --git a/proto/human.proto b/proto/human.proto index e0021c2..8e7767a 100644 --- a/proto/human.proto +++ b/proto/human.proto
@@ -62,6 +62,25 @@ 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;
73
74 // This means that the connection should additionally require all purple
75 // letters when the Strict Purple Ending option is on.
76 optional bool purple_ending = 9;
77
78 // This means that the connection should additionally require all cyan letters
79 // when the Strict Cyan Ending option is on.
80 optional bool cyan_ending = 10;
81
82 // This means that the connection only exists when doors are not shuffled.
83 optional bool vanilla_only = 11;
65} 84}
66 85
67message HumanConnections { 86message HumanConnections {
@@ -82,13 +101,19 @@ message HumanDoor {
82 optional uint64 complete_at = 9; 101 optional uint64 complete_at = 9;
83 102
84 optional string control_center_color = 6; 103 optional string control_center_color = 6;
85 repeated string switches = 7;
86 repeated KeyholderIdentifier keyholders = 10; 104 repeated KeyholderIdentifier keyholders = 10;
87 repeated RoomIdentifier rooms = 11; 105 repeated RoomIdentifier rooms = 11;
88 repeated DoorIdentifier doors = 12; 106 repeated DoorIdentifier doors = 12;
107 repeated string endings = 13;
108 optional bool double_letters = 15;
109
110 // Sender nodes to be added to the list of requirements for triggering the
111 // location. Only for senders that have no logic requirements.
112 repeated string senders = 16;
89 113
90 optional DoorType type = 4; 114 optional DoorType type = 4;
91 optional string location_room = 5; 115 optional string location_room = 5;
116 optional string location_name = 14;
92} 117}
93 118
94message HumanDoors { 119message HumanDoors {
@@ -107,6 +132,8 @@ message HumanPanel {
107 132
108 optional DoorIdentifier required_door = 7; 133 optional DoorIdentifier required_door = 7;
109 optional RoomIdentifier required_room = 8; 134 optional RoomIdentifier required_room = 8;
135
136 optional string display_name = 9;
110} 137}
111 138
112message HumanPainting { 139message HumanPainting {
@@ -126,9 +153,16 @@ message HumanPainting {
126 153
127message HumanPort { 154message HumanPort {
128 optional string name = 1; 155 optional string name = 1;
156 optional string display_name = 8;
129 optional string path = 2; 157 optional string path = 2;
130 158
131 optional string orientation = 3; 159 optional bool no_shuffle = 7;
160
161 // These specify how the player should be placed when a randomized entrance
162 // sends them to this port. "rotation" is in degrees and is counter-clockwise
163 // from the positive X axis.
164 optional Vec3d destination = 3;
165 optional double rotation = 6;
132 optional AxisDirection gravity = 5 [default = Y_MINUS]; 166 optional AxisDirection gravity = 5 [default = Y_MINUS];
133 167
134 optional DoorIdentifier required_door = 4; 168 optional DoorIdentifier required_door = 4;
@@ -137,6 +171,13 @@ message HumanPort {
137message HumanKeyholder { 171message HumanKeyholder {
138 optional string name = 1; 172 optional string name = 1;
139 optional string path = 2; 173 optional string path = 2;
174
175 // If this is set, the keyholder will become a location when keyholder shuffle
176 // is enabled. This value specifies the key that is required to clear the
177 // location. It should be the same as the key needed for Green Ending. The
178 // only cases when this shouldn't be set is the two disappearing keyholders in
179 // The Congruent.
180 optional string key = 3;
140} 181}
141 182
142message HumanLetter { 183message HumanLetter {
@@ -160,6 +201,10 @@ message HumanRoom {
160 optional string name = 1; 201 optional string name = 1;
161 optional string display_name = 2; 202 optional string display_name = 2;
162 203
204 // This is used in panelsanity location names and location names for STANDARD
205 // doors generated from panels in the same area.
206 optional string panel_display_name = 10;
207
163 repeated HumanPanel panels = 3; 208 repeated HumanPanel panels = 3;
164 repeated HumanPainting paintings = 4; 209 repeated HumanPainting paintings = 4;
165 repeated HumanLetter letters = 5; 210 repeated HumanLetter letters = 5;
@@ -174,10 +219,35 @@ message HumanMap {
174 repeated string excluded_nodes = 2; 219 repeated string excluded_nodes = 2;
175} 220}
176 221
222message HumanProgressive {
223 optional string name = 1;
224 repeated DoorIdentifier doors = 2;
225}
226
227message HumanProgressives {
228 repeated HumanProgressive progressives = 1;
229}
230
231message HumanDoorGroup {
232 optional string name = 1;
233 optional DoorGroupType type = 2;
234 repeated DoorIdentifier doors = 3;
235}
236
237message HumanDoorGroups {
238 repeated HumanDoorGroup door_groups = 1;
239}
240
241message HumanGlobalMetadata {
242 repeated string special_names = 1;
243 optional VersionNumber version = 2;
244}
245
177message IdMappings { 246message IdMappings {
178 message RoomIds { 247 message RoomIds {
179 map<string, uint64> panels = 1; 248 map<string, uint64> panels = 1;
180 map<string, uint64> masteries = 2; 249 map<string, uint64> masteries = 2;
250 map<string, uint64> keyholders = 3;
181 } 251 }
182 252
183 message MapIds { 253 message MapIds {
@@ -189,4 +259,6 @@ message IdMappings {
189 map<string, uint64> special = 2; 259 map<string, uint64> special = 2;
190 map<string, uint64> letters = 3; 260 map<string, uint64> letters = 3;
191 map<string, uint64> endings = 4; 261 map<string, uint64> endings = 4;
262 map<string, uint64> progressives = 5;
263 map<string, uint64> door_groups = 6;
192} 264}