# lingo-ap-tracker Releases ## v0.10.4 - 2024-07-01 - Compatibility update for Archipelago 0.5.0 Download: [lingo-ap-tracker-v0.10.4-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.10.4-win64.zip)
Source: [v0.10.4](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.10.4) ## v0.10.3 - 2024-06-10 - Fixed crash that occurred when the Eye Wall painting was in your painting mapping. - Fixed getting bombarded with message boxes when the tracker crashes. - Moved early color hallways painting to match the new in-game location. Download: [lingo-ap-tracker-v0.10.3-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.10.3-win64.zip)
Source: [v0.10.3](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.10.3) ## v0.10.2 - 2024-06-09 - Fixed intermittent reachability detection issue. - Increased debug logging. Download: [lingo-ap-tracker-v0.10.2-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.10.2-win64.zip)
Source: [v0.10.2](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.10.2) ## v0.10.1 - 2024-06-08 - Fixed display not updating when game state changes. - Fixed broken reachability calculation. Download: [lingo-ap-tracker-v0.10.1-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.10.1-win64.zip)
Source: [v0.10.1](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.10.1) ## v0.10.0 - 2024-06-06 - Added a subway map tab to the tracker. This displays the topology of the game, along with all of the doors, paintings, sunwarps, and regular warps. It can show you whether doors are open or closed, and you can hover over them to see what's needed to open them. You can also hover over paintings, sunwarps, and regular warps to see what they're connected to. Thanks to Kinrah for creating the image! - When playing on painting shuffle, the tracker will no longer automatically take your painting mapping into consideration. Instead, unchecked paintings will show up in the regular map tab as if they were unchecked locations. Looking into a painting in-game marks it as checked in the tracker, and if the painting goes somewhere, the tracker will record that and recalculate your reachable areas accordingly. v3.1.0 or later of the client is required for this to work. Download: [lingo-ap-tracker-v0.10.0-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.10.0-win64.zip)
Source: [v0.10.0](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.10.0) ## v0.9.2 - 2024-06-04 - Updated apclient and dependencies. Download: [lingo-ap-tracker-v0.9.2-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.9.2-win64.zip)
Source: [v0.9.2](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.9.2) ## v0.9.1 - 2024-05-15 - Fixed pilgrimage detection when sunwarp shuffle is on. Download: [lingo-ap-tracker-v0.9.1-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.9.1-win64.zip)
Source: [v0.9.1](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.9.1) ## v0.9.0 - 2024-04-22 - Compatibility update for Archipelago 0.4.6 Download: [lingo-ap-tracker-v0.9.0-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.9.0-win64.zip)
Source: [v0.9.0](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.9.0) ## v0.8.0 - 2024-04-03 - Added ability to display the player's position on the map (requires v2.1.0 of the client). Download: [lingo-ap-tracker-v0.8.0-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.8.0-win64.zip)
Source: [v0.8.0](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.8.0) ## v0.7.1 - 2024-04-01 - Fixed an issue where door groups in simple doors mode would be ignored. Download: [lingo-ap-tracker-v0.7.1-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.7.1-win64.zip)
Source: [v0.7.1](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.7.1) ## v0.7.0 - 2024-04-01 - Compatibility update for Archipelago 0.4.5 Download: [lingo-ap-tracker-v0.7.0-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.7.0-win64.zip)
Source: [v0.7.0](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.7.0) ## Initial Testing: v0.6.6 - 2024-03-07 - The last five connections are now saved in a list so that you can easily switch between concurrent multiworlds. Download: [lingo-ap-tracker-v0.6.6-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.6.6-win64.zip)
Source: [v0.6.6](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.6.6) ## Initial Testing: v0.6.5 - 2024-02-18 - Victory condition will now be checked off when the player reaches the goal. Download: [lingo-ap-tracker-v0.6.5-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.6.5-win64.zip)
Source: [v0.6.5](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.6.5) ## Initial Testing: v0.6.4 - 2024-01-27 - Fixed issue where area pop
extends Spatial


func _ready():
	# Undo the load screen removing our cursor
	get_tree().get_root().set_disable_input(false)
	Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)

	# Create the global AP client, if it doesn't already exist.
	if not global.has_node("Archipelago"):
		var apclient = ResourceLoader.load("user://maps/Archipelago/client.gd")
		var apclient_instance = apclient.new()
		apclient_instance.name = "Archipelago"
		global.add_child(apclient_instance)

		# Let's also inject any scripts we need to inject now.
		installScriptExtension("user://maps/Archipelago/doorControl.gd")
		installScriptExtension("user://maps/Archipelago/load.gd")
		installScriptExtension("user://maps/Archipelago/painting_eye.gd")

	global.get_node("Archipelago").connect("client_connected", self, "connectionSuccessful")

	# Populate textboxes with AP settings.
	self.get_node("Panel/server_box").text = global.get_node("Archipelago").ap_server
	self.get_node("Panel/player_box").text = global.get_node("Archipelago").ap_user
	self.get_node("Panel/password_box").text = global.get_node("Archipelago").ap_pass


# Adapted from https://gitlab.com/Delta-V-Modding/Mods/-/blob/main/game/ModLoader.gd
func installScriptExtension(childScriptPath: String):
	var childScript = ResourceLoader.load(childScriptPath)

	# Force Godot to compile the script now.
	# We need to do this here to ensure that the inheritance chain is
	# properly set up, and multiple mods can chain-extend the same
	# class multiple times.
	# This is also needed to make Godot instantiate the extended class
	# when creating singletons.
	# The actual instance is thrown away.
	childScript.new()

	var parentScript = childScript.get_base_script()
	var parentScriptPath = parentScript.resource_path
	global._print(
		"ModLoader: Installing script extension: %s <- %s" % [parentScriptPath, childScriptPath]
	)
	childScript.take_over_path(parentScriptPath)


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

	# Switch to LL1
	Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
	global.map = "level1"
	global.save_file = apclient.getSaveFileName()
	var _discard = get_tree().change_scene("res://scenes/load_screen.tscn")