diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2025-02-10 20:14:51 -0500 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2025-02-10 20:14:51 -0500 |
commit | 4c3299d27d414410cc1b94c5c09eec419f261f03 (patch) | |
tree | ffacf31ba4d9955a69fef1f0ccc713660d647322 /Archipelago | |
parent | e8671a9ea3fe84e980d7252b92178d808830f655 (diff) | |
download | lingo-archipelago-4c3299d27d414410cc1b94c5c09eec419f261f03.tar.gz lingo-archipelago-4c3299d27d414410cc1b94c5c09eec419f261f03.tar.bz2 lingo-archipelago-4c3299d27d414410cc1b94c5c09eec419f261f03.zip |
Batch item receipt messages
Diffstat (limited to 'Archipelago')
-rw-r--r-- | Archipelago/client.gd | 37 |
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 | |||
134 | var _checked_paintings = [] | 134 | var _checked_paintings = [] |
135 | var _hints_key = "" | 135 | var _hints_key = "" |
136 | var _hinted_locations = [] | 136 | var _hinted_locations = [] |
137 | var _batch_messages = false | ||
138 | var _held_messages = {} | ||
137 | 139 | ||
138 | signal could_not_connect | 140 | signal could_not_connect |
139 | signal connect_status | 141 | signal 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: |