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.gd102
2 files changed, 104 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..8aee21a 100644 --- a/apworld/client/player.gd +++ b/apworld/client/player.gd
@@ -113,6 +113,34 @@ 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
116 giftmap_parent.add_child.call_deferred(giftmap_panel) 144 giftmap_parent.add_child.call_deferred(giftmap_panel)
117 145
118 var giftmap_tpl = tpl_prefab.instantiate() 146 var giftmap_tpl = tpl_prefab.instantiate()
@@ -233,6 +261,34 @@ func _ready():
233 var rte_trigger = get_node("/root/scene/Components/Warps/triggerArea") 261 var rte_trigger = get_node("/root/scene/Components/Warps/triggerArea")
234 rte_trigger.position.z = 0 262 rte_trigger.position.z = 0
235 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
236 # Add the mastery to The Advanced. 292 # Add the mastery to The Advanced.
237 if global.map == "the_advanced": 293 if global.map == "the_advanced":
238 var collectable_prefab = preload("res://objects/nodes/collectable.tscn") 294 var collectable_prefab = preload("res://objects/nodes/collectable.tscn")
@@ -262,6 +318,52 @@ func _ready():
262 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables")) 318 saver.senderGroup.append(NodePath("/root/scene/Components/Collectables"))
263 get_node("/root/scene").add_child.call_deferred(saver) 319 get_node("/root/scene").add_child.call_deferred(saver)
264 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
265 ap.update_job_well_done_sign() 367 ap.update_job_well_done_sign()
266 368
267 # Set up door locations. 369 # Set up door locations.