diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2025-09-25 19:50:42 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2025-09-25 19:50:42 -0400 |
commit | d30a8e2ca351ba05d1b346e59feef6d098f75adf (patch) | |
tree | 9b79740df8cec5c6117869f9c149f86edf0a0e2c /client | |
parent | f0c59deb3bfa9189c2136ab3c494f8a5b452470b (diff) | |
download | lingo2-archipelago-d30a8e2ca351ba05d1b346e59feef6d098f75adf.tar.gz lingo2-archipelago-d30a8e2ca351ba05d1b346e59feef6d098f75adf.tar.bz2 lingo2-archipelago-d30a8e2ca351ba05d1b346e59feef6d098f75adf.zip |
Reorganized READMEs
Diffstat (limited to 'client')
-rw-r--r-- | client/CHANGELOG.md | 72 | ||||
-rw-r--r-- | client/README.md | 90 | ||||
-rw-r--r-- | client/archipelago.tscn | 167 |
3 files changed, 0 insertions, 329 deletions
diff --git a/client/CHANGELOG.md b/client/CHANGELOG.md deleted file mode 100644 index 4f210b0..0000000 --- a/client/CHANGELOG.md +++ /dev/null | |||
@@ -1,72 +0,0 @@ | |||
1 | # lingo2-archipelago Client Releases | ||
2 | |||
3 | ## v6.7 - 2025-09-19 | ||
4 | |||
5 | - Added a compass overlay. This makes it clearer which direction corresponds to | ||
6 | which compass direction, which is useful since many location/item names | ||
7 | reference compass directions. It can be enabled in the settings screen on the | ||
8 | pause menu. | ||
9 | - Compatability update for the changes in v6.6 of the apworld. | ||
10 | |||
11 | Download: | ||
12 | [lingo2-archipelago-client-v6.7.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v6.7.zip)<br/> | ||
13 | Source: | ||
14 | [v6.7](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v6.7) | ||
15 | |||
16 | ## v5.6 - 2025-09-17 | ||
17 | |||
18 | - Letter locations will no longer reappear after being collected. | ||
19 | - This also prevents a potential scenario in which it is impossible to access | ||
20 | the location "The Congruent - Obverse Yellow Puzzles" when door shuffle is | ||
21 | disabled. | ||
22 | |||
23 | Download: | ||
24 | [lingo2-archipelago-client-v5.6.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v5.6.zip)<br/> | ||
25 | Source: | ||
26 | [v5.6](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v5.6) | ||
27 | |||
28 | ## v5.5 - 2025-09-16 | ||
29 | |||
30 | - Compatability update for v5.5 of the apworld. | ||
31 | |||
32 | Download: | ||
33 | [lingo2-archipelago-client-v5.5.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v5.5.zip)<br/> | ||
34 | Source: | ||
35 | [v5.5](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v5.5) | ||
36 | |||
37 | ## v4.4 - 2025-09-13 | ||
38 | |||
39 | - Added support for anti-collectable trap items. | ||
40 | - Fixed entrance to The Jubilant not opening properly when using control center | ||
41 | color shuffle. | ||
42 | - Fixed the location "The Entry (Colored Doors Area) - OPEN" not sending. | ||
43 | - Fixed level 2 letters not activating properly when letter shuffle is set to | ||
44 | Item Cyan. | ||
45 | - Messages are now cleared out when returning to the main menu. | ||
46 | - The player is prevented from accidentally breaking roof access logic when | ||
47 | returning to Daedalus from Icarus. | ||
48 | |||
49 | Download: | ||
50 | [lingo2-archipelago-client-v4.4.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v4.4.zip)<br/> | ||
51 | Source: | ||
52 | [v4.4](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v4.4) | ||
53 | |||
54 | ## v3.3 - 2025-09-12 | ||
55 | |||
56 | - Fixed issue downloading large datapackages (such as TUNIC's). | ||
57 | - Connection failures now show error messages. | ||
58 | |||
59 | Download: | ||
60 | [lingo2-archipelago-client-v3.3.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v3.3.zip)<br/> | ||
61 | Source: | ||
62 | [v3.3](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v3.3) | ||
63 | |||
64 | ## v3.2 - 2025-09-12 | ||
65 | |||
66 | - Initial release for testing. Features include door shuffle, letter shuffle, | ||
67 | and symbol shuffle. | ||
68 | |||
69 | Download: | ||
70 | [lingo2-archipelago-client-v3.2.zip](https://files.fourisland.com/releases/lingo2-archipelago/client/lingo2-archipelago-client-v3.2.zip)<br/> | ||
71 | Source: | ||
72 | [v3.2](https://code.fourisland.com/lingo2-archipelago/tag/?h=client-v3.2) | ||
diff --git a/client/README.md b/client/README.md deleted file mode 100644 index 99589c5..0000000 --- a/client/README.md +++ /dev/null | |||
@@ -1,90 +0,0 @@ | |||
1 | # Lingo 2 Archipelago Client | ||
2 | |||
3 | The Lingo 2 Archipelago Client is a mod for Lingo 2 that allows you to connect | ||
4 | to an Archipelago Multiworld and randomize your game. | ||
5 | |||
6 | ## Installation | ||
7 | |||
8 | 1. Download the Lingo 2 Archipelago Randomizer from | ||
9 | [the releases page](https://code.fourisland.com/lingo2-archipelago/about/client/CHANGELOG.md). | ||
10 | 2. Open up Lingo 2, go to settings, and click View Game Data. This should open | ||
11 | up a folder in Windows Explorer. | ||
12 | 3. Unzip the randomizer into the "maps" folder. Ensure that archipelago.tscn and | ||
13 | the Archipelago folder are both within the maps folder. | ||
14 | |||
15 | **NOTE**: It is important that the major version number of your client matches | ||
16 | the major version number of the apworld you generated with. | ||
17 | |||
18 | ## Joining a Multiworld game | ||
19 | |||
20 | 1. Launch Lingo 2. | ||
21 | 2. Click on Level Selection, and choose Archipelago from the list. | ||
22 | 3. The selected player is generally ignored by the mod, and you don't even need | ||
23 | to ensure you use the same player between connections. However, if your | ||
24 | player name has a gift map associated with it, Lingo 2 will prioritize the | ||
25 | gift map over loading the mod, so in that case you should choose another | ||
26 | player. | ||
27 | 4. Press Play. | ||
28 | 5. Enter the Archipelago address, slot name, and password into the fields. | ||
29 | 6. Press Connect. | ||
30 | 7. Enjoy! | ||
31 | |||
32 | To continue an earlier game, you can perform the exact same steps as above. You | ||
33 | will probably have to re-select Archipelago from the Level Selection screen, as | ||
34 | the game does not remember which level you were playing. | ||
35 | |||
36 | **Note**: Running the randomizer modifies the game's memory. If you want to play | ||
37 | the base game after playing the randomizer, you need to restart Lingo 2 first. | ||
38 | |||
39 | ## Running from source | ||
40 | |||
41 | The mod is mostly written in GDScript, which is parsed and executed by Lingo 2 | ||
42 | itself, and thus does not need to be compiled. However, there are two files that | ||
43 | need to be generated before the client can be run. | ||
44 | |||
45 | The first file is `data.binpb`, the datafile containing the randomizer logic. | ||
46 | You can read about how to generate it on | ||
47 | [its own README page](https://code.fourisland.com/lingo2-archipelago/about/data/README.md). | ||
48 | Once you have it, put it in a subfolder of `client` called `generated`. | ||
49 | |||
50 | The second generated file is `proto.gd`. This file allows Lingo 2 to read the | ||
51 | datafile. We use a Godot script to generate it, which means | ||
52 | [the Godot Editor](https://godotengine.org/download/) is required. From the root | ||
53 | of the repository: | ||
54 | |||
55 | ```shell | ||
56 | cd vendor\godobuf | ||
57 | godot --headless -s addons\protobuf\protobuf_cmdln.gd --input=..\..\proto\data.proto ^ | ||
58 | --output=..\..\client\Archipelago\generated\proto.gd | ||
59 | ``` | ||
60 | |||
61 | If you are not on Windows, replace the forward slashes with backslashes as | ||
62 | appropriate (and the caret with a forward slash). You will also probably need to | ||
63 | replace "godot" at the start of the second line with a path to a Godot Editor | ||
64 | executable. | ||
65 | |||
66 | After generating those two files, the contents of the `client` folder (minus | ||
67 | this README) can be pasted into the Lingo 2 maps directory as described above. | ||
68 | |||
69 | ## Frequently Asked Questions | ||
70 | |||
71 | ### Is my progress saved locally? | ||
72 | |||
73 | Lingo 2 autosaves your progress every time you solve a puzzle, get a | ||
74 | collectable, or interact with a keyholder. The randomizer generates a savefile | ||
75 | name based on your Multiworld seed and slot number, so you should be able to | ||
76 | seamlessly switch between multiworlds and even slots within a multiworld. | ||
77 | |||
78 | The exception to this is different rooms created from the same multiworld seed. | ||
79 | The client is unable to tell rooms in a seed apart (this is a limitation of the | ||
80 | Archipelago API), so the client will use the same save file for the same slot in | ||
81 | different rooms on the same seed. You can work around this by manually moving or | ||
82 | removing the save file from the level1 save file directory. | ||
83 | |||
84 | If you play the base game again, you will see one or more save files with a long | ||
85 | name that begins with "zzAP\_". These are the saves for your multiworlds. They | ||
86 | can be safely deleted after you have completed the associated multiworld. It is | ||
87 | not recommended to load these save files outside of the randomizer. | ||
88 | |||
89 | A connection to Archipelago is required to resume playing a multiworld. This is | ||
90 | because the set of items you have received is not stored locally. | ||
diff --git a/client/archipelago.tscn b/client/archipelago.tscn deleted file mode 100644 index da83b23..0000000 --- a/client/archipelago.tscn +++ /dev/null | |||
@@ -1,167 +0,0 @@ | |||
1 | [gd_scene load_steps=11 format=2] | ||
2 | |||
3 | [ext_resource path="user://maps/Archipelago/settings_buttons.gd" type="Script" id=4] | ||
4 | [ext_resource path="user://maps/Archipelago/settings_screen.gd" type="Script" id=5] | ||
5 | [ext_resource path="res://images/unchecked.png" type="Texture" id=7] | ||
6 | [ext_resource path="res://images/checked.png" type="Texture" id=8] | ||
7 | [ext_resource type="Theme" uid="uid://7w454egydi41" path="res://assets/themes/baseUI.tres" id="2_g4bvn"] | ||
8 | |||
9 | [sub_resource type="StyleBoxFlat" id=1] | ||
10 | bg_color = Color( 0, 0, 0, 0 ) | ||
11 | |||
12 | [sub_resource type="StyleBoxFlat" id=2] | ||
13 | bg_color = Color( 1, 1, 1, 1 ) | ||
14 | border_width_left = 1 | ||
15 | border_width_top = 1 | ||
16 | border_width_right = 1 | ||
17 | border_width_bottom = 1 | ||
18 | border_color = Color( 1, 1, 0, 1 ) | ||
19 | border_blend = true | ||
20 | corner_radius_top_left = 3 | ||
21 | corner_radius_top_right = 3 | ||
22 | corner_radius_bottom_right = 3 | ||
23 | corner_radius_bottom_left = 3 | ||
24 | expand_offset_left = 5.0 | ||
25 | expand_offset_right = 5.0 | ||
26 | expand_offset_top = 5.0 | ||
27 | expand_offset_bottom = 5.0 | ||
28 | |||
29 | [node name="settings_screen" type="Node2D"] | ||
30 | script = ExtResource( 5 ) | ||
31 | |||
32 | [node name="Panel" type="Panel" parent="."] | ||
33 | offset_right = 1920.0 | ||
34 | offset_bottom = 1080.0 | ||
35 | |||
36 | [node name="title" parent="Panel" type="Label"] | ||
37 | offset_left = 0.0 | ||
38 | offset_top = 75.0 | ||
39 | offset_right = 1920.0 | ||
40 | offset_bottom = 225.0 | ||
41 | text = "ARCHIPELAGO" | ||
42 | valign = 1 | ||
43 | horizontal_alignment = 1 | ||
44 | theme = ExtResource("2_g4bvn") | ||
45 | |||
46 | [node name="credit" parent="Panel" type="Label"] | ||
47 | visible = false | ||
48 | offset_left = 1278.0 | ||
49 | offset_top = 974.0 | ||
50 | offset_right = 1868.0 | ||
51 | offset_bottom = 1034.0 | ||
52 | text = "Brenton Wildes" | ||
53 | theme = ExtResource("2_g4bvn") | ||
54 | |||
55 | [node name="connect_button" parent="Panel" type="Button"] | ||
56 | offset_left = 255.0 | ||
57 | offset_top = 875.0 | ||
58 | offset_right = 891.0 | ||
59 | offset_bottom = 1025.0 | ||
60 | custom_colors/font_color_hover = Color( 1, 0.501961, 0, 1 ) | ||
61 | text = "CONNECT" | ||
62 | theme = ExtResource("2_g4bvn") | ||
63 | script = ExtResource( 4 ) | ||
64 | |||
65 | [node name="quit_button" parent="Panel" type="Button"] | ||
66 | offset_left = 1102.0 | ||
67 | offset_top = 875.0 | ||
68 | offset_right = 1738.0 | ||
69 | offset_bottom = 1025.0 | ||
70 | custom_colors/font_color_hover = Color( 1, 0, 0, 1 ) | ||
71 | text = "BACK" | ||
72 | theme = ExtResource("2_g4bvn") | ||
73 | script = ExtResource( 4 ) | ||
74 | |||
75 | [node name="credit2" parent="Panel" type="Label"] | ||
76 | offset_left = -105.0 | ||
77 | offset_top = 346.0 | ||
78 | offset_right = 485.0 | ||
79 | offset_bottom = 410.0 | ||
80 | custom_styles/normal = SubResource( 1 ) | ||
81 | text = "SERVER" | ||
82 | align = 2 | ||
83 | theme = ExtResource("2_g4bvn") | ||
84 | |||
85 | [node name="credit5" parent="Panel" type="Label"] | ||
86 | offset_left = 1239.0 | ||
87 | offset_top = 422.0 | ||
88 | offset_right = 1829.0 | ||
89 | offset_bottom = 486.0 | ||
90 | custom_styles/normal = SubResource( 1 ) | ||
91 | text = "OPTIONS" | ||
92 | theme = ExtResource("2_g4bvn") | ||
93 | |||
94 | [node name="credit3" parent="Panel" type="Label"] | ||
95 | offset_left = -105.0 | ||
96 | offset_top = 519.0 | ||
97 | offset_right = 485.0 | ||
98 | offset_bottom = 583.0 | ||
99 | custom_styles/normal = SubResource( 1 ) | ||
100 | text = "PLAYER" | ||
101 | align = 2 | ||
102 | theme = ExtResource("2_g4bvn") | ||
103 | |||
104 | [node name="credit4" parent="Panel" type="Label"] | ||
105 | offset_left = -105.0 | ||
106 | offset_top = 704.0 | ||
107 | offset_right = 485.0 | ||
108 | offset_bottom = 768.0 | ||
109 | custom_styles/normal = SubResource( 1 ) | ||
110 | text = "PASSWORD" | ||
111 | align = 2 | ||
112 | theme = ExtResource("2_g4bvn") | ||
113 | |||
114 | [node name="server_box" type="LineEdit" parent="Panel"] | ||
115 | offset_left = 502.0 | ||
116 | offset_top = 295.0 | ||
117 | offset_right = 1144.0 | ||
118 | offset_bottom = 445.0 | ||
119 | custom_colors/selection_color = Color( 0.482353, 0, 0, 1 ) | ||
120 | custom_colors/cursor_color = Color( 0, 0, 0, 1 ) | ||
121 | custom_colors/font_color = Color( 0, 0, 0, 1 ) | ||
122 | custom_styles/focus = SubResource( 2 ) | ||
123 | align = 1 | ||
124 | caret_blink = true | ||
125 | |||
126 | [node name="player_box" type="LineEdit" parent="Panel"] | ||
127 | offset_left = 502.0 | ||
128 | offset_top = 477.0 | ||
129 | offset_right = 1144.0 | ||
130 | offset_bottom = 627.0 | ||
131 | custom_colors/selection_color = Color( 0.482353, 0, 0, 1 ) | ||
132 | custom_colors/cursor_color = Color( 0, 0, 0, 1 ) | ||
133 | custom_colors/font_color = Color( 0, 0, 0, 1 ) | ||
134 | custom_styles/focus = SubResource( 2 ) | ||
135 | align = 1 | ||
136 | caret_blink = true | ||
137 | |||
138 | [node name="password_box" type="LineEdit" parent="Panel"] | ||
139 | offset_left = 502.0 | ||
140 | offset_top = 659.0 | ||
141 | offset_right = 1144.0 | ||
142 | offset_bottom = 809.0 | ||
143 | custom_colors/selection_color = Color( 0.482353, 0, 0, 1 ) | ||
144 | custom_colors/cursor_color = Color( 0, 0, 0, 1 ) | ||
145 | custom_colors/font_color = Color( 0, 0, 0, 1 ) | ||
146 | custom_styles/focus = SubResource( 2 ) | ||
147 | align = 1 | ||
148 | caret_blink = true | ||
149 | |||
150 | [node name="AcceptDialog" type="AcceptDialog" parent="Panel"] | ||
151 | offset_right = 83.0 | ||
152 | offset_bottom = 58.0 | ||
153 | |||
154 | [node name="VersionMismatch" type="ConfirmationDialog" parent="Panel"] | ||
155 | offset_right = 83.0 | ||
156 | offset_bottom = 58.0 | ||
157 | |||
158 | [node name="connection_history" type="MenuButton" parent="Panel"] | ||
159 | offset_left = 1239.0 | ||
160 | offset_top = 276.0 | ||
161 | offset_right = 1829.0 | ||
162 | offset_bottom = 372.0 | ||
163 | text = "connection history" | ||
164 | flat = false | ||
165 | |||
166 | [connection signal="pressed" from="Panel/connect_button" to="Panel/connect_button" method="_connect_pressed"] | ||
167 | [connection signal="pressed" from="Panel/quit_button" to="Panel/quit_button" method="_back_pressed"] | ||