extends "res://scripts/load.gd"
func _load():
global._print("Hooked Load Start")
var apclient = global.get_node("Archipelago")
# Override the YOU panel with the AP slot name.
if self.get_node_or_null("Panels/Color Arrow Room/Panel_you") != null:
self.get_node("Panels/Color Arrow Room/Panel_you").answer = apclient.ap_user
for node in get_tree().get_nodes_in_group("text_you"):
if "text" in node:
node.text = apclient.ap_user
elif "value" in node:
node.value = apclient.ap_user
for node in get_tree().get_nodes_in_group("answer_you"):
if "answer" in node:
node.answer = apclient.ap_user
# This is the best time to create the location nodes, since the map is now
# loaded but the panels haven't been solved from the save file yet.
var panels_parent = self.get_node("Panels")
var location_script = ResourceLoader.load("user://maps/Archipelago/location.gd")
for location_name in apclient._location_name_to_id:
var location = location_script.new()
location.ap_name = location_name
location.ap_id = apclient._location_name_to_id[location_name]
location.name = "AP_location_" + location.ap_id
self.add_child(location)
var panels = apclient._panel_ids_by_location[String(location.ap_id)]
location.total = panels.size()
for panel in panels:
var that_panel = panels_parent.get_node(panel)
that_panel.get_node("Viewport/GUI/Panel/TextEdit").connect(
"answer_correct", location, "handle_correct"
)
# Attach a script to every panel so that we can do things like conditionally
# disable them.
var gamedata = apclient.get_node("Gamedata")
var panel_script = ResourceLoader.load("user://maps/Archipelago/panel.gd")
for panel in gamedata.panels:
var panel_node = panels_parent.get_node(panel["id"])
var script_instance = panel_script.new()
script_instance.name = "AP_Panel"
script_instance.data = panel
panel_node.add_child(script_instance)
apclient.connect("evaluate_solvability", script_instance, "evaluate_solvability")
# Hook up the goal panel.
if apclient._victory_condition == 1:
var the_master = self.get_node("Panels/Countdown Panels/Panel_master_master")
the_master.get_node("Viewport/GUI/Panel/TextEdit").connect(
"answer_correct", apclient, "completedGoal"
)
else:
var the_end = self.get_node("Decorations/EndPanel/Panel_end_end")
the_end.get_node("Viewport/GUI/Panel/TextEdit").connect(
"answer_correct", apclient, "completedGoal"
)
# Create the messages node.
var messages_script = ResourceLoader.load("user://maps/Archipelago/messages.gd")
var messages = messages_script.new()
messages.set_name("AP_Messages")
self.add_child(messages)
# Proceed with the rest of the load.
global._print("Hooked Load End")
._load()
# Process any items received while the map was loading, and send the checks
# from the save load.
apclient.mapFinishedLoading()
3e83cd'>data/maps/the_shop/doors.txtpb
blob: 53626149ac4248658fd2ad949579846c410580fc (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
doors {
name: "Books Puzzles"
type: LOCATION_ONLY
panels { room: "Main Area" name: "DUCKS" }
panels { room: "Main Area" name: "BREAK" }
panels { room: "Main Area" name: "LIGHTNING" }
panels { room: "Main Area" name: "BRAIN" }
panels { room: "Main Area" name: "STONE" }
panels { room: "Main Area" name: "MUTANT" }
panels { room: "Main Area" name: "DAY" }
panels { room: "Main Area" name: "CARNIVAL" }
panels { room: "Main Area" name: "LARKS" }
panels { room: "Main Area" name: "COBRAS" }
panels { room: "Main Area" name: "STIM" }
panels { room: "Main Area" name: "ALIVE" }
location_room: "Main Area"
}
doors {
name: "Games Puzzles"
type: LOCATION_ONLY
panels { room: "Main Area" name: "BALD" }
panels { room: "Main Area" name: "FENCE" }
panels { room: "Main Area" name: "LIFE" }
panels { room: "Main Area" name: "POOL" }
panels { room: "Main Area" name: "CARDS" }
panels { room: "Main Area" name: "CIRCUS" }
panels { room: "Main Area" name: "DRESS" }
panels { room: "Main Area" name: "BLOCK" }
panels { room: "Main Area" name: "STAB" }
panels { room: "Main Area" name: "TADPOLES" }
location_room: "Main Area"
}
doors {
name: "N Entered"
type: EVENT
keyholders { room: "Main Area" name: "N" key: "n" }
}
|