about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--Archipelago/client.gd37
-rw-r--r--Archipelago/textclient.gd3
-rw-r--r--CHANGELOG.md19
3 files changed, 52 insertions, 7 deletions
diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 350723e..01f812c 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd
@@ -19,7 +19,7 @@ var enable_multiplayer = false
19var track_player = false 19var track_player = false
20var connection_history = [] 20var connection_history = []
21 21
22const my_version = "4.2.0" 22const my_version = "4.2.1"
23const ap_version = {"major": 0, "minor": 5, "build": 0, "class": "Version"} 23const ap_version = {"major": 0, "minor": 5, "build": 0, "class": "Version"}
24const color_items = [ 24const color_items = [
25 "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" 25 "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow"
@@ -121,6 +121,8 @@ var _cached_atbash = 0
121var _cached_speed_boosts = 0 121var _cached_speed_boosts = 0
122var _geronimo_skip = false 122var _geronimo_skip = false
123var _checked_paintings = [] 123var _checked_paintings = []
124var _hints_key = ""
125var _hinted_locations = []
124 126
125signal could_not_connect 127signal could_not_connect
126signal connect_status 128signal connect_status
@@ -403,6 +405,11 @@ func _on_data():
403 ] 405 ]
404 ) 406 )
405 407
408 _hints_key = "_read_hints_%d_%d" % [_team, _slot]
409 sendMessage(
410 [{"cmd": "SetNotify", "keys": [_hints_key]}, {"cmd": "Get", "keys": [_hints_key]}]
411 )
412
406 emit_signal("client_connected") 413 emit_signal("client_connected")
407 414
408 elif cmd == "ConnectionRefused": 415 elif cmd == "ConnectionRefused":
@@ -500,9 +507,12 @@ func _on_data():
500 ) 507 )
501 else: 508 else:
502 if message["receiving"] != _slot: 509 if message["receiving"] != _slot:
503 messages.showMessage( 510 var sentMsg = (
504 "Sent [color=%s]%s[/color] to %s" % [item_color, item_name, player_name] 511 "Sent [color=%s]%s[/color] to %s" % [item_color, item_name, player_name]
505 ) 512 )
513 if _hinted_locations.has(message["item"]["location"]):
514 sentMsg += " ([color=#fafad2]Hinted![/color])"
515 messages.showMessage(sentMsg)
506 516
507 elif cmd == "Bounced": 517 elif cmd == "Bounced":
508 if ( 518 if (
@@ -523,8 +533,15 @@ func _on_data():
523 get_tree().get_root().get_node("Spatial/player/pause_menu")._reload() 533 get_tree().get_root().get_node("Spatial/player/pause_menu")._reload()
524 534
525 elif cmd == "SetReply": 535 elif cmd == "SetReply":
526 if message.has("key") and message["key"] == ("Lingo_%d_Paintings" % _slot): 536 if message.has("key"):
527 _checked_paintings = message["value"] 537 if message["key"] == ("Lingo_%d_Paintings" % _slot):
538 _checked_paintings = message["value"]
539 elif message["key"] == _hints_key:
540 parseHints(message["value"])
541
542 elif cmd == "Retrieved":
543 if message.has("keys") and message["keys"].has(_hints_key):
544 parseHints(message["keys"][_hints_key])
528 545
529 546
530func _process(_delta): 547func _process(_delta):
@@ -805,13 +822,13 @@ func processItem(item, index, from, flags):
805 ) 822 )
806 823
807 var effects_node = get_tree().get_root().get_node("Spatial/AP_Effects") 824 var effects_node = get_tree().get_root().get_node("Spatial/AP_Effects")
808 if item_name == "Slowness Trap": 825 if item_name == "Slowness Trap" and !_speed_boost_mode:
809 effects_node.trigger_slowness_trap() 826 effects_node.trigger_slowness_trap()
810 if item_name == "Iceland Trap": 827 if item_name == "Iceland Trap":
811 effects_node.trigger_iceland_trap() 828 effects_node.trigger_iceland_trap()
812 if item_name == "Atbash Trap": 829 if item_name == "Atbash Trap":
813 effects_node.trigger_atbash_trap() 830 effects_node.trigger_atbash_trap()
814 if item_name == "Speed Boost": 831 if item_name == "Speed Boost" and _speed_boost_mode:
815 effects_node.trigger_speed_boost() 832 effects_node.trigger_speed_boost()
816 if item_name == "Puzzle Skip": 833 if item_name == "Puzzle Skip":
817 _puzzle_skips += 1 834 _puzzle_skips += 1
@@ -863,6 +880,14 @@ func checkPainting(painting_id):
863 setValue("Paintings", [painting_id], "add") 880 setValue("Paintings", [painting_id], "add")
864 881
865 882
883func parseHints(hints):
884 _hinted_locations.clear()
885
886 for hint in hints:
887 if hint["finding_player"] == int(_slot):
888 _hinted_locations.append(hint["location"])
889
890
866func colorForItemType(flags): 891func colorForItemType(flags):
867 var int_flags = int(flags) 892 var int_flags = int(flags)
868 if int_flags & 1: # progression 893 if int_flags & 1: # progression
diff --git a/Archipelago/textclient.gd b/Archipelago/textclient.gd index f100776..3abd9e0 100644 --- a/Archipelago/textclient.gd +++ b/Archipelago/textclient.gd
@@ -25,6 +25,7 @@ func _ready():
25 label.margin_top = 80 25 label.margin_top = 80
26 label.margin_bottom = 720 26 label.margin_bottom = 720
27 label.scroll_following = true 27 label.scroll_following = true
28 label.selection_enabled = true
28 panel.add_child(label) 29 panel.add_child(label)
29 30
30 var dynamic_font = DynamicFont.new() 31 var dynamic_font = DynamicFont.new()
@@ -51,7 +52,7 @@ func _ready():
51 52
52func _input(event): 53func _input(event):
53 if event is InputEventKey and event.pressed: 54 if event is InputEventKey and event.pressed:
54 if event.scancode == KEY_TAB: 55 if event.scancode == KEY_TAB and !Input.is_key_pressed(KEY_SHIFT):
55 if !get_tree().paused: 56 if !get_tree().paused:
56 is_open = true 57 is_open = true
57 get_tree().paused = true 58 get_tree().paused = true
diff --git a/CHANGELOG.md b/CHANGELOG.md index d00999c..6bea522 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md
@@ -1,5 +1,24 @@
1# lingo-archipelago Releases 1# lingo-archipelago Releases
2 2
3## v4.2.1 - 2024-09-21
4
5- The text client will no longer open if SHIFT is being held, to prevent
6 conflicts with the Steam Overlay.
7
8Download:
9[lingo-archipelago-v4.2.1.zip](https://files.fourisland.com/releases/lingo-archipelago/lingo-archipelago-v4.2.1.zip)<br/>
10Source: [v4.2.1](https://code.fourisland.com/lingo-archipelago/tag/?h=v4.2.1)
11
12## v4.2.0 - 2024-09-20
13
14- Added a proximity chat feature. You can use the command "/say" followed by a
15 message in the text client, and it will broadcast the message only to other
16 nearby Lingo players.
17
18Download:
19[lingo-archipelago-v4.2.0.zip](https://files.fourisland.com/releases/lingo-archipelago/lingo-archipelago-v4.2.0.zip)<br/>
20Source: [v4.2.0](https://code.fourisland.com/lingo-archipelago/tag/?h=v4.2.0)
21
3## v4.1.0 - 2024-09-02 22## v4.1.0 - 2024-09-02
4 23
5- Added an in-game text client, which can be used to talk to other players and 24- Added an in-game text client, which can be used to talk to other players and