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)