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" ) # Randomize the panels, if necessary. var rng = RandomNumberGenerator.new() rng.seed = apclient._slot_seed var gamedata = apclient.get_node("Gamedata") if apclient._panel_shuffle == apclient.kREARRANGE_PANELS: var panel_pools = {} for panel in gamedata.panels: if not panel_pools.has(panel["tag"]): panel_pools[panel["tag"]] = {} var pool = panel_pools[panel["tag"]] var subtag = "default" if panel.has("subtag"): subtag = panel["subtag"] if not pool.has(subtag): pool[subtag] = [] var panel_node = panels_parent.get_node(panel["id"]) pool[subtag].append( { "id": panel["id"], "hint": panel_node.text, "answer": panel_node.answer, "link": panel["link"] } ) for tag in panel_pools.keys(): if tag == "forbid": continue var pool = panel_pools[tag] for subtag in pool.keys(): pool[subtag].sort_custom(self, "sort_by_link") var count = pool[pool.keys()[0]].size() var iota = range(0, count) var order = [] while not iota.empty(): var i = rng.randi_range(0, iota.size() - 1) order.append(iota[i]) iota.remove(i) for subtag in pool.keys(): for i in range(0, count): var source = pool[subtag][i] var target = pool[subtag][order[i]] var target_panel_node = panels_parent.get_node(target["id"]) target_panel_node.text = source["hint"] target_panel_node.answer = source["answer"] # Handle our other static panels after panel randomization, so that the old # values can enter the pool, if necessary. set_static_panel("Entry Room/Panel_hi_hi", "hi") set_static_panel("Entry Room/Panel_write_write", "seed") set_static_panel("Entry Room/Panel_same_same", str(apclient._slot_seed)) set_static_panel("Entry Room/Panel_type_type", "victory") var victory_condition = "unknown" if apclient._victory_condition == apclient.kTHE_END: victory_condition = "the end" elif apclient._victory_condition == apclient.kTHE_MASTER: victory_condition = "the master" set_static_panel("Entry Room/Panel_this_this", victory_condition) set_static_panel("Entry Room/Panel_hidden_hidden", "hewwo") 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") # Randomize the paintings, if necessary. if apclient._painting_shuffle: var pd_script = ResourceLoader.load("user://maps/Archipelago/paintingdata.gd") var pd = pd_script.new() pd.set_name("AP_Paintings") self.add_child(pd) var all_paintings = pd.kALL_PAINTINGS var classes = {} for painting in apclient._paintings_mapping.values(): if not classes.has(painting): var i = rng.randi_range(0, all_paintings.size() - 1) var chosen = all_paintings[i] classes[paint
extends Button


func _ready():
	pass


func _connect_pressed():
	self.disabled = true

	var apclient = global.get_node("Archipelago")
	apclient.ap_server = self.get_parent().get_node("server_box").text
	apclient.ap_user = self.get_parent().get_node("player_box").text
	apclient.ap_pass = self.get_parent().get_node("password_box").text
	apclient.confusify_world = self.get_parent().get_node("confusing_box").pressed
	apclient.enable_multiplayer = self.get_parent().get_node("multiplayer_box").pressed
	apclient.saveSettings()

	apclient.connectToServer()


func _back_pressed():
	var apclient = global.get_node("Archipelago")
	apclient.disconnect_from_ap()

	fader._fade_start("main_menu")