about summary refs log tree commit diff stats
path: root/client/Archipelago/keyboard.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/Archipelago/keyboard.gd')
-rw-r--r--client/Archipelago/keyboard.gd10
1 files changed, 9 insertions, 1 deletions
diff --git a/client/Archipelago/keyboard.gd b/client/Archipelago/keyboard.gd index e43ec9f..600a047 100644 --- a/client/Archipelago/keyboard.gd +++ b/client/Archipelago/keyboard.gd
@@ -79,17 +79,25 @@ func save():
79func update_unlocks(): 79func update_unlocks():
80 unlocks.resetKeys() 80 unlocks.resetKeys()
81 81
82 var has_doubles = false
83
82 for k in kALL_LETTERS: 84 for k in kALL_LETTERS:
83 var level = 0 85 var level = 0
84 86
85 if not letters_in_keyholders.has(k): 87 if not letters_in_keyholders.has(k):
86 level = letters_saved.get(k, 0) + letters_dynamic.get(k, 0) 88 level = letters_saved.get(k, 0) + letters_dynamic.get(k, 0)
87 89
88 if level > 2: 90 if level >= 2:
89 level = 2 91 level = 2
92 has_doubles = true
90 93
91 unlocks.unlockKey(k, level) 94 unlocks.unlockKey(k, level)
92 95
96 if has_doubles and unlocks.data["double_letters"] != "unlocked":
97 var ap = global.get_node("Archipelago")
98 if ap.cyan_door_behavior == ap.kCYAN_DOOR_BEHAVIOR_DOUBLE_LETTER:
99 unlocks.setData("double_letters", "unlocked")
100
93 101
94func collect_local_letter(key, level): 102func collect_local_letter(key, level):
95 if level < 0 or level > 2 or level < letters_saved.get(key, 0): 103 if level < 0 or level > 2 or level < letters_saved.get(key, 0):