name: "Whole Room" panel_display_name: "North Landscape" panels { name: "VAULT" path: "Panels/Whole Room/whole_1" clue: "vault" answer: "bank" symbols: BOXES } panels { name: "STALL" path: "Panels/Whole Room/whole_2" clue: "stall" answer: "barn" symbols: BOXES } panels { name: "OFFICE" path: "Panels/Whole Room/whole_3" clue: "office" answer: "bank" symbols: BOXES } panels { name: "RAFTER" path: "Panels/Whole Room/whole_4" clue: "rafter" answer: "barn" symbols: BOXES } panels { name: "REGISTER" path: "Panels/Whole Room/whole_5" clue: "register" answer: "store" symbols: BOXES } panels { name: "SHELF" path: "Panels/Whole Room/whole_6" clue: "shelf" answer: "store" symbols: BOXES } panels { name: "BEDROOM" path: "Panels/Whole Room/whole_7" clue: "bedroom" answer: "house" symbols: BOXES } panels { name: "BATHROOM" path: "Panels/Whole Room/whole_8" clue: "bathroom" answer: "house" symbols: BOXES } panels { name: "PHARMACY" path: "Panels/Whole Room/whole_9" clue: "pharmacy" answer: "hospital" symbols: BOXES } panels { name: "LOBBY" path: "Panels/Whole Room/whole_10" clue: "lobby" answer: "hotel" symbols: BOXES } panels { name: "CAFETERIA" path: "Panels/Whole Room/whole_11" clue: "cafeteria" answer: "hospital" symbols: BOXES } panels { name: "ROOM" path: "Panels/Whole Room/whole_12" clue: "room" answer: "hotel" symbols: BOXES } panels { name: "BLEACHER" path: "Panels/Whole Room/whole_13" clue: "bleacher" answer: "stadium" symbols: BOXES } panels { name: "MACHINE" path: "Panels/Whole Room/whole_14" clue: "machine" answer: "factory" symbols: BOXES } panels { name: "LINE" path: "Panels/Whole Room/whole_15" clue: "line" answer: "factory" symbols: BOXES } panels { name: "CONCESSIONS" path: "Panels/Whole Room/whole_16" clue: "concessions" answer: "stadium" symbols: BOXES } panels { name: "WALL" path: "Panels/Whole Room/whole_17" clue: "wall" answer: "fort" symbols: BOXES } panels { name: "GATE" path: "Panels/Whole Room/whole_18" clue: "gate" answer: "fort" symbols: BOXES } panels { name: "HOME (1)" path: "Panels/Whole Room/whole_19" clue: "home" answer: "duplex" symbols: BOXES } panels { name: "HOME (2)" path: "Panels/Whole Room/whole_20" clue: "home" answer: "duplex" symbols: BOXES } panels { name: "DICE" path: "Panels/Whole Room/whole_21" clue: "dice" answer: "casino" symbols: BOXES } panels { name: "MOAT" path: "Panels/Whole Room/whole_22" clue: "moat" answer: "castle" symbols: BOXES } panels { name: "CHIPS" path: "Panels/Whole Room/whole_23" clue: "chips" answer: "casino" symbols: BOXES } panels { name: "TOWER" path: "Panels/Whole Room/whole_24" clue: "tower" answer: "castle" symbols: BOXES } o/tree/?h=v9.2.2&id=86390c6dd7cc2b503881964de920040a2a01686d'>root/apworld/client/maps/the_sun_temple.gd
blob: 9804bf8e4f9a3a56a30a9f9197fc50f897d3289b (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
func on_map_load(root):
	var ap = global.get_node("Archipelago")

	# Add the strict purple ending validation.
	if ap.strict_purple_ending:
		var panel_prefab = preload("res://objects/nodes/panel.tscn")
		var tpl_prefab = preload("res://objects/nodes/listeners/teleportListener.tscn")
		var reverse_prefab = preload("res://objects/nodes/listeners/reversingListener.tscn")

		var previous_panel = null
		var next_y = -100
		var words = ["quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog"]
		for word in words:
			var panel = panel_prefab.instantiate()
			panel.position = Vector3(0, next_y, 0)
			next_y -= 10
			panel.clue = word
			panel.symbol = ""
			panel.answer = word
			panel.name = "EndCheck_%s" % word

			var tpl = tpl_prefab.instantiate()
			tpl.teleport_point = Vector3(0, 1, 0)
			tpl.teleport_rotate = Vector3(-45, 180, 0)
			tpl.target_path = panel
			tpl.name = "Teleport"

			if previous_panel == null:
				tpl.senders.append(NodePath("/root/scene/Panels/End/panel_24"))
			else:
				tpl.senders.append(NodePath("../../%s" % previous_panel.name))

			var reversing = reverse_prefab.instantiate()
			reversing.senders.append(NodePath(".."))
			reversing.name = "Reversing"
			tpl.senders.append(NodePath("../Reversing"))

			panel.add_child.call_deferred(tpl)
			panel.add_child.call_deferred(reversing)
			root.get_node("/root/scene/Panels").add_child.call_deferred(panel)

			previous_panel = panel

		# Duplicate the doors that usually wait on EQUINOX. We can't set the senders
		# here for some reason so we actually set them in the door ready function.
		var endplat = root.get_node("/root/scene/Components/Doors/EndPlatform")
		var endplat2 = endplat.duplicate()
		endplat2.name = "spe_EndPlatform"
		endplat.get_parent().add_child.call_deferred(endplat2)
		endplat.queue_free()

		var entry2 = root.get_node("/root/scene/Components/Doors/entry_2")
		var entry22 = entry2.duplicate()
		entry22.name = "spe_entry_2"
		entry2.get_parent().add_child.call_deferred(entry22)
		entry2.queue_free()