extends "res://scripts/load.gd" func _load(): global._print("Hooked Load Start") var randomizer = global.get_node("Randomizer") var panels_parent = $Panels # Hide the countdown true panels. for child in $CountdownPanels.get_children(): if child.is_class("Spatial"): child.get_node(child.replace_with).translation.y -= 100.0 # Create "The Wanderer". set_gridmap_tile(-4.5, 6.5, 56.5, "MeshInstance4") set_gridmap_tile(-3.5, 6.5, 56.5, "MeshInstance18") set_gridmap_tile(-3.5, 6.5, 57.5, "MeshInstance5") var door_scene = load("res://nodes/door.tscn") var door_script = load("res://scripts/doorControl.gd") var wanderer_entrance = door_scene.instance() wanderer_entrance.name = "Door_wanderer_entrance" wanderer_entrance.translation = Vector3(7.5, 5, 53) wanderer_entrance.rotation = Vector3(0, -PI / 2, 0) wanderer_entrance.scale = Vector3(1, 1.5, 1) wanderer_entrance.set_script(door_script) wanderer_entrance.panels.append("../../../Panels/Tower Room/Panel_wanderlust_1234567890") get_node("Doors/Tower Room Area Doors").add_child(wanderer_entrance) var wanderer_achieve = get_node("Panels/Tower Room/Panel_1234567890_wanderlust") wanderer_achieve.get_parent().remove_child(wanderer_achieve) get_node("Panels/Countdown Panels").add_child(wanderer_achieve) var countdown_scene = load("res://nodes/panel_countdown.tscn") var wanderer_cdp = countdown_scene.instance() wanderer_cdp.name = "CountdownPanel_wanderer" wanderer_cdp.panels = [ "../../Panels/Tower Room/Panel_wanderlust_1234567890", "../../Panels/Orange Room/Panel_lust", "../../Panels/Orange Room/Panel_read", "../../Panels/Orange Room/Panel_sew", "../../Panels/Orange Room/Panel_dead", "../../Panels/Orange Room/Panel_learn", "../../Panels/Orange Room/Panel_dust", "../../Panels/Orange Room/Panel_star", "../../Panels/Orange Room/Panel_wander" ] wanderer_cdp.translation = wanderer_achieve.translation wanderer_cdp.rotation = wanderer_achieve.rotation get_node("CountdownPanels").add_child(wanderer_cdp) wanderer_achieve.translation = Vector3(-51, -33, 35) # way under the map # Apply the randomized panels. randomizer.generator.apply(self) # Write static panels. set_static_panel("Entry Room/Panel_hi_hi", "hi") if randomizer.generator.is_set_seed: set_static_panel("Entry Room/Panel_write_write", "set seed") else: set_static_panel("Entry Room/Panel_write_write", "random seed") set_static_panel("Entry Room/Panel_same_same", str(randomizer.generator.gen_seed)) set_static_panel("Entry Room/Panel_type_type", "version") set_static_panel("Entry Room/Panel_this_this", randomizer.my_version) set_static_panel("Entry Room/Panel_hi_high", "goode", "good") set_static_panel("Entry Room/Panel_low_low", "serendipity", "luck") set_static_panel("Shuffle Room/Panel_secret_secret", "trans rights", "human rights") set_static_panel("Color Arrow Room/Panel_me", "me", "hatkirby") # HOT CRUSTS should be at eye-level, have a yellow block behind it, and # not vanish when solved. var hotcrusts = panels_parent.get_node("Shuffle Room/Panel_shortcuts") hotcrusts.translation.y = 1.5 hotcrusts.get_node("Viewport/GUI/Panel/TextEdit").disconnect( "answer_correct", hotcrusts, "handle_correct" ) set_gridmap_tile(-20.5, 1.5, -79.5, "MeshInstance9") # TRANS RIGHTS should be bottom white, like it used to be. var trans_rights = panels_parent.get_node("Shuffle Room/Panel_secret_secret") trans_rights.translation.y = 0.5 # Move LOW/LOW back to where it used to be. var panel_low = panels_parent.get_node("Entry Room/Panel_low_low") var sign_low = $Decorations/PanelSign/sign21 panel_low.translation = sign_low.translation panel_low.rotation = sign_low.rotation sign_low.queue_free() # Require LOW/LOW for opening the second door. get_node("Doors/Entry Room Area Doors/Door_hi_high").panels.append( "../../../Panels/Entry Room/Panel_low_low" ) get_node("Doors/Entry Room Area Doors/Door_hi_high")._ready() # Finish up with The Wanderer. wanderer_achieve.achieved_text = "the wanderer" wanderer_cdp.replace_with = "../../Panels/Countdown Panels/Panel_1234567890_wanderlust" get_node("Doors/Tower Room Area Doors/Door_wanderlust_start").panels = [ "../../../Panels/Countdown Panels/Panel_1234567890_wanderlust" ] # Make stack/double puzzles into proxies. var proxyscript = load("res://scripts/panelProxy.gd") var extradata_proxies = randomizer.get_node("Extradata").proxies for truepanel in extradata_proxies: var proxies = extradata_proxies[truepanel] for proxypanel in proxies: var proxynode = panels_parent.get_node(proxypanel) var oldparent = proxynode.get_parent() oldparent.remove_child(proxynode) var oldtext = proxynode.text var oldanswer = proxynode.answer proxynode.set_script(proxyscript) proxynode.text = oldtext proxynode.answer = oldanswer proxynode.proxied_panels = ["../../%s" % truepanel] proxynode.exact_proxy = true proxynode.request_ready() oldparent.add_child(proxynode) # Proceed with the rest of the load. global._print("Hooked Load End") ._load() func set_static_panel(name, question, answer = ""): if answer == "": answer = question var node = self.get_node("Panels").get_node(name) node.text = question node.answer = answer func set_gridmap_tile(x, y, z, tile): var gridmap = self.get_node("GridMap") var mesh_library = gridmap.mesh_library var mapvec = gridmap.world_to_map(gridmap.to_local(Vector3(x, y, z))) gridmap.set_cell_item(mapvec.x, mapvec.y, mapvec.z, mesh_library.find_item_by_name(tile))