about summary refs log tree commit diff stats
path: root/Archipelago/panel.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Archipelago/panel.gd')
-rw-r--r--Archipelago/panel.gd17
1 files changed, 16 insertions, 1 deletions
diff --git a/Archipelago/panel.gd b/Archipelago/panel.gd index fc5963a..2224ffa 100644 --- a/Archipelago/panel.gd +++ b/Archipelago/panel.gd
@@ -5,6 +5,9 @@ var orig_text = ""
5var atbash_text = "" 5var atbash_text = ""
6var orig_color = Color(0, 0, 0, 0) 6var orig_color = Color(0, 0, 0, 0)
7var solvable = true 7var solvable = true
8var locked = false
9var solve_index = null
10var solved_remotely = false
8 11
9const kAtbashPre = "abcdefghijklmnopqrstuvwxyz1234567890+-" 12const kAtbashPre = "abcdefghijklmnopqrstuvwxyz1234567890+-"
10const kAtbashPost = "zyxwvutsrqponmlkjihgfedcba0987654321-+" 13const kAtbashPost = "zyxwvutsrqponmlkjihgfedcba0987654321-+"
@@ -31,6 +34,10 @@ func answer_correct():
31 var effects = get_tree().get_root().get_node("Spatial/AP_Effects") 34 var effects = get_tree().get_root().get_node("Spatial/AP_Effects")
32 effects.deactivate_atbash_trap() 35 effects.deactivate_atbash_trap()
33 36
37 if solve_index != null:
38 var apclient = global.get_node("Archipelago")
39 apclient.solvePanel(solve_index, solved_remotely)
40
34 41
35func evaluate_solvability(): 42func evaluate_solvability():
36 var apclient = global.get_node("Archipelago") 43 var apclient = global.get_node("Archipelago")
@@ -39,7 +46,9 @@ func evaluate_solvability():
39 solvable = true 46 solvable = true
40 var missing = [] 47 var missing = []
41 48
42 if apclient._color_shuffle: 49 if locked:
50 solvable = false
51 elif apclient._color_shuffle:
43 for color in data["color"]: 52 for color in data["color"]:
44 if not apclient._has_colors.has(color): 53 if not apclient._has_colors.has(color):
45 missing.append(color) 54 missing.append(color)
@@ -52,6 +61,12 @@ func evaluate_solvability():
52 self.get_parent().get_node("Viewport/GUI/Panel/Label").text = orig_text 61 self.get_parent().get_node("Viewport/GUI/Panel/Label").text = orig_text
53 self.get_parent().get_node("Viewport/GUI/Panel/TextEdit").editable = true 62 self.get_parent().get_node("Viewport/GUI/Panel/TextEdit").editable = true
54 self.get_parent().get_node("Quad").get_surface_material(0).albedo_color = orig_color 63 self.get_parent().get_node("Quad").get_surface_material(0).albedo_color = orig_color
64 elif locked:
65 self.get_parent().get_node("Viewport/GUI/Panel/Label").text = "Locked"
66 self.get_parent().get_node("Viewport/GUI/Panel/TextEdit").editable = false
67 self.get_parent().get_node("Quad").get_surface_material(0).albedo_color = Color(
68 0.2, 0.7, 0.7
69 )
55 else: 70 else:
56 var missing_text = "Missing: " 71 var missing_text = "Missing: "
57 for thing in missing: 72 for thing in missing: