blob: 335251850338a2f8c9b60c076ee8cc4c60434425 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
edition = "2023";
import "common.proto";
package com.fourisland.lingo2_archipelago;
message RoomIdentifier {
string map = 1;
string name = 2;
}
message DoorIdentifier {
string map = 1;
string name = 2;
}
message PortIdentifier {
string map = 1;
string room = 2;
string name = 3;
}
message PaintingIdentifier {
string map = 1;
string room = 2;
string name = 3;
}
message PanelIdentifier {
string map = 1;
string room = 2;
string name = 3;
string answer = 4;
}
message HumanConnection {
message Endpoint {
oneof endpoint {
RoomIdentifier room = 1;
PortIdentifier port = 2;
PaintingIdentifier painting = 3;
PanelIdentifier panel = 4;
}
}
oneof From {
Endpoint from = 1;
string from_room = 5;
}
oneof To {
Endpoint to = 2;
string to_room = 6;
}
bool oneway = 3;
DoorIdentifier door = 4;
}
message HumanConnections {
repeated HumanConnection connections = 1;
}
message HumanDoor {
string name = 1;
repeated string receivers = 2;
repeated PaintingIdentifier move_paintings = 8;
// The set of panels that must be solved to open this door.
repeated PanelIdentifier panels = 3;
// If set, the number of panels from the above set that need to be solved.
// Warning: this is a messy kind of OR logic! Consider if there's another way.
uint64 complete_at = 9;
string control_center_color = 6;
repeated string switches = 7;
DoorType type = 4;
string location_room = 5;
}
message HumanDoors {
repeated HumanDoor doors = 1;
}
message HumanPanel {
string name = 1;
string path = 5;
string clue = 2;
string answer = 3;
repeated string symbols = 4;
repeated Proxy proxies = 6;
DoorIdentifier required_door = 7;
}
message HumanPainting {
string name = 1;
string path = 2;
string display_name = 4;
string orientation = 3;
bool move = 6;
bool enter_only = 7;
bool flipped = 8;
DoorIdentifier required_door = 5;
}
message HumanPort {
string name = 1;
string path = 2;
string orientation = 3;
DoorIdentifier required_door = 4;
}
message HumanKeyholder {
string name = 1;
string path = 2;
}
message HumanRoom {
string name = 1;
string display_name = 2;
repeated HumanPanel panels = 3;
repeated HumanPainting paintings = 4;
repeated Letter letters = 5;
repeated HumanPort ports = 6;
repeated HumanKeyholder keyholders = 7;
}
message IdMappings {
message RoomIds {
map<string, uint64> panels = 1;
}
message MapIds {
map<string, uint64> doors = 1;
map<string, RoomIds> rooms = 2;
}
map<string, MapIds> maps = 1;
map<string, uint64> special = 2;
}
|