about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--Archipelago/client.gd35
-rw-r--r--Archipelago/textclient.gd1
-rw-r--r--CHANGELOG.md9
3 files changed, 40 insertions, 5 deletions
diff --git a/Archipelago/client.gd b/Archipelago/client.gd index f12cfbd..01f812c 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd
@@ -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 003ef8d..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()
diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ff2d56..6bea522 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md
@@ -1,5 +1,14 @@
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
3## v4.2.0 - 2024-09-20 12## v4.2.0 - 2024-09-20
4 13
5- Added a proximity chat feature. You can use the command "/say" followed by a 14- Added a proximity chat feature. You can use the command "/say" followed by a