From 0aa1b7c005edc97323f3e1cbbe591d9064a73475 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Mon, 8 Sep 2025 13:44:45 -0400 Subject: [Client] Handle cyan door behavior Player still needs to leave and re-enter the map for "any double letter" value. --- client/Archipelago/keyboard.gd | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'client/Archipelago/keyboard.gd') 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(): func update_unlocks(): unlocks.resetKeys() + var has_doubles = false + for k in kALL_LETTERS: var level = 0 if not letters_in_keyholders.has(k): level = letters_saved.get(k, 0) + letters_dynamic.get(k, 0) - if level > 2: + if level >= 2: level = 2 + has_doubles = true unlocks.unlockKey(k, level) + if has_doubles and unlocks.data["double_letters"] != "unlocked": + var ap = global.get_node("Archipelago") + if ap.cyan_door_behavior == ap.kCYAN_DOOR_BEHAVIOR_DOUBLE_LETTER: + unlocks.setData("double_letters", "unlocked") + func collect_local_letter(key, level): if level < 0 or level > 2 or level < letters_saved.get(key, 0): -- cgit 1.4.1