about summary refs log tree commit diff stats
path: root/data/maps/the_unkempt/rooms/Control Center Entrance.txtpb
blob: 7971cf7d97aff59276a5bedd678b857691af5d2c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
name: "Control Center Entrance"
panels {
  name: "RETURN"
  path: "Panels/Entry/panel_1"
  clue: "return"
  answer: "turn"
  symbols: SPARKLES
}
ports {
  name: "CC"
  display_name: "Control Center Connector"
  path: "Components/Warps/worldport2"
  destination { x: -4.5 y: 0 z: 7 }
  rotation: 0
}
#336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
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()