func on_map_load(root): var ap = global.get_node("Archipelago") # Add the mastery to Icarus. if 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 usl_prefab = preload("res://objects/nodes/listeners/unlockSetterListener.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") root.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 usl = usl_prefab.instantiate() usl.name = "unlockSetterListenerMastery" usl.key = "icarus_mastery" usl.value = "unlocked" usl.senders.append(NodePath("/root/scene/Components/Collectables/collectable")) root.get_node("/root/scene/Components").add_child.call_deferred(usl) var saver = saver_prefab.instantiate() saver.name = "saver_collectables" saver.type = "collectables" saver.senderGroup.append(NodePath("/root/scene/Components/Collectables")) root.get_node("/root/scene").add_child.call_deferred(saver)