diff options
Diffstat (limited to 'Archipelago/load.gd')
-rw-r--r-- | Archipelago/load.gd | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/Archipelago/load.gd b/Archipelago/load.gd index 76015e9..56991fb 100644 --- a/Archipelago/load.gd +++ b/Archipelago/load.gd | |||
@@ -18,6 +18,46 @@ func _load(): | |||
18 | if "answer" in node: | 18 | if "answer" in node: |
19 | node.answer = apclient.ap_user | 19 | node.answer = apclient.ap_user |
20 | 20 | ||
21 | # Create "The Wanderer". | ||
22 | set_gridmap_tile(-4.5, 6.5, 56.5, "MeshInstance4") | ||
23 | set_gridmap_tile(-3.5, 6.5, 56.5, "MeshInstance18") | ||
24 | set_gridmap_tile(-3.5, 6.5, 57.5, "MeshInstance5") | ||
25 | |||
26 | var door_scene = load("res://nodes/door.tscn") | ||
27 | var door_script = load("user://maps/Archipelago/doorControl.gd") | ||
28 | var wanderer_entrance = door_scene.instance() | ||
29 | wanderer_entrance.name = "Door_wanderer_entrance" | ||
30 | wanderer_entrance.translation = Vector3(7.5, 5, 53) | ||
31 | wanderer_entrance.rotation = Vector3(0, -PI / 2, 0) | ||
32 | wanderer_entrance.scale = Vector3(1, 1.5, 1) | ||
33 | wanderer_entrance.set_script(door_script) | ||
34 | wanderer_entrance.panels.append("../../../Panels/Tower Room/Panel_wanderlust_1234567890") | ||
35 | get_node("Doors/Tower Room Area Doors").add_child(wanderer_entrance) | ||
36 | |||
37 | var wanderer_achieve = get_node("Panels/Tower Room/Panel_1234567890_wanderlust") | ||
38 | wanderer_achieve.get_parent().remove_child(wanderer_achieve) | ||
39 | get_node("Panels/Countdown Panels").add_child(wanderer_achieve) | ||
40 | |||
41 | var countdown_scene = load("res://nodes/panel_countdown.tscn") | ||
42 | var wanderer_cdp = countdown_scene.instance() | ||
43 | wanderer_cdp.name = "CountdownPanel_wanderer" | ||
44 | wanderer_cdp.panels = [ | ||
45 | "../../Panels/Tower Room/Panel_wanderlust_1234567890", | ||
46 | "../../Panels/Orange Room/Panel_lust", | ||
47 | "../../Panels/Orange Room/Panel_read", | ||
48 | "../../Panels/Orange Room/Panel_sew", | ||
49 | "../../Panels/Orange Room/Panel_dead", | ||
50 | "../../Panels/Orange Room/Panel_learn", | ||
51 | "../../Panels/Orange Room/Panel_dust", | ||
52 | "../../Panels/Orange Room/Panel_star", | ||
53 | "../../Panels/Orange Room/Panel_wander" | ||
54 | ] | ||
55 | wanderer_cdp.translation = wanderer_achieve.translation | ||
56 | wanderer_cdp.rotation = wanderer_achieve.rotation | ||
57 | get_node("CountdownPanels").add_child(wanderer_cdp) | ||
58 | |||
59 | wanderer_achieve.translation = Vector3(-51, -33, 35) # way under the map | ||
60 | |||
21 | # This is the best time to create the location nodes, since the map is now | 61 | # This is the best time to create the location nodes, since the map is now |
22 | # loaded but the panels haven't been solved from the save file yet. | 62 | # loaded but the panels haven't been solved from the save file yet. |
23 | var panels_parent = self.get_node("Panels") | 63 | var panels_parent = self.get_node("Panels") |
@@ -129,6 +169,17 @@ func _load(): | |||
129 | set_static_panel("Entry Room/Panel_low_low", "serendipity", "luck") | 169 | set_static_panel("Entry Room/Panel_low_low", "serendipity", "luck") |
130 | set_static_panel("Shuffle Room/Panel_secret_secret", "trans rights", "human rights") | 170 | set_static_panel("Shuffle Room/Panel_secret_secret", "trans rights", "human rights") |
131 | 171 | ||
172 | # Finish up with The Wanderer. | ||
173 | wanderer_achieve.text = "12345656" | ||
174 | wanderer_achieve.answer = "the wanderer" | ||
175 | wanderer_achieve.achieved_text = "the wanderer" | ||
176 | |||
177 | wanderer_cdp.replace_with = "../../Panels/Countdown Panels/Panel_1234567890_wanderlust" | ||
178 | |||
179 | get_node("Doors/Tower Room Area Doors/Door_wanderlust_start").panels = [ | ||
180 | "../../../Panels/Countdown Panels/Panel_1234567890_wanderlust" | ||
181 | ] | ||
182 | |||
132 | # Randomize the paintings, if necessary. | 183 | # Randomize the paintings, if necessary. |
133 | if apclient._painting_shuffle: | 184 | if apclient._painting_shuffle: |
134 | var pd_script = ResourceLoader.load("user://maps/Archipelago/paintingdata.gd") | 185 | var pd_script = ResourceLoader.load("user://maps/Archipelago/paintingdata.gd") |
@@ -293,6 +344,14 @@ func instantiate_painting(name, scene): | |||
293 | return mps_inst | 344 | return mps_inst |
294 | 345 | ||
295 | 346 | ||
347 | func set_gridmap_tile(x, y, z, tile): | ||
348 | var gridmap = self.get_node("GridMap") | ||
349 | var mesh_library = gridmap.mesh_library | ||
350 | var mapvec = gridmap.world_to_map(gridmap.to_local(Vector3(x, y, z))) | ||
351 | |||
352 | gridmap.set_cell_item(mapvec.x, mapvec.y, mapvec.z, mesh_library.find_item_by_name(tile)) | ||
353 | |||
354 | |||
296 | func archipelago_disconnected(reason): | 355 | func archipelago_disconnected(reason): |
297 | var messages_node = self.get_node("AP_Messages") | 356 | var messages_node = self.get_node("AP_Messages") |
298 | messages_node.show_message(reason) | 357 | messages_node.show_message(reason) |