about summary refs log tree commit diff stats
path: root/data/maps/the_relentless/rooms/Left Room.txtpb
blob: 52b51544a04ca26377e3e911a490b471127f570d (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
func on_map_load(root):
	var ap = global.get_node("Archipelago")

	# Remove door behind X1.
	var door_node = root.get_node("/root/scene/Components/Doors/exit_1")
	door_node.handleTriggered()

	# Display win condition.
	var sign_prefab = preload("res://objects/nodes/sign.tscn")
	var sign1 = sign_prefab.instantiate()
	sign1.position = Vector3(-7, 5, -15.01)
	sign1.text = "victory"
	root.get_node("/root/scene").add_child.call_deferred(sign1)

	var sign2 = sign_prefab.instantiate()
	sign2.position = Vector3(-7, 4, -15.01)
	sign2.text = "%s ending" % ap.kEndingNameByVictoryValue.get(ap.victory_condition, "?")

	var sign2_color = ap.kEndingNameByVictoryValue.get(ap.victory_condition, "coral").to_lower()
	if sign2_color == "white":
		sign2_color = "silver"

	sign2.material = load("res://assets/materials/%s.material" % sign2_color)
	root.get_node("/root/scene").add_child.call_deferred(sign2)

	# Add the gift map entry panel if needed.
	if not ap.enable_gift_maps.is_empty():
		var panel_prefab = preload("res://objects/nodes/panel.tscn")
		var tpl_prefab = preload("res://objects/nodes/listeners/teleportListener.tscn")
		var wpl_prefab = preload("res://objects/nodes/listeners/worldportListener.tscn")

		var giftmap_parent = Node.new()
		giftmap_parent.name = "GiftMapEntrance"
		root.get_node("/root/scene/Components").add_child.call_deferred(giftmap_parent)

		var symbolless_player = ""
		for i in range(ap.client.ap_user.length()):
			if "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".contains(
				ap.client.ap_user[i]
			):
				symbolless_player = symbolless_player + ap.client.ap_user[i].to_lower()

		var giftmap_panel = panel_prefab.instantiate()
		giftmap_panel.name = "Panel"
		giftmap_panel.position = Vector3(33.5, -190, 5.5)
		giftmap_panel.rotation_degrees = Vector3(-45, 0, 0)
		giftmap_panel.clue = "player"
		giftmap_panel.answer = symbolless_player

		if ap.enable_gift_maps.has("The Advanced"):
			var icely_panel = panel_prefab.instantiate()
			icely_panel.name = "IcelyPanel"
			icely_panel.answer = "icely"
			icely_panel.position = Vector3(33.5, -200, 5.5)
			giftmap_panel.proxies.append(NodePath("../IcelyPanel"))
			giftmap_parent.add_child.call_deferred(icely_panel)

			var icely_wpl = wpl_prefab.instantiate()
			icely_wpl.name = "IcelyWpl"
			icely_wpl.exit = "the_advanced"
			icely_wpl.senders.append(NodePath("../IcelyPanel"))
			giftmap_parent.add_child.call_deferred(icely_wpl)

		if ap.enable_gift_maps.has("The Charismatic"):
			var souvey_panel = panel_prefab.instantiate()
			souvey_panel.name = "SouveyPanel"
			souvey_panel.answer = "souvey"
			souvey_panel.position = Vector3(33.5, -210, 5.5)
			giftmap_panel.proxies.append(NodePath("../SouveyPanel"))
			giftmap_parent.add_child.call_deferred(souvey_panel)

			var souvey_wpl = wpl_prefab.instantiate()
			souvey_wpl.name = "SouveyWpl"
			souvey_wpl.exit = "the_charismatic"
			souvey_wpl.senders.append(NodePath("../SouveyPanel"))
			giftmap_parent.add_child.call_deferred(souvey_wpl)

		if ap.enable_gift_maps.has("The Crystalline"):
			var q_panel = panel_prefab.instantiate()
			q_panel.name = "QPanel"
			q_panel.answer = "q"
			q_panel.position = Vector3(33.5, -220, 5.5)
			giftmap_panel.proxies.append(NodePath("../QPanel"))
			giftmap_parent.add_child.call_deferred(q_panel)

			var q_wpl = wpl_prefab.instantiate()
			q_wpl.name = "QWpl"
			q_wpl.exit = "the_crystalline"
			q_wpl.senders.append(NodePath("../QPanel"))
			giftmap_parent.add_child.call_deferred(q_wpl)

		if ap.enable_gift_maps.has("The Fuzzy"):
			var gongus_panel = panel_prefab.instantiate()
			gongus_panel.name = "GongusPanel"
			gongus_panel.answer = "gongus"
			gongus_panel.position = Vector3(33.5, -260, 5.5)
			giftmap_panel.proxies.append(NodePath("../GongusPanel"))
			giftmap_parent.add_child.call_deferred(gongus_panel)

			var kiwi_panel = panel_prefab.instantiate()
			kiwi_panel.name = "KiwiPanel"
			kiwi_panel.answer = "kiwi"
			kiwi_panel.position = Vector3(33.5, -270, 5.5)
			giftmap_panel.proxies.append(NodePath("../KiwiPanel"))
			giftmap_parent.add_child.call_deferred(kiwi_panel)

			var fuzzy_wpl = wpl_prefab.instantiate()
			fuzzy_wpl.name = "FuzzyWpl"
			fuzzy_wpl.exit = "the_fuzzy"
			fuzzy_wpl.senders.append(NodePath("../GongusPanel"))
			fuzzy_wpl.senders.append(NodePath("../KiwiPanel"))
			fuzzy_wpl.complete_at = 1
			giftmap_parent.add_child.call_deferred(fuzzy_wpl)

		if ap.enable_gift_maps.has("The Stellar"):
			var hatkirby_panel = panel_prefab.instantiate()
			hatkirby_panel.name = "HatkirbyPanel"
			hatkirby_panel.answer = "hatkirby"
			hatkirby_panel.position = Vector3(33.5, -230, 5.5)
			giftmap_panel.proxies.append(NodePath("../HatkirbyPanel"))
			giftmap_parent.add_child.call_deferred(hatkirby_panel)

			var kirby_panel = panel_prefab.instantiate()
			kirby_panel.name = "KirbyPanel"
			kirby_panel.answer = "kirby"
			kirby_panel.position = Vector3(33.5, -240, 5.5)
			giftmap_panel.proxies.append(NodePath("../KirbyPanel"))
			giftmap_parent.add_child.call_deferred(kirby_panel)

			var star_panel = panel_prefab.instantiate()
			star_panel.name = "StarPanel"
			star_panel.answer = "star"
			star_panel.position = Vector3(33.5, -250, 5.5)
			giftmap_panel.proxies.append(NodePath("../StarPanel"))
			giftmap_parent.add_child.call_deferred(star_panel)

			var stellar_wpl = wpl_prefab.instantiate()
			stellar_wpl.name = "StellarWpl"
			stellar_wpl.exit = "the_stellar"
			stellar_wpl.senders.append(NodePath("../HatkirbyPanel"))
			stellar_wpl.senders.append(NodePath("../KirbyPanel"))
			stellar_wpl.senders.append(NodePath("../StarPanel"))
			stellar_wpl.complete_at = 1
			giftmap_parent.add_child.call_deferred(stellar_wpl)

		giftmap_parent.add_child.call_deferred(giftmap_panel)

		var giftmap_tpl = tpl_prefab.instantiate()
		giftmap_tpl.name = "PanelTeleporter"
		giftmap_tpl.teleport_point = Vector3(33.5, 1, 5.5)
		giftmap_tpl.teleport_rotate = Vector3(-45, 0, 0)
		giftmap_tpl.target_path = giftmap_panel
		giftmap_tpl.senders.append(
			NodePath("/root/scene/Components/Listeners/unlockReaderListenerDoubles")
		)
		giftmap_parent.add_child.call_deferred(giftmap_tpl)