about summary refs log tree commit diff stats
path: root/apworld/client/player.gd
diff options
context:
space:
mode:
Diffstat (limited to 'apworld/client/player.gd')
-rw-r--r--apworld/client/player.gd115
1 files changed, 114 insertions, 1 deletions
diff --git a/apworld/client/player.gd b/apworld/client/player.gd index 43bf758..8aee21a 100644 --- a/apworld/client/player.gd +++ b/apworld/client/player.gd
@@ -78,6 +78,7 @@ func _ready():
78 # Add the gift map entry panel if needed. 78 # Add the gift map entry panel if needed.
79 if not ap.enable_gift_maps.is_empty(): 79 if not ap.enable_gift_maps.is_empty():
80 var panel_prefab = preload("res://objects/nodes/panel.tscn") 80 var panel_prefab = preload("res://objects/nodes/panel.tscn")
81 var tpl_prefab = preload("res://objects/nodes/listeners/teleportListener.tscn")
81 var wpl_prefab = preload("res://objects/nodes/listeners/worldportListener.tscn") 82 var wpl_prefab = preload("res://objects/nodes/listeners/worldportListener.tscn")
82 83
83 var giftmap_parent = Node.new() 84 var giftmap_parent = Node.new()
@@ -93,7 +94,7 @@ func _ready():
93 94
94 var giftmap_panel = panel_prefab.instantiate() 95 var giftmap_panel = panel_prefab.instantiate()
95 giftmap_panel.name = "Panel" 96 giftmap_panel.name = "Panel"
96 giftmap_panel.position = Vector3(33.5, 1, 5.5) 97 giftmap_panel.position = Vector3(33.5, -190, 5.5)
97 giftmap_panel.rotation_degrees = Vector3(-45, 0, 0) 98 giftmap_panel.rotation_degrees = Vector3(-45, 0, 0)
98 giftmap_panel.clue = "player" 99 giftmap_panel.clue = "player"
99 giftmap_panel.answer = symbolless_player 100 giftmap_panel.answer = symbolless_player
@@ -112,8 +113,46 @@ func _ready():
112 icely_wpl.senders.append(NodePath("../IcelyPanel")) 113 icely_wpl.senders.append(NodePath("../IcelyPanel"))
113 giftmap_parent.add_child.call_deferred(icely_wpl) 114 giftmap_parent.add_child.call_deferred(icely_wpl)
114 115
116 if ap.enable_gift_maps.has("The Charismatic"):
117 var souvey_panel = panel_prefab.instantiate()
118 souvey_panel.name = "SouveyPanel"
119 souvey_panel.answer = "souvey"
120 souvey_panel.position = Vector3(33.5, -210, 5.5)
121 giftmap_panel.proxies.append(NodePath("../SouveyPanel"))
122 giftmap_parent.add_child.call_deferred(souvey_panel)
123
124 var souvey_wpl = wpl_prefab.instantiate()
125 souvey_wpl.name = "SouveyWpl"
126 souvey_wpl.exit = "the_charismatic"
127 souvey_wpl.senders.append(NodePath("../SouveyPanel"))
128 giftmap_parent.add_child.call_deferred(souvey_wpl)
129
130 if ap.enable_gift_maps.has("The Crystalline"):
131 var q_panel = panel_prefab.instantiate()
132 q_panel.name = "QPanel"
133 q_panel.answer = "q"
134 q_panel.position = Vector3(33.5, -220, 5.5)
135 giftmap_panel.proxies.append(NodePath("../QPanel"))
136 giftmap_parent.add_child.call_deferred(q_panel)
137
138 var q_wpl = wpl_prefab.instantiate()
139 q_wpl.name = "QWpl"
140 q_wpl.exit = "the_crystalline"
141 q_wpl.senders.append(NodePath("../QPanel"))
142 giftmap_parent.add_child.call_deferred(q_wpl)
143
115 giftmap_parent.add_child.call_deferred(giftmap_panel) 144 giftmap_parent.add_child.call_deferred(giftmap_panel)
116 145
146 var giftmap_tpl = tpl_prefab.instantiate()
147 giftmap_tpl.name = "PanelTeleporter"
148 giftmap_tpl.teleport_point = Vector3(33.5, 1, 5.5)
149 giftmap_tpl.teleport_rotate = Vector3(-45, 0, 0)
150 giftmap_tpl.target_path = giftmap_panel
151 giftmap_tpl.senders.append(
152 NodePath("/root/scene/Components/Listeners/unlockReaderListenerDoubles")
153 )
154 giftmap_parent.add_child.call_deferred(giftmap_tpl)
155
117 # Add the strict purple ending validation. 156 # Add the strict purple ending validation.
118 if global.map == "the_sun_temple" and ap.strict_purple_ending: 157 if global.map == "the_sun_temple" and ap.strict_purple_ending:
119 var panel_prefab = preload("res://objects/nodes/panel.tscn") 158 var panel_prefab = preload("res://objects/nodes/panel.tscn")
@@ -222,6 +261,34 @@ func _ready():
222 var rte_trigger = get_node("/root/scene/Components/Warps/triggerArea") 261 var rte_trigger = get_node("/root/scene/Components/Warps/triggerArea")
223 rte_trigger.position.z = 0 262 rte_trigger.position.z = 0
224 263
264 # Add the mastery to Icarus.
265 if global.map == "icarus" and ap.enable_icarus:
266 var collectable_prefab = preload("res://objects/nodes/collectable.tscn")
267 var saver_prefab = preload("res://objects/nodes/saver.tscn")
268 var tpl_prefab = preload("res://objects/nodes/listeners/teleportListener.tscn")
269
270 var mastery = collectable_prefab.instantiate()
271 mastery.name = "collectable"
272 mastery.position = Vector3(0, -2000, 0)
273 mastery.unlock_type = "smiley"
274 mastery.material_override = load("res://assets/materials/gold.material")
275 get_node("/root/scene/Components/Collectables").add_child.call_deferred(mastery)
276
277 var tpl = tpl_prefab.instantiate()
278 tpl.teleport_point = Vector3(56.25, 0, -5.5)
279 tpl.teleport_rotate = Vector3(0, 0, 0)
280 tpl.target_path = mastery
281 tpl.name = "Teleport"
282 tpl.senderGroup.append(NodePath("/root/scene/Panels"))
283 tpl.nested = true
284 mastery.add_child.call_deferred(tpl)
285
286 var saver = saver_prefab.instantiate()
287 saver.name = "saver_collectables"
288 saver.type = "collectables"
289 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables"))
290 get_node("/root/scene").add_child.call_deferred(saver)
291
225 # Add the mastery to The Advanced. 292 # Add the mastery to The Advanced.
226 if global.map == "the_advanced": 293 if global.map == "the_advanced":
227 var collectable_prefab = preload("res://objects/nodes/collectable.tscn") 294 var collectable_prefab = preload("res://objects/nodes/collectable.tscn")
@@ -251,6 +318,52 @@ func _ready():
251 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables")) 318 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables"))
252 get_node("/root/scene").add_child.call_deferred(saver) 319 get_node("/root/scene").add_child.call_deferred(saver)
253 320
321 # Add the mastery to The Charismatic.
322 if global.map == "the_charismatic":
323 var collectable_prefab = preload("res://objects/nodes/collectable.tscn")
324 var saver_prefab = preload("res://objects/nodes/saver.tscn")
325
326 var mastery = collectable_prefab.instantiate()
327 mastery.name = "collectable"
328 mastery.position = Vector3(-17, 2, -29)
329 mastery.rotation_degrees = Vector3(0, 45, 0)
330 mastery.unlock_type = "smiley"
331 mastery.material_override = load("res://assets/materials/gold.material")
332 get_node("/root/scene/Components/Collectables").add_child.call_deferred(mastery)
333
334 var saver = saver_prefab.instantiate()
335 saver.name = "saver_collectables"
336 saver.type = "collectables"
337 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables"))
338 get_node("/root/scene").add_child.call_deferred(saver)
339
340 # Add the mastery to The Crystalline.
341 if global.map == "the_crystalline":
342 var collectable_prefab = preload("res://objects/nodes/collectable.tscn")
343 var saver_prefab = preload("res://objects/nodes/saver.tscn")
344 var tpl_prefab = preload("res://objects/nodes/listeners/teleportListener.tscn")
345
346 var mastery = collectable_prefab.instantiate()
347 mastery.name = "collectable"
348 mastery.position = Vector3(0, 13, 37)
349 mastery.unlock_type = "smiley"
350 mastery.material_override = load("res://assets/materials/gold.material")
351 get_node("/root/scene/Components/Collectables").add_child.call_deferred(mastery)
352
353 var tpl = tpl_prefab.instantiate()
354 tpl.teleport_point = Vector3(0, 11.5, -20)
355 tpl.teleport_rotate = Vector3(0, 0, 180)
356 tpl.target_path = mastery
357 tpl.name = "Teleport"
358 tpl.senders.append(NodePath("/root/scene/Panels/Room_1/panel_3"))
359 mastery.add_child.call_deferred(tpl)
360
361 var saver = saver_prefab.instantiate()
362 saver.name = "saver_collectables"
363 saver.type = "collectables"
364 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables"))
365 get_node("/root/scene").add_child.call_deferred(saver)
366
254 ap.update_job_well_done_sign() 367 ap.update_job_well_done_sign()
255 368
256 # Set up door locations. 369 # Set up door locations.