From 52990b23285f981c92114f5da968163bb0715e03 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 23 Oct 2025 14:17:17 -0400 Subject: The Crystalline is playable now (sorry) --- apworld/client/player.gd | 41 +++++++++++++++++++++++++++++++++++++++++ apworld/player_logic.py | 2 ++ 2 files changed, 43 insertions(+) diff --git a/apworld/client/player.gd b/apworld/client/player.gd index 64672e7..9aac5a6 100644 --- a/apworld/client/player.gd +++ b/apworld/client/player.gd @@ -127,6 +127,20 @@ func _ready(): souvey_wpl.senders.append(NodePath("../SouveyPanel")) giftmap_parent.add_child.call_deferred(souvey_wpl) + if ap.enable_gift_maps.has("The Crystalline"): + var q_panel = panel_prefab.instantiate() + q_panel.name = "QPanel" + q_panel.answer = "q" + q_panel.position = Vector3(33.5, -220, 5.5) + giftmap_panel.proxies.append(NodePath("../QPanel")) + giftmap_parent.add_child.call_deferred(q_panel) + + var q_wpl = wpl_prefab.instantiate() + q_wpl.name = "QWpl" + q_wpl.exit = "the_crystalline" + q_wpl.senders.append(NodePath("../QPanel")) + giftmap_parent.add_child.call_deferred(q_wpl) + giftmap_parent.add_child.call_deferred(giftmap_panel) var giftmap_tpl = tpl_prefab.instantiate() @@ -295,6 +309,33 @@ func _ready(): saver.senderGroup.append(NodePath("/root/scene/Components/Collectables")) get_node("/root/scene").add_child.call_deferred(saver) + # Add the mastery to The Crystalline. + if global.map == "the_crystalline": + 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, 13, 37) + 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(0, 11.5, -20) + tpl.teleport_rotate = Vector3(0, 0, 180) + tpl.target_path = mastery + tpl.name = "Teleport" + tpl.senders.append(NodePath("/root/scene/Panels/Room_1/panel_3")) + 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) + ap.update_job_well_done_sign() # Set up door locations. diff --git a/apworld/player_logic.py b/apworld/player_logic.py index 52fc197..5f4f1d7 100644 --- a/apworld/player_logic.py +++ b/apworld/player_logic.py @@ -239,6 +239,8 @@ class Lingo2PlayerLogic: return "The Advanced" in world.options.enable_gift_maps.value elif game_map.name == "the_charismatic": return "The Charismatic" in world.options.enable_gift_maps.value + elif game_map.name == "the_crystalline": + return "The Crystalline" in world.options.enable_gift_maps.value return False -- cgit 1.4.1