From 4c3299d27d414410cc1b94c5c09eec419f261f03 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Mon, 10 Feb 2025 20:14:51 -0500 Subject: Batch item receipt messages --- Archipelago/client.gd | 37 +++++++++++++++++++++++++++++++++---- 1 file 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 var _checked_paintings = [] var _hints_key = "" var _hinted_locations = [] +var _batch_messages = false +var _held_messages = {} signal could_not_connect signal connect_status @@ -749,8 +751,26 @@ func mapFinishedLoading(): _has_colors = ["white"] emit_signal("evaluate_solvability") + _held_messages.clear() + _batch_messages = true for item in _held_items: processItem(item["item"], item["index"], item["from"], item["flags"]) + _batch_messages = false + + for item_name in _held_messages: + if _held_messages[item_name][1].size() > 1: + messages.showMessage( + ( + "Received [color=%s]%s[/color] (x%d)" + % [ + _held_messages[item_name][0], + item_name, + _held_messages[item_name][1].size() + ] + ) + ) + else: + messages.showMessage(_held_messages[item_name][1][0]) sendMessage([{"cmd": "LocationChecks", "locations": _held_locations}]) @@ -858,12 +878,21 @@ func processItem(item, index, from, flags): var item_color = colorForItemType(flags) + var message if from == _slot: - messages.showMessage("Found [color=%s]%s[/color]" % [item_color, item_name]) + message = "Found [color=%s]%s[/color]" % [item_color, item_name] else: - messages.showMessage( - "Received [color=%s]%s[/color] from %s" % [item_color, item_name, player_name] - ) + message = "Received [color=%s]%s[/color] from %s" % [item_color, item_name, player_name] + + global._print(message) + + if _batch_messages: + if _held_messages.has(item_name): + _held_messages[item_name][1].append(message) + else: + _held_messages[item_name] = [item_color, [message]] + else: + messages.showMessage(message) var effects_node = get_tree().get_root().get_node("Spatial/AP_Effects") if item_name == "Slowness Trap" and !_speed_boost_mode: -- cgit 1.4.1