diff options
Diffstat (limited to 'apworld/client')
| -rw-r--r-- | apworld/client/manager.gd | 2 | ||||
| -rw-r--r-- | apworld/client/player.gd | 156 |
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] | |||
| 64 | var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2 | 64 | var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2 |
| 65 | var daedalus_roof_access = false | 65 | var daedalus_roof_access = false |
| 66 | var enable_gift_maps = [] | 66 | var enable_gift_maps = [] |
| 67 | var enable_icarus = false | ||
| 67 | var keyholder_sanity = false | 68 | var keyholder_sanity = false |
| 68 | var port_pairings = {} | 69 | var port_pairings = {} |
| 69 | var shuffle_control_center_colors = false | 70 | var 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. |
