From 10c762e26e430e0ec9509521380abe9bf8955aea Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 24 Oct 2025 12:35:24 -0400 Subject: The Stellar is playable now --- apworld/client/player.gd | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ apworld/player_logic.py | 2 ++ 2 files changed, 56 insertions(+) diff --git a/apworld/client/player.gd b/apworld/client/player.gd index 8aee21a..789d1b7 100644 --- a/apworld/client/player.gd +++ b/apworld/client/player.gd @@ -141,6 +141,37 @@ func _ready(): q_wpl.senders.append(NodePath("../QPanel")) giftmap_parent.add_child.call_deferred(q_wpl) + if ap.enable_gift_maps.has("The Stellar"): + var hatkirby_panel = panel_prefab.instantiate() + hatkirby_panel.name = "HatkirbyPanel" + hatkirby_panel.answer = "hatkirby" + hatkirby_panel.position = Vector3(33.5, -230, 5.5) + giftmap_panel.proxies.append(NodePath("../HatkirbyPanel")) + giftmap_parent.add_child.call_deferred(hatkirby_panel) + + var kirby_panel = panel_prefab.instantiate() + kirby_panel.name = "KirbyPanel" + kirby_panel.answer = "kirby" + kirby_panel.position = Vector3(33.5, -240, 5.5) + giftmap_panel.proxies.append(NodePath("../KirbyPanel")) + giftmap_parent.add_child.call_deferred(kirby_panel) + + var star_panel = panel_prefab.instantiate() + star_panel.name = "StarPanel" + star_panel.answer = "star" + star_panel.position = Vector3(33.5, -250, 5.5) + giftmap_panel.proxies.append(NodePath("../StarPanel")) + giftmap_parent.add_child.call_deferred(star_panel) + + var stellar_wpl = wpl_prefab.instantiate() + stellar_wpl.name = "StellarWpl" + stellar_wpl.exit = "the_stellar" + stellar_wpl.senders.append(NodePath("../HatkirbyPanel")) + stellar_wpl.senders.append(NodePath("../KirbyPanel")) + stellar_wpl.senders.append(NodePath("../StarPanel")) + stellar_wpl.complete_at = 1 + giftmap_parent.add_child.call_deferred(stellar_wpl) + giftmap_parent.add_child.call_deferred(giftmap_panel) var giftmap_tpl = tpl_prefab.instantiate() @@ -364,6 +395,29 @@ func _ready(): saver.senderGroup.append(NodePath("/root/scene/Components/Collectables")) get_node("/root/scene").add_child.call_deferred(saver) + # Add the mastery to The Stellar. + if global.map == "the_stellar": + var collectable_prefab = preload("res://objects/nodes/collectable.tscn") + var saver_prefab = preload("res://objects/nodes/saver.tscn") + + var collectables = Node.new() + collectables.name = "Collectables" + + var mastery = collectable_prefab.instantiate() + mastery.name = "collectable" + mastery.position = Vector3(2, 2, -31) + mastery.rotation_degrees = Vector3(0, 90, 0) + mastery.unlock_type = "smiley" + mastery.material_override = load("res://assets/materials/gold.material") + collectables.add_child.call_deferred(mastery) + get_node("/root/scene/Components").add_child.call_deferred(collectables) + + 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 5f4f1d7..67365b7 100644 --- a/apworld/player_logic.py +++ b/apworld/player_logic.py @@ -241,6 +241,8 @@ class Lingo2PlayerLogic: 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 + elif game_map.name == "the_stellar": + return "The Stellar" in world.options.enable_gift_maps.value return False -- cgit 1.4.1