From 400ad1ed74166d3f01adf6d97f07a16ec391f2a9 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Mon, 2 Sep 2024 11:49:12 -0400 Subject: Added text client --- Archipelago/client.gd | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'Archipelago/client.gd') diff --git a/Archipelago/client.gd b/Archipelago/client.gd index aa50069..f58b3d6 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -8,6 +8,7 @@ var SCRIPT_mypainting var SCRIPT_notifier var SCRIPT_panel var SCRIPT_pilgrimage_terminator +var SCRIPT_textclient var SCRIPT_uuid var ap_server = "" @@ -451,6 +452,8 @@ func _on_data(): i += 1 elif cmd == "PrintJSON": + parse_printjson(message) + if ( !message.has("receiving") or !message.has("item") @@ -684,6 +687,10 @@ func setValue(key, value, operation = "replace"): ) +func say(textdata): + sendMessage([{"cmd": "Say", "text": textdata}]) + + func completedGoal(): sendMessage([{"cmd": "StatusUpdate", "status": 30}]) # CLIENT_GOAL @@ -855,6 +862,43 @@ func colorForItemType(flags): return "#14de9e" +func parse_printjson(message): + var parts = [] + for message_part in message["data"]: + if !message_part.has("type") and message_part.has("text"): + parts.append(message_part["text"]) + elif message_part["type"] == "player_id": + if int(message_part["text"]) == _slot: + parts.append("[color=#ee00ee]%s[/color]" % _player_name_by_slot[_slot]) + else: + var from = float(message_part["text"]) + parts.append("[color=#fafad2]%s[/color]" % _player_name_by_slot[from]) + elif message_part["type"] == "item_id": + var item_name = "Unknown" + var item_player_game = _game_by_player[message_part["player"]] + if _item_id_to_name[item_player_game].has(float(message_part["text"])): + item_name = _item_id_to_name[item_player_game][float(message_part["text"])] + + parts.append( + "[color=%s]%s[/color]" % [colorForItemType(message_part["flags"]), item_name] + ) + elif message_part["type"] == "location_id": + var location_name = "Unknown" + var location_player_game = _game_by_player[message_part["player"]] + if _location_id_to_name[location_player_game].has(float(message_part["text"])): + location_name = _location_id_to_name[location_player_game][float( + message_part["text"] + )] + + parts.append("[color=#00ff7f]%s[/color]" % location_name) + elif message_part.has("text"): + parts.append(message_part["text"]) + + var textclient_node = get_tree().get_root().get_node_or_null("Spatial/AP_TextClient") + if textclient_node != null: + textclient_node.parse_printjson("".join(parts)) + + func compareVersion(lhs, rhs): if lhs["major"] == rhs["major"]: if lhs["minor"] == rhs["minor"]: -- cgit 1.4.1 From 7ba426a8e0762b7e1a2e838c314410922df51e6c Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Mon, 2 Sep 2024 11:49:38 -0400 Subject: Bump version --- Archipelago/client.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Archipelago/client.gd') diff --git a/Archipelago/client.gd b/Archipelago/client.gd index f58b3d6..3973f0e 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -19,7 +19,7 @@ var enable_multiplayer = false var track_player = false var connection_history = [] -const my_version = "4.0.2" +const my_version = "4.1.0" const ap_version = {"major": 0, "minor": 5, "build": 0, "class": "Version"} const color_items = [ "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" -- cgit 1.4.1