about summary refs log tree commit diff stats
path: root/apworld/client/maps/the_entry.gd
blob: 3608bb335eb7ad09f88348bf7900fbe03fcbad77 (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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
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)