From 8b1edac5dbc3a5524fe0317102d6ba30623f2111 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 23 Oct 2025 15:43:20 -0400 Subject: Add a mastery to Icarus --- apworld/client/manager.gd | 2 ++ apworld/client/player.gd | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) (limited to 'apworld/client') 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] var cyan_door_behavior = kCYAN_DOOR_BEHAVIOR_H2 var daedalus_roof_access = false var enable_gift_maps = [] +var enable_icarus = false var keyholder_sanity = false var port_pairings = {} var shuffle_control_center_colors = false @@ -441,6 +442,7 @@ func _client_connected(slot_data): cyan_door_behavior = int(slot_data.get("cyan_door_behavior", 0)) daedalus_roof_access = bool(slot_data.get("daedalus_roof_access", false)) enable_gift_maps = slot_data.get("enable_gift_maps", []) + enable_icarus = bool(slot_data.get("enable_icarus", false)) keyholder_sanity = bool(slot_data.get("keyholder_sanity", false)) shuffle_control_center_colors = bool(slot_data.get("shuffle_control_center_colors", false)) shuffle_doors = bool(slot_data.get("shuffle_doors", false)) diff --git a/apworld/client/player.gd b/apworld/client/player.gd index 9aac5a6..8aee21a 100644 --- a/apworld/client/player.gd +++ b/apworld/client/player.gd @@ -261,6 +261,34 @@ func _ready(): var rte_trigger = get_node("/root/scene/Components/Warps/triggerArea") rte_trigger.position.z = 0 + # Add the mastery to Icarus. + if global.map == "icarus" and ap.enable_icarus: + var collectable_prefab = preload("res://objects/nodes/collectable.tscn") + var saver_prefab = preload("res://objects/nodes/saver.tscn") + var tpl_prefab = preload("res://objects/nodes/listeners/teleportListener.tscn") + + var mastery = collectable_prefab.instantiate() + mastery.name = "collectable" + mastery.position = Vector3(0, -2000, 0) + mastery.unlock_type = "smiley" + mastery.material_override = load("res://assets/materials/gold.material") + get_node("/root/scene/Components/Collectables").add_child.call_deferred(mastery) + + var tpl = tpl_prefab.instantiate() + tpl.teleport_point = Vector3(56.25, 0, -5.5) + tpl.teleport_rotate = Vector3(0, 0, 0) + tpl.target_path = mastery + tpl.name = "Teleport" + tpl.senderGroup.append(NodePath("/root/scene/Panels")) + tpl.nested = true + mastery.add_child.call_deferred(tpl) + + var saver = saver_prefab.instantiate() + saver.name = "saver_collectables" + saver.type = "collectables" + saver.senderGroup.append(NodePath("/root/scene/Components/Collectables")) + get_node("/root/scene").add_child.call_deferred(saver) + # Add the mastery to The Advanced. if global.map == "the_advanced": var collectable_prefab = preload("res://objects/nodes/collectable.tscn") -- cgit 1.4.1