about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-02-10 20:14:51 -0500
committerStar Rauchenberger <fefferburbia@gmail.com>2025-02-10 20:14:51 -0500
commit4c3299d27d414410cc1b94c5c09eec419f261f03 (patch)
treeffacf31ba4d9955a69fef1f0ccc713660d647322
parente8671a9ea3fe84e980d7252b92178d808830f655 (diff)
downloadlingo-archipelago-4c3299d27d414410cc1b94c5c09eec419f261f03.tar.gz
lingo-archipelago-4c3299d27d414410cc1b94c5c09eec419f261f03.tar.bz2
lingo-archipelago-4c3299d27d414410cc1b94c5c09eec419f261f03.zip
Batch item receipt messages
-rw-r--r--Archipelago/client.gd37
1 files changed, 33 insertions, 4 deletions
diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 4c8338f..af9564b 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd
@@ -134,6 +134,8 @@ var _geronimo_skip = false
134var _checked_paintings = [] 134var _checked_paintings = []
135var _hints_key = "" 135var _hints_key = ""
136var _hinted_locations = [] 136var _hinted_locations = []
137var _batch_messages = false
138var _held_messages = {}
137 139
138signal could_not_connect 140signal could_not_connect
139signal connect_status 141signal connect_status
@@ -749,8 +751,26 @@ func mapFinishedLoading():
749 _has_colors = ["white"] 751 _has_colors = ["white"]
750 emit_signal("evaluate_solvability") 752 emit_signal("evaluate_solvability")
751 753
754 _held_messages.clear()
755 _batch_messages = true
752 for item in _held_items: 756 for item in _held_items:
753 processItem(item["item"], item["index"], item["from"], item["flags"]) 757 processItem(item["item"], item["index"], item["from"], item["flags"])
758 _batch_messages = false
759
760 for item_name in _held_messages:
761 if _held_messages[item_name][1].size() > 1:
762 messages.showMessage(
763 (
764 "Received [color=%s]%s[/color] (x%d)"
765 % [
766 _held_messages[item_name][0],
767 item_name,
768 _held_messages[item_name][1].size()
769 ]
770 )
771 )
772 else:
773 messages.showMessage(_held_messages[item_name][1][0])
754 774
755 sendMessage([{"cmd": "LocationChecks", "locations": _held_locations}]) 775 sendMessage([{"cmd": "LocationChecks", "locations": _held_locations}])
756 776
@@ -858,12 +878,21 @@ func processItem(item, index, from, flags):
858 878
859 var item_color = colorForItemType(flags) 879 var item_color = colorForItemType(flags)
860 880
881 var message
861 if from == _slot: 882 if from == _slot:
862 messages.showMessage("Found [color=%s]%s[/color]" % [item_color, item_name]) 883 message = "Found [color=%s]%s[/color]" % [item_color, item_name]
863 else: 884 else:
864 messages.showMessage( 885 message = "Received [color=%s]%s[/color] from %s" % [item_color, item_name, player_name]
865 "Received [color=%s]%s[/color] from %s" % [item_color, item_name, player_name] 886
866 ) 887 global._print(message)
888
889 if _batch_messages:
890 if _held_messages.has(item_name):
891 _held_messages[item_name][1].append(message)
892 else:
893 _held_messages[item_name] = [item_color, [message]]
894 else:
895 messages.showMessage(message)
867 896
868 var effects_node = get_tree().get_root().get_node("Spatial/AP_Effects") 897 var effects_node = get_tree().get_root().get_node("Spatial/AP_Effects")
869 if item_name == "Slowness Trap" and !_speed_boost_mode: 898 if item_name == "Slowness Trap" and !_speed_boost_mode: