name: "Orange Room"
panels {
name: "YOUNG"
path: "Panels/Prequel/panel_8"
clue: "young"
answer: "oedition = "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 KeyholderIdentifier {
string map = 1;
string room = 2;
string name = 3;
string key = 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;
repeated KeyholderIdentifier keyholders = 10;
repeated RoomIdentifier rooms = 11;
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;
RoomIdentifier required_room = 8;
}
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;
bool exit_only = 9;
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 HumanLetter {
string key = 1;
bool double = 2;
string path = 3;
}
message HumanMastery {
string name = 1;
string path = 2;
}
message HumanRoom {
string name = 1;
string display_name = 2;
repeated HumanPanel panels = 3;
repeated HumanPainting paintings = 4;
repeated HumanLetter letters = 5;
repeated HumanPort ports = 6;
repeated HumanKeyholder keyholders = 7;
repeated HumanMastery masteries = 8;
}
message IdMappings {
message RoomIds {
map<string, uint64> panels = 1;
map<string, uint64> masteries = 2;
}
message MapIds {
map<string, uint64> doors = 1;
map<string, RoomIds> rooms = 2;
}
map<string, MapIds> maps = 1;
map<string, uint64> special = 2;
map<string, uint64> letters = 3;
}