about summary refs log tree commit diff stats
path: root/data/maps/the_partial/rooms/Obverse Side.txtpb
blob: 0d83c34d6b6d6fa53a88cfd359acab5bbad4bb04 (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
name: "Obverse Side"
display_name: "Partial"
panels {
  name: "PUN"
  path: "Panels/Main/panel_1"
  clue: "pun"
  answer: "run"
  symbols: SPARKLES
}
panels {
  name: "UP"
  path: "Panels/Main/panel_3"
  clue: "up"
  answer: "or"
  symbols: SPARKLES
}
panels {
  name: "PUT"
  path: "Panels/Main/panel_5"
  clue: "put"
  answer: "rot"
  symbols: SPARKLES
}
panels {
  name: "PUNT"
  path: "Panels/Main/panel_8"
  clue: "punt"
  answer: "runt"
  symbols: SPARKLES
}
panels {
  name: "FIGHT"
  path: "Panels/Main/panel_9"
  clue: "fight"
  answer: "right"
  symbols: SPARKLES
}
panels {
  name: "LINT"
  path: "Panels/Side 1/panel_2"
  clue: "lint"
  answer: "hint"
  symbols: SPARKLES
}
panels {
  name: "TURN"
  path: "Panels/Side 1/panel_4"
  clue: "turn"
  answer: "torn"
  symbols: SPARKLES
}
panels {
  name: "HOT"
  path: "Panels/Side 1/panel_6"
  clue: "hot"
  answer: "hut"
  symbols: SPARKLES
}
panels {
  name: "OUT"
  path: "Panels/Side 1/panel_8"
  clue: "out"
  answer: "cut"
  symbols: SPARKLES
}
panels {
  name: "TON"
  path: "Panels/Side 1/panel_9"
  clue: "ton"
  answer: "ion"
  symbols: SPARKLES
}
panels {
  name: "HUT"
  path: "Panels/Side 1/panel_10"
  clue: "hut"
  answer: "hot"
  symbols: SPARKLES
}
panels {
  name: "ION"
  path: "Panels/Side 1/panel_11"
  clue: "ion"
  answer: "ton"
  symbols: SPARKLES
}
panels {
  name: "CUT"
  path: "Panels/Side 1/panel_12"
  clue: "cut"
  answer: "out"
  symbols: SPARKLES
}
panels {
  name: "FUN"
  path: "Panels/Side 1/panel_7"
  clue: "fun"
  answer: "run"
  symbols: SPARKLES
}
ports {
  name: "GREAT"
  path: "Components/Warps/worldport"
  orientation: "west"
}
keyholders {
  # This is one of the ones that's misnamed within the game.
  name: "L"
  path: "Components/KeyHolders/keyHolderI"
}
paintings {
  name: "F"
  path: "Components/Paintings/f"
  orientation: "south"
  exit_only: true
}
paintings {
  name: "P"
  path: "Components/Paintings/p"
  orientation: "south"
  exit_only: true
}
Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
syntax = "proto2";

package com.fourisland.lingo2_archipelago;

message Proxy {
  optional string answer = 1;
  optional string path = 2;
}

enum DoorType {
  DOOR_TYPE_UNKNOWN = 0;

  // This door is a location unless panelsanity is on, and it is an item as long as door shuffle is on.
  STANDARD = 1;

  // This door is never an item or a location.
  EVENT = 2;

  // This door is never a location, and is an item as long as door shuffle is on.
  ITEM_ONLY = 3;

  // This door is never a location, and is an item as long as control center color shuffle is on.
  CONTROL_CENTER_COLOR = 4;

  // This door is never an item, and is a location as long as panelsanity is not on.
  LOCATION_ONLY = 5;

  // This door is an item if gravestone shuffle is enabled, and is a location as long as panelsanity is not on.
  GRAVESTONE = 6;
}

enum DoorGroupType {
  DOOR_GROUP_TYPE_UNKNOWN = 0;

  // These doors border a worldport. They should be grouped when connections are
  // not shuffled.
  CONNECTOR = 1;

  // Similar to CONNECTOR, but these doors are also ordinarily opened by solving
  // the COLOR panel in the Control Center. These should be grouped when
  // connections are not shuffled, but are not items at all when control center
  // colors are not shuffled.
  COLOR_CONNECTOR = 2;

  // Groups with this type become an item if cyan door behavior is set to item.
  CYAN_DOORS = 3;

  // Groups with this type always become an item if door shuffle is on.
  SHUFFLE_GROUP = 4;
}

enum AxisDirection {
  AXIS_DIRECTION_UNKNOWN = 0;

  X_PLUS = 1;
  X_MINUS = 2;
  Y_PLUS = 3;
  Y_MINUS = 4;
  Z_PLUS = 5;
  Z_MINUS = 6;
}

enum PuzzleSymbol {
  PUZZLE_SYMBOL_UNKNOWN = 0;

  SUN = 1;
  SPARKLES = 2;
  ZERO = 3;
  EXAMPLE = 4;
  BOXES = 5;
  PLANET = 6;
  PYRAMID = 7;
  CROSS = 8;
  SWEET = 9;
  GENDER = 10;
  AGE = 11;
  SOUND = 12;
  ANAGRAM = 13;
  JOB = 14;
  STARS = 15;
  NULL = 16;
  EVAL = 17;
  LINGO = 18;
  QUESTION = 19;
}

message ProxyIdentifier {
  optional uint64 panel = 1;
  optional string answer = 2;
}

message KeyholderAnswer {
  optional uint64 keyholder = 1;
  optional string key = 2;
}

message Connection {
  optional uint64 from_room = 1;
  optional uint64 to_room = 2;
  optional uint64 required_door = 3;

  oneof trigger {
    uint64 port = 4;
    uint64 painting = 5;
    ProxyIdentifier panel = 6;
  }

  optional bool roof_access = 7;
}

message Door {
  optional uint64 id = 1;
  optional uint64 ap_id = 11;
  optional uint64 map_id = 9;
  optional uint64 room_id = 10;
  optional string name = 2;

  repeated string receivers = 3;
  repeated uint64 move_paintings = 4;

  repeated ProxyIdentifier panels = 5;
  optional uint64 complete_at = 12;

  optional string control_center_color = 6;
  repeated KeyholderAnswer keyholders = 13;
  repeated uint64 rooms = 14;
  repeated uint64 doors = 15;
  repeated uint64 endings = 16;
  optional bool double_letters = 18;

  optional DoorType type = 8;

  optional string location_name = 17;
}

message PanelData {
  optional uint64 id = 1;
  optional uint64 ap_id = 10;
  optional uint64 room_id = 2;
  optional string name = 3;

  optional string path = 4;
  optional string clue = 5;
  optional string answer = 6;
  repeated PuzzleSymbol symbols = 7;

  repeated Proxy proxies = 8;

  optional uint64 required_door = 9;
  optional uint64 required_room = 11;

  optional string display_name = 12;
}

message PaintingData {
  optional uint64 id = 1;
  optional uint64 room_id = 2;
  optional string name = 9;

  optional string path = 10;
  optional string display_name = 4;

  optional string orientation = 3;
  optional bool move = 6;
  optional bool enter_only = 7;
  optional AxisDirection gravity = 8;
  optional bool exit_only = 11;
  
  optional uint64 required_door = 5;
}

message Port {
  optional uint64 id = 1;
  optional uint64 room_id = 2;
  optional string name = 3;

  optional string path = 4;
  optional string orientation = 5;
  optional AxisDirection gravity = 7;

  optional uint64 required_door = 6;
}

message KeyholderData {
  optional uint64 id = 1;
  optional uint64 ap_id = 6;
  optional uint64 room_id = 2;

  optional string name = 3;
  optional string path = 4;
  optional string key = 5;
}

message Letter {
  optional uint64 id = 3;
  optional uint64 ap_id = 5;
  optional uint64 room_id = 4;

  optional string key = 1;
  optional bool level2 = 2;

  optional string path = 6;
}

message Mastery {
  optional uint64 id = 1;
  optional uint64 ap_id = 2;
  optional uint64 room_id = 3;

  optional string name = 4;
  optional string path = 5;
}

message Ending {
  optional uint64 id = 1;
  optional uint64 ap_id = 2;
  optional uint64 room_id = 3;

  optional string name = 4;

  optional string path = 5;
}

message Room {
  optional uint64 id = 1;
  optional uint64 map_id = 8;
  optional string name = 2;
  optional string display_name = 3;
  optional string panel_display_name = 13;

  repeated uint64 panels = 4;
  repeated uint64 paintings = 5;
  repeated uint64 letters = 6;
  repeated uint64 ports = 7;
  repeated uint64 doors = 9;
  repeated uint64 masteries = 10;
  repeated uint64 keyholders = 11;
  repeated uint64 endings = 12;
}

message Map {
  optional uint64 id = 1;
  optional string name = 2;
  optional string display_name = 3;
}

message Progressive {
  optional uint64 id = 1;
  optional string name = 2;
  optional uint64 ap_id = 3;
  repeated uint64 doors = 4;
}

message DoorGroup {
  optional uint64 id = 1;
  optional string name = 2;
  optional uint64 ap_id = 3;
  optional DoorGroupType type = 4;
  repeated uint64 doors = 5;
}

message AllObjects {
  optional uint64 version = 15;

  repeated Map maps = 7;
  repeated Room rooms = 1;
  repeated Door doors = 2;
  repeated PanelData panels = 3;
  repeated PaintingData paintings = 4;
  repeated Port ports = 5;
  repeated KeyholderData keyholders = 11;
  repeated Letter letters = 9;
  repeated Mastery masteries = 10;
  repeated Ending endings = 12;
  repeated Connection connections = 6;
  repeated Progressive progressives = 13;
  repeated DoorGroup door_groups = 14;
  map<string, uint64> special_ids = 8;
}