about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* Created rudimentary message displayStar Rauchenberger2023-04-143-9/+103
| | | | | | It shows when the player sends a location or receives an item. Currently it just shows IDs instead of names. We need to download all data packages so that we can read the names. We are also currently queueing a message when we send a location, which isn't the best because if that location turns out to contain an item for us, we'll get two messages. It would be better to hold off until we receive a PrintJSON message describing the location that was sent out. We also now cache the ID of the most recently processed item, so that on relaunch we know which items are new and should be announced.
* Getting THE END marks you as completedStar Rauchenberger2023-04-142-0/+10
|
* Fixed doubling up of progressive items on relaunchStar Rauchenberger2023-04-141-1/+4
|
* Handle Progressive Orange TowerStar Rauchenberger2023-04-131-0/+12
|
* Save file name is now generated from AP dataStar Rauchenberger2023-04-132-0/+9
| | | | The name used on the new game screen no longer matters.
* The answer to the YOU puzzle is the AP slot nameStar Rauchenberger2023-04-131-1/+11
|
* Location checks are held while the map is loadingStar Rauchenberger2023-04-132-6/+19
| | | | The map load sends out a lot of checks at once if a file is being loaded, so we hold them until the map finishes loading and then send them out together.
* It WORKS!Star Rauchenberger2023-04-136-0/+176
| | | | You can send checks and receive door items!
* Client switches to LL1 after a successful connectionStar Rauchenberger2023-04-132-0/+13
|
* Client authenticates nowStar Rauchenberger2023-04-133-0/+263
|
* Client connects to server and fetches data packageStar Rauchenberger2023-04-122-2/+81
|
* Created global client objectStar Rauchenberger2023-04-123-31/+59
|
* Settings screenStar Rauchenberger2023-04-123-0/+185
r: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* 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 */
edition = "2023";

import "common.proto";

package com.fourisland.lingo2_archipelago;

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

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

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

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

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

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

  repeated ProxyIdentifier panels = 5;
  uint64 complete_at = 12;

  string control_center_color = 6;
  repeated string switches = 7;
  repeated KeyholderAnswer keyholders = 13;
  repeated uint64 rooms = 14;

  DoorType type = 8;
}

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

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

  repeated Proxy proxies = 8;

  uint64 required_door = 9;
  uint64 required_room = 11;
}

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

  string path = 10;
  string display_name = 4;

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

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

  string path = 4;
  string orientation = 5;

  uint64 required_door = 6;
}

message Keyholder {
  uint64 id = 1;
  uint64 room_id = 2;

  string name = 3;
  string path = 4;
}

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

  string key = 1;
  bool double = 2;

  string path = 6;
}

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

  string name = 4;
  string path = 5;
}

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

  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;
}

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

message AllObjects {
  repeated Map maps = 7;
  repeated Room rooms = 1;
  repeated Door doors = 2;
  repeated Panel panels = 3;
  repeated Painting paintings = 4;
  repeated Port ports = 5;
  repeated Keyholder keyholders = 11;
  repeated Letter letters = 9;
  repeated Mastery masteries = 10;
  repeated Connection connections = 6;
  map<string, uint64> special_ids = 8;
}