diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2025-09-06 09:20:28 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2025-09-06 09:20:28 -0400 |
commit | bb4b16ca06c70cf263424955713c91117f2f1813 (patch) | |
tree | 1f234246ad48a2472904e92a6ff48fc7f13e1c49 /client/Archipelago/keyHolderChecker.gd | |
parent | ebda0b634c2396338b86b45128bf507c967e88a7 (diff) | |
download | lingo2-archipelago-bb4b16ca06c70cf263424955713c91117f2f1813.tar.gz lingo2-archipelago-bb4b16ca06c70cf263424955713c91117f2f1813.tar.bz2 lingo2-archipelago-bb4b16ca06c70cf263424955713c91117f2f1813.zip |
[Client] Handle letter shuffle
Cyan doors are not handled properly yet.
Diffstat (limited to 'client/Archipelago/keyHolderChecker.gd')
-rw-r--r-- | client/Archipelago/keyHolderChecker.gd | 24 |
1 files changed, 24 insertions, 0 deletions
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 @@ | |||
1 | extends "res://scripts/nodes/listeners/keyHolderChecker.gd" | ||
2 | |||
3 | |||
4 | func check(): | ||
5 | var ap = global.get_node("Archipelago") | ||
6 | var matches = [] | ||
7 | for map in ap.keyboard.keyholder_state.keys(): | ||
8 | var nodes = ap.keyboard.keyholder_state[map] | ||
9 | for node in nodes.keys(): | ||
10 | matches.append([nodes[node], 1, map, "/root/scene/%s" % node]) | ||
11 | |||
12 | var count = 0 | ||
13 | for key_match in matches: | ||
14 | var active = ( | ||
15 | key_match[2] + String(key_match[3]).replace("/root/scene/Components/KeyHolders/", ".") | ||
16 | ) | ||
17 | if map[active] == key_match[0]: | ||
18 | emit_signal("trigger_letter", key_match[0], true) | ||
19 | count += 1 | ||
20 | else: | ||
21 | emit_signal("trigger_letter", key_match[0], false) | ||
22 | |||
23 | if count > 25: | ||
24 | emit_signal("trigger") | ||