name: "Puzzles" panels { name: "STORY" path: "Panels/Room_1/panel_1" clue: "story" answer: "legend" symbols: SUN required_door { name: "Seasons" } } panels { name: "VENTURE" path: "Panels/Room_1/panel_2" clue: "venture" answer: "adventure" symbols: SPARKLES required_door { name: "Seasons" } } panels { name: "PASSED" path: "Panels/Room_1/panel_3" clue: "passed" answer: "past" symbols: ZERO } panels { name: "SLUMBERING" path: "Panels/Room_1/panel_4" clue: "slumbering" answer: "awakening" symbols: SUN required_door { name: "Seasons" } } panels { name: "RHYME" path: "Panels/Room_1/panel_5" clue: "rhyme" answer: "time" symbols: ZERO } panels { name: "OBSCURE" path: "Panels/Room_1/panel_6" clue: "obscure" answer: "mask" symbols: PYRAMID } panels { name: "PROPHET" path: "Panels/Room_1/panel_7" clue: "prophet" answer: "oracle" symbols: SUN } panels { name: "ERAS" path: "Panels/Room_1/panel_8" clue: "eras" answer: "gsae" symbols: SUN proxies { answer: "ages" path: "Panels/Proxies/panel_8_proxy_1" } proxies { answer: "seasons" path: "Panels/Proxies/panel_8_proxy_2" } } panels { name: "DARKNESS" path: "Panels/Room_1/panel_9" clue: "darkness" answer: "twilight" symbols: PYRAMID required_door { name: "Seasons" } } panels { name: "PRINCE" path: "Panels/Room_1/panel_10" clue: "prince" answer: "princess" symbols: GENDER required_door { name: "Seasons" } } panels { name: "BATH" path: "Panels/Room_1/panel_11" clue: "bath" answer: "breath" symbols: SPARKLES } panels { name: "CHAOTIC" path: "Panels/Room_1/panel_12" clue: "chaotic" answer: "wild" symbols: SUN } panels { name: "EYES" path: "Panels/Room_1/panel_13" clue: "eyes" answer: "tears" symbols: STARS } panels { name: "QUEENDOOM" path: "Panels/Room_1/panel_14" clue: "queendoom" answer: "kingdom" symbols: SUN symbols: SPARKLES } panels { name: "SHOUTS" path: "Panels/Room_1/panel_15" clue: "shouts" answer: "echoes" symbols: AGE required_door { name: "Seasons" } } panels { name: "INTELLIGENCE" path: "Panels/Room_1/panel_16" clue: "intelligence" answer: "wisdom" symbols: AGE } panels { name: "EARTHWAR" path: "Panels/Room_1/panel_17" clue: "earthwar" answer: "skyward" symbols: SUN symbols: SPARKLES } panels { name: "SLEEPER" path: "Panels/Room_1/panel_19" clue: "sleeper" answer: "waker" symbols: SUN } panels { name: "BOTTLE" path: "Panels/Room_1/panel_20" clue: "bottle" answer: "cap" symbols: BOXES } panels { name: "WORDS" path: "Panels/Room_1/panel_18" clue: "words" answer: "sword" symbols: ANAGRAM } elago?h=v0.8.1&id=725a59070d344a419b07cb5a8e552dee8c9c3b5c'>Archipelago/panel.gd
blob: 6ec5e14246904f3dbbb86ba2eb05711955751dea (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
extends Node

var data = {}
var orig_text = ""
var orig_color = Color(0, 0, 0, 0)


func _ready():
	orig_text = self.get_parent().get_node("Viewport/GUI/Panel/Label").text
	orig_color = self.get_parent().get_node("Quad").get_surface_material(0).albedo_color


func evaluate_solvability():
	var apclient = global.get_node("Archipelago")

	var solvable = true
	var missing = []

	if apclient._color_shuffle:
		for color in data["color"]:
			if not apclient._has_colors.has(color):
				missing.append(color)
				solvable = false

	if solvable:
		self.get_parent().get_node("Viewport/GUI/Panel/Label").text = orig_text
		self.get_parent().get_node("Viewport/GUI/Panel/TextEdit").editable = true
		self.get_parent().get_node("Quad").get_surface_material(0).albedo_color = orig_color
	else:
		var missing_text = "Missing: "
		for thing in missing:
			missing_text += thing + ",\n"
		missing_text = missing_text.left(missing_text.length() - 2)

		self.get_parent().get_node("Viewport/GUI/Panel/Label").text = missing_text
		self.get_parent().get_node("Viewport/GUI/Panel/TextEdit").editable = false
		self.get_parent().get_node("Quad").get_surface_material(0).albedo_color = Color(
			0.7, 0.2, 0.2
		)