diff options
| -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: |
