about summary refs log tree commit diff stats
path: root/apworld/client
diff options
context:
space:
mode:
Diffstat (limited to 'apworld/client')
-rw-r--r--apworld/client/manager.gd2
-rw-r--r--apworld/client/player.gd156
2 files changed, 158 insertions, 0 deletions
diff --git a/apworld/client/manager.gd b/apworld/client/manager.gd index 91797b2..41ab648 100644 --- a/apworld/client/manager.gd +++ b/apworld/client/manager.gd
@@ -64,6 +64,7 @@ var apworld_version = [0, 0, 0]
64var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2 64var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2
65var daedalus_roof_access = false 65var daedalus_roof_access = false
66var enable_gift_maps = [] 66var enable_gift_maps = []
67var enable_icarus = false
67var keyholder_sanity = false 68var keyholder_sanity = false
68var port_pairings = {} 69var port_pairings = {}
69var shuffle_control_center_colors = false 70var shuffle_control_center_colors = false
@@ -441,6 +442,7 @@ func _client_connected(slot_data):
441 cyan_door_behavior = int(slot_data.get("cyan_door_behavior", 0)) 442 cyan_door_behavior = int(slot_data.get("cyan_door_behavior", 0))
442 daedalus_roof_access = bool(slot_data.get("daedalus_roof_access", false)) 443 daedalus_roof_access = bool(slot_data.get("daedalus_roof_access", false))
443 enable_gift_maps = slot_data.get("enable_gift_maps", []) 444 enable_gift_maps = slot_data.get("enable_gift_maps", [])
445 enable_icarus = bool(slot_data.get("enable_icarus", false))
444 keyholder_sanity = bool(slot_data.get("keyholder_sanity", false)) 446 keyholder_sanity = bool(slot_data.get("keyholder_sanity", false))
445 shuffle_control_center_colors = bool(slot_data.get("shuffle_control_center_colors", false)) 447 shuffle_control_center_colors = bool(slot_data.get("shuffle_control_center_colors", false))
446 shuffle_doors = bool(slot_data.get("shuffle_doors", false)) 448 shuffle_doors = bool(slot_data.get("shuffle_doors", false))
diff --git a/apworld/client/player.gd b/apworld/client/player.gd index 3858e53..789d1b7 100644 --- a/apworld/client/player.gd +++ b/apworld/client/player.gd
@@ -113,6 +113,65 @@ func _ready():
113 icely_wpl.senders.append(NodePath("../IcelyPanel")) 113 icely_wpl.senders.append(NodePath("../IcelyPanel"))
114 giftmap_parent.add_child.call_deferred(icely_wpl) 114 giftmap_parent.add_child.call_deferred(icely_wpl)
115 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
144 if ap.enable_gift_maps.has("The Stellar"):
145 var hatkirby_panel = panel_prefab.instantiate()
146 hatkirby_panel.name = "HatkirbyPanel"
147 hatkirby_panel.answer = "hatkirby"
148 hatkirby_panel.position = Vector3(33.5, -230, 5.5)
149 giftmap_panel.proxies.append(NodePath("../HatkirbyPanel"))
150 giftmap_parent.add_child.call_deferred(hatkirby_panel)
151
152 var kirby_panel = panel_prefab.instantiate()
153 kirby_panel.name = "KirbyPanel"
154 kirby_panel.answer = "kirby"
155 kirby_panel.position = Vector3(33.5, -240, 5.5)
156 giftmap_panel.proxies.append(NodePath("../KirbyPanel"))
157 giftmap_parent.add_child.call_deferred(kirby_panel)
158
159 var star_panel = panel_prefab.instantiate()
160 star_panel.name = "StarPanel"
161 star_panel.answer = "star"
162 star_panel.position = Vector3(33.5, -250, 5.5)
163 giftmap_panel.proxies.append(NodePath("../StarPanel"))
164 giftmap_parent.add_child.call_deferred(star_panel)
165
166 var stellar_wpl = wpl_prefab.instantiate()
167 stellar_wpl.name = "StellarWpl"
168 stellar_wpl.exit = "the_stellar"
169 stellar_wpl.senders.append(NodePath("../HatkirbyPanel"))
170 stellar_wpl.senders.append(NodePath("../KirbyPanel"))
171 stellar_wpl.senders.append(NodePath("../StarPanel"))
172 stellar_wpl.complete_at = 1
173 giftmap_parent.add_child.call_deferred(stellar_wpl)
174
116 giftmap_parent.add_child.call_deferred(giftmap_panel) 175 giftmap_parent.add_child.call_deferred(giftmap_panel)
117 176
118 var giftmap_tpl = tpl_prefab.instantiate() 177 var giftmap_tpl = tpl_prefab.instantiate()
@@ -233,6 +292,34 @@ func _ready():
233 var rte_trigger = get_node("/root/scene/Components/Warps/triggerArea") 292 var rte_trigger = get_node("/root/scene/Components/Warps/triggerArea")
234 rte_trigger.position.z = 0 293 rte_trigger.position.z = 0
235 294
295 # Add the mastery to Icarus.
296 if global.map == "icarus" and ap.enable_icarus:
297 var collectable_prefab = preload("res://objects/nodes/collectable.tscn")
298 var saver_prefab = preload("res://objects/nodes/saver.tscn")
299 var tpl_prefab = preload("res://objects/nodes/listeners/teleportListener.tscn")
300
301 var mastery = collectable_prefab.instantiate()
302 mastery.name = "collectable"
303 mastery.position = Vector3(0, -2000, 0)
304 mastery.unlock_type = "smiley"
305 mastery.material_override = load("res://assets/materials/gold.material")
306 get_node("/root/scene/Components/Collectables").add_child.call_deferred(mastery)
307
308 var tpl = tpl_prefab.instantiate()
309 tpl.teleport_point = Vector3(56.25, 0, -5.5)
310 tpl.teleport_rotate = Vector3(0, 0, 0)
311 tpl.target_path = mastery
312 tpl.name = "Teleport"
313 tpl.senderGroup.append(NodePath("/root/scene/Panels"))
314 tpl.nested = true
315 mastery.add_child.call_deferred(tpl)
316
317 var saver = saver_prefab.instantiate()
318 saver.name = "saver_collectables"
319 saver.type = "collectables"
320 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables"))
321 get_node("/root/scene").add_child.call_deferred(saver)
322
236 # Add the mastery to The Advanced. 323 # Add the mastery to The Advanced.
237 if global.map == "the_advanced": 324 if global.map == "the_advanced":
238 var collectable_prefab = preload("res://objects/nodes/collectable.tscn") 325 var collectable_prefab = preload("res://objects/nodes/collectable.tscn")
@@ -262,6 +349,75 @@ func _ready():
262 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables")) 349 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables"))
263 get_node("/root/scene").add_child.call_deferred(saver) 350 get_node("/root/scene").add_child.call_deferred(saver)
264 351
352 # Add the mastery to The Charismatic.
353 if global.map == "the_charismatic":
354 var collectable_prefab = preload("res://objects/nodes/collectable.tscn")
355 var saver_prefab = preload("res://objects/nodes/saver.tscn")
356
357 var mastery = collectable_prefab.instantiate()
358 mastery.name = "collectable"
359 mastery.position = Vector3(-17, 2, -29)
360 mastery.rotation_degrees = Vector3(0, 45, 0)
361 mastery.unlock_type = "smiley"
362 mastery.material_override = load("res://assets/materials/gold.material")
363 get_node("/root/scene/Components/Collectables").add_child.call_deferred(mastery)
364
365 var saver = saver_prefab.instantiate()
366 saver.name = "saver_collectables"
367 saver.type = "collectables"
368 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables"))
369 get_node("/root/scene").add_child.call_deferred(saver)
370
371 # Add the mastery to The Crystalline.
372 if global.map == "the_crystalline":
373 var collectable_prefab = preload("res://objects/nodes/collectable.tscn")
374 var saver_prefab = preload("res://objects/nodes/saver.tscn")
375 var tpl_prefab = preload("res://objects/nodes/listeners/teleportListener.tscn")
376
377 var mastery = collectable_prefab.instantiate()
378 mastery.name = "collectable"
379 mastery.position = Vector3(0, 13, 37)
380 mastery.unlock_type = "smiley"
381 mastery.material_override = load("res://assets/materials/gold.material")
382 get_node("/root/scene/Components/Collectables").add_child.call_deferred(mastery)
383
384 var tpl = tpl_prefab.instantiate()
385 tpl.teleport_point = Vector3(0, 11.5, -20)
386 tpl.teleport_rotate = Vector3(0, 0, 180)
387 tpl.target_path = mastery
388 tpl.name = "Teleport"
389 tpl.senders.append(NodePath("/root/scene/Panels/Room_1/panel_3"))
390 mastery.add_child.call_deferred(tpl)
391
392 var saver = saver_prefab.instantiate()
393 saver.name = "saver_collectables"
394 saver.type = "collectables"
395 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables"))
396 get_node("/root/scene").add_child.call_deferred(saver)
397
398 # Add the mastery to The Stellar.
399 if global.map == "the_stellar":
400 var collectable_prefab = preload("res://objects/nodes/collectable.tscn")
401 var saver_prefab = preload("res://objects/nodes/saver.tscn")
402
403 var collectables = Node.new()
404 collectables.name = "Collectables"
405
406 var mastery = collectable_prefab.instantiate()
407 mastery.name = "collectable"
408 mastery.position = Vector3(2, 2, -31)
409 mastery.rotation_degrees = Vector3(0, 90, 0)
410 mastery.unlock_type = "smiley"
411 mastery.material_override = load("res://assets/materials/gold.material")
412 collectables.add_child.call_deferred(mastery)
413 get_node("/root/scene/Components").add_child.call_deferred(collectables)
414
415 var saver = saver_prefab.instantiate()
416 saver.name = "saver_collectables"
417 saver.type = "collectables"
418 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables"))
419 get_node("/root/scene").add_child.call_deferred(saver)
420
265 ap.update_job_well_done_sign() 421 ap.update_job_well_done_sign()
266 422
267 # Set up door locations. 423 # Set up door locations.