about summary refs log tree commit diff stats
path: root/data/maps/the_hive/rooms/Mastery Room.txtpb
Commit message (Expand)AuthorAgeFilesLines
* Changed how door location names are formattedStar Rauchenberger2025-08-301-1/+0
* Added the_hiveStar Rauchenberger2025-08-141-0/+6
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()