From bb4b16ca06c70cf263424955713c91117f2f1813 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sat, 6 Sep 2025 09:20:28 -0400 Subject: [Client] Handle letter shuffle Cyan doors are not handled properly yet. --- client/Archipelago/keyHolderChecker.gd | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 client/Archipelago/keyHolderChecker.gd (limited to 'client/Archipelago/keyHolderChecker.gd') diff --git a/client/Archipelago/keyHolderChecker.gd b/client/Archipelago/keyHolderChecker.gd new file mode 100644 index 0000000..a75a9e4 --- /dev/null +++ b/client/Archipelago/keyHolderChecker.gd @@ -0,0 +1,24 @@ +extends "res://scripts/nodes/listeners/keyHolderChecker.gd" + + +func check(): + var ap = global.get_node("Archipelago") + var matches = [] + for map in ap.keyboard.keyholder_state.keys(): + var nodes = ap.keyboard.keyholder_state[map] + for node in nodes.keys(): + matches.append([nodes[node], 1, map, "/root/scene/%s" % node]) + + var count = 0 + for key_match in matches: + var active = ( + key_match[2] + String(key_match[3]).replace("/root/scene/Components/KeyHolders/", ".") + ) + if map[active] == key_match[0]: + emit_signal("trigger_letter", key_match[0], true) + count += 1 + else: + emit_signal("trigger_letter", key_match[0], false) + + if count > 25: + emit_signal("trigger") -- cgit 1.4.1