about summary refs log tree commit diff stats
path: root/Archipelago
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2023-06-06 12:27:32 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2023-06-06 12:27:32 -0400
commit38b8f3dbb70472e99e90c5b1c5095c2c4f206880 (patch)
treef398fda4196f70668f586f1c98d0e37b54659a81 /Archipelago
parent9fa07c3e32d85dec26ff04c0ee61b11d72d3cd00 (diff)
downloadlingo-archipelago-38b8f3dbb70472e99e90c5b1c5095c2c4f206880.tar.gz
lingo-archipelago-38b8f3dbb70472e99e90c5b1c5095c2c4f206880.tar.bz2
lingo-archipelago-38b8f3dbb70472e99e90c5b1c5095c2c4f206880.zip
HOT CRUSTS change should always happen v0.7.0
Diffstat (limited to 'Archipelago')
-rw-r--r--Archipelago/load.gd20
1 files changed, 10 insertions, 10 deletions
diff --git a/Archipelago/load.gd b/Archipelago/load.gd index 331cf0b..988c519 100644 --- a/Archipelago/load.gd +++ b/Archipelago/load.gd
@@ -111,22 +111,22 @@ func _load():
111 "answer_correct", location, "handle_correct" 111 "answer_correct", location, "handle_correct"
112 ) 112 )
113 113
114 # HOT CRUSTS should be at eye-level, have a yellow block behind it, and
115 # not vanish when solved.
116 var hotcrusts = panels_parent.get_node("Shuffle Room/Panel_shortcuts")
117 hotcrusts.translation.y = 1.5
118 hotcrusts.get_node("Viewport/GUI/Panel/TextEdit").disconnect(
119 "answer_correct", hotcrusts, "handle_correct"
120 )
121
122 set_gridmap_tile(-20.5, 1.5, -79.5, "MeshInstance9")
123
114 # Randomize the panels, if necessary. 124 # Randomize the panels, if necessary.
115 var rng = RandomNumberGenerator.new() 125 var rng = RandomNumberGenerator.new()
116 rng.seed = apclient._slot_seed 126 rng.seed = apclient._slot_seed
117 127
118 var gamedata = apclient.get_node("Gamedata") 128 var gamedata = apclient.get_node("Gamedata")
119 if apclient._panel_shuffle != apclient.kNO_PANEL_SHUFFLE: 129 if apclient._panel_shuffle != apclient.kNO_PANEL_SHUFFLE:
120 # HOT CRUSTS should be at eye-level, have a yellow block behind it, and
121 # not vanish when solved.
122 var hotcrusts = panels_parent.get_node("Shuffle Room/Panel_shortcuts")
123 hotcrusts.translation.y = 1.5
124 hotcrusts.get_node("Viewport/GUI/Panel/TextEdit").disconnect(
125 "answer_correct", hotcrusts, "handle_correct"
126 )
127
128 set_gridmap_tile(-20.5, 1.5, -79.5, "MeshInstance9")
129
130 # Remove opaque wall in front of FOURTH. 130 # Remove opaque wall in front of FOURTH.
131 set_gridmap_tile(-71.5, 1.5, -64.5, "MeshInstance18") 131 set_gridmap_tile(-71.5, 1.5, -64.5, "MeshInstance18")
132 132
color: #ffffcc } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
extends Node

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

const kAtbashPre = "abcdefghijklmnopqrstuvwxyz1234567890+-"
const kAtbashPost = "zyxwvutsrqponmlkjihgfedcba0987654321-+"


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

	for i in range(0, orig_text.length()):
		var old_char = orig_text[i]
		if old_char in kAtbashPre:
			var j = kAtbashPre.find(old_char)
			atbash_text += kAtbashPost[j]
		else:
			atbash_text += old_char

	self.get_parent().get_node("Viewport/GUI/Panel/TextEdit").connect(
		"answer_correct", self, "answer_correct"
	)


func answer_correct():
	var effects = get_tree().get_root().get_node("Spatial/AP_Effects")
	effects.deactivate_atbash_trap()


func evaluate_solvability():
	var apclient = global.get_node("Archipelago")
	var effects = get_tree().get_root().get_node("Spatial/AP_Effects")

	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:
		if effects.atbash_activated:
			self.get_parent().get_node("Viewport/GUI/Panel/Label").text = atbash_text
		else:
			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
		)

	self.get_parent().get_node("Viewport").render_target_update_mode = 1