From 452289b3b6247bb512b9353e0f2c6a9b7090be55 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Tue, 4 Nov 2025 14:56:04 -0500 Subject: Split map-specific initialization into separate files --- apworld/client/maps/the_entry.gd | 156 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 apworld/client/maps/the_entry.gd (limited to 'apworld/client/maps/the_entry.gd') diff --git a/apworld/client/maps/the_entry.gd b/apworld/client/maps/the_entry.gd new file mode 100644 index 0000000..3608bb3 --- /dev/null +++ b/apworld/client/maps/the_entry.gd @@ -0,0 +1,156 @@ +func on_map_load(root): + var ap = global.get_node("Archipelago") + + # Remove door behind X1. + var door_node = root.get_node("/root/scene/Components/Doors/exit_1") + door_node.handleTriggered() + + # Display win condition. + var sign_prefab = preload("res://objects/nodes/sign.tscn") + var sign1 = sign_prefab.instantiate() + sign1.position = Vector3(-7, 5, -15.01) + sign1.text = "victory" + root.get_node("/root/scene").add_child.call_deferred(sign1) + + var sign2 = sign_prefab.instantiate() + sign2.position = Vector3(-7, 4, -15.01) + sign2.text = "%s ending" % ap.kEndingNameByVictoryValue.get(ap.victory_condition, "?") + + var sign2_color = ap.kEndingNameByVictoryValue.get(ap.victory_condition, "coral").to_lower() + if sign2_color == "white": + sign2_color = "silver" + + sign2.material = load("res://assets/materials/%s.material" % sign2_color) + root.get_node("/root/scene").add_child.call_deferred(sign2) + + # Add the gift map entry panel if needed. + if not ap.enable_gift_maps.is_empty(): + var panel_prefab = preload("res://objects/nodes/panel.tscn") + var tpl_prefab = preload("res://objects/nodes/listeners/teleportListener.tscn") + var wpl_prefab = preload("res://objects/nodes/listeners/worldportListener.tscn") + + var giftmap_parent = Node.new() + giftmap_parent.name = "GiftMapEntrance" + root.get_node("/root/scene/Components").add_child.call_deferred(giftmap_parent) + + var symbolless_player = "" + for i in range(ap.client.ap_user.length()): + if "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".contains( + ap.client.ap_user[i] + ): + symbolless_player = symbolless_player + ap.client.ap_user[i].to_lower() + + var giftmap_panel = panel_prefab.instantiate() + giftmap_panel.name = "Panel" + giftmap_panel.position = Vector3(33.5, -190, 5.5) + giftmap_panel.rotation_degrees = Vector3(-45, 0, 0) + giftmap_panel.clue = "player" + giftmap_panel.answer = symbolless_player + + if ap.enable_gift_maps.has("The Advanced"): + var icely_panel = panel_prefab.instantiate() + icely_panel.name = "IcelyPanel" + icely_panel.answer = "icely" + icely_panel.position = Vector3(33.5, -200, 5.5) + giftmap_panel.proxies.append(NodePath("../IcelyPanel")) + giftmap_parent.add_child.call_deferred(icely_panel) + + var icely_wpl = wpl_prefab.instantiate() + icely_wpl.name = "IcelyWpl" + icely_wpl.exit = "the_advanced" + icely_wpl.senders.append(NodePath("../IcelyPanel")) + giftmap_parent.add_child.call_deferred(icely_wpl) + + if ap.enable_gift_maps.has("The Charismatic"): + var souvey_panel = panel_prefab.instantiate() + souvey_panel.name = "SouveyPanel" + souvey_panel.answer = "souvey" + souvey_panel.position = Vector3(33.5, -210, 5.5) + giftmap_panel.proxies.append(NodePath("../SouveyPanel")) + giftmap_parent.add_child.call_deferred(souvey_panel) + + var souvey_wpl = wpl_prefab.instantiate() + souvey_wpl.name = "SouveyWpl" + souvey_wpl.exit = "the_charismatic" + 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) + + if ap.enable_gift_maps.has("The Fuzzy"): + var gongus_panel = panel_prefab.instantiate() + gongus_panel.name = "GongusPanel" + gongus_panel.answer = "gongus" + gongus_panel.position = Vector3(33.5, -260, 5.5) + giftmap_panel.proxies.append(NodePath("../GongusPanel")) + giftmap_parent.add_child.call_deferred(gongus_panel) + + var kiwi_panel = panel_prefab.instantiate() + kiwi_panel.name = "KiwiPanel" + kiwi_panel.answer = "kiwi" + kiwi_panel.position = Vector3(33.5, -270, 5.5) + giftmap_panel.proxies.append(NodePath("../KiwiPanel")) + giftmap_parent.add_child.call_deferred(kiwi_panel) + + var fuzzy_wpl = wpl_prefab.instantiate() + fuzzy_wpl.name = "FuzzyWpl" + fuzzy_wpl.exit = "the_fuzzy" + fuzzy_wpl.senders.append(NodePath("../GongusPanel")) + fuzzy_wpl.senders.append(NodePath("../KiwiPanel")) + fuzzy_wpl.complete_at = 1 + giftmap_parent.add_child.call_deferred(fuzzy_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() + giftmap_tpl.name = "PanelTeleporter" + giftmap_tpl.teleport_point = Vector3(33.5, 1, 5.5) + giftmap_tpl.teleport_rotate = Vector3(-45, 0, 0) + giftmap_tpl.target_path = giftmap_panel + giftmap_tpl.senders.append( + NodePath("/root/scene/Components/Listeners/unlockReaderListenerDoubles") + ) + giftmap_parent.add_child.call_deferred(giftmap_tpl) -- cgit 1.4.1