# Lingo Archipelago Client [Archipelago](https://archipelago.gg/) is an open-source project that supports randomizing a number of different games and combining them into one cooperative experience. Items from each game are hidden in other games. For more information about Archipelago, you can look at their website. This is a project that modifies the game [Lingo](https://lingothegame.com/) so that it can be played as part of an Archipelago multiworld game. ## Installation The Lingo Archipelago client is available on [Steam Workshop](https://steamcommunity.com/sharedfiles/filedetails/?id=3092505110). If you click Subscribe on that page, Lingo will automatically download the map, and it will download any updates as they are posted. If you don't want to / can't use Steam Workshop, you can install the mod manually: 1. Download the Lingo Archipelago Randomizer from [the releases page](https://code.fourisland.com/lingo-archipelago/about/CHANGELOG.md). 2. Open up Lingo, go to settings, and click View Game Data. This should open up a folder in Windows Explorer. 3. Unzip the randomizer into the "maps" folder. You may need to create the "maps" folder if you have not played a custom Lingo map before. 4. Installation complete! You may have to click Return to go back to the main menu and then click Settings again in order to get the randomizer to show up in the level selection list. ## Joining a Multiworld game 1. Launch Lingo 2. Click on Settings, and then Level. Choose Archipelago from the list. 3. Start a new game. Leave the name field blank (anything you type in will be ignored). 4. Enter the Archipelago address, slot name, and password into the fields. 5. Press Connect. 6. Enjoy! To continue an earlier game, you can perform the exact same steps as above. You do not have to re-select Archipelago in the level selection screen if you were using Archipelago the last time you launched the game. In order to play the base game again, simply return to the level selection screen and choose Level 1 (or whatever else you want to play). The randomizer will not affect gameplay unless you launch it by starting a new game while it is selected in the level selection screen, so it is safe to play the game normally while the client is installed. **Note**: Running the randomizer modifies the game's memory. If you want to play the base game after playing the randomizer, you need to restart Lingo first. ## Running from source If you are not testing local changes to the source code, skip this section and read the Installation section instead. The randomizer is almost ready to run from source. The only step that is required is to compile the gamedata.gd file, which is generated from the [LL1.yaml](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/lingo/data/LL1.yaml) and [ids.yaml](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/lingo/data/ids.yaml) datafiles from the Archipelago source tree. The generate_gamedata.rb script in the util folder can do this for you. The first argument is the path to the LL1.yaml datafile, the second is the path to the ids.yaml datafile, and the third argument is the path to the output file. ## Features There are a couple of modes of randomization currently available, and you can pick and choose which ones you would like to use. - **Door shuffle**: There are many doors in the game, which are opened by completing a set of panels. With door shuffle on, the doors become items and only open up once you receive the corresponding item. The panel sets that would ordinarily open the doors become locations. - **Color shuffle**: There are ten different colours of puzzle in the game, each representing a different mechanic. With color shuffle on, you would start with only access to white puzzles. Puzzles of other colours will require you to receive an item in order to solve them (e.g. you can't solve any red puzzles until you receive the "Red" item). - **Panel shuffle**: Panel shuffling replaces the puzzles on each panel with different ones. So far, the only mode of panel shuffling is "rearrange" mode, which simply shuffles the already-existing puzzles from the base game onto dif
extends "res://scripts/panelInput.gd"


func uncomplete():
	global._print("Filtered out panel uncompletion")


func grab_focus():
	.grab_focus()

	var effects_node = get_tree().get_root().get_node("Spatial/AP_Effects")
	effects_node.show_puzzle_skip_message(get_path())


func release_focus():
	.release_focus()

	var effects_node = get_tree().get_root().get_node("Spatial/AP_Effects")
	effects_node.hide_puzzle_skip_message()


func complete():
	.complete()

	var effects_node = get_tree().get_root().get_node("Spatial/AP_Effects")
	effects_node.hide_puzzle_skip_message()