about summary refs log tree commit diff stats
path: root/apworld/client/effects.gd
blob: 9dc1dd8247eaee9b090e2f7c91b779093babe4d2 (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
extends CanvasLayer

var _label

var _disconnected = false


func _ready():
	_label = Label.new()
	_label.name = "Label"
	_label.offset_left = 20
	_label.offset_top = 20
	_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_LEFT
	_label.vertical_alignment = VERTICAL_ALIGNMENT_TOP
	_label.theme = preload("res://assets/themes/baseUI.tres")
	_label.add_theme_font_size_override("font_size", 36)
	add_child(_label)


func set_connection_lost(arg):
	_disconnected = arg

	_update_label()


func _update_label():
	var text = []

	if _disconnected:
		text.append("Disconnected from multiworld.")

	_label.text = "\n".join(text)
{ 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;
}

enum AxisDirection {
  AXIS_DIRECTION_UNKNOWN = 0;

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

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

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 string switches = 7;
  repeated KeyholderAnswer keyholders = 13;
  repeated uint64 rooms = 14;
  repeated uint64 doors = 15;

  optional DoorType type = 8;
}

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 string symbols = 7;

  repeated Proxy proxies = 8;

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

message Painting {
  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 Keyholder {
  optional uint64 id = 1;
  optional uint64 room_id = 2;

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

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 Room {
  optional uint64 id = 1;
  optional uint64 map_id = 8;
  optional string name = 2;
  optional 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 {
  optional uint64 id = 1;
  optional string name = 2;
}

message AllObjects {
  repeated Map maps = 7;
  repeated Room rooms = 1;
  repeated Door doors = 2;
  repeated PanelData 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;
}