about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md16
-rw-r--r--apworld/client/effects.gd32
-rw-r--r--apworld/client/main.gd5
-rw-r--r--apworld/client/manager.gd24
-rw-r--r--apworld/options.py3
-rw-r--r--data/metadata.txtpb2
6 files changed, 81 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index e32a5fd..2b92cfc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md
@@ -1,5 +1,21 @@
1# lingo2-archipelago Releases 1# lingo2-archipelago Releases
2 2
3## v7.0.1 - 2025-10-01
4
5- Fixed logic error regarding the Plaza Entrance in The Repetitive. Going from
6 The Plaza to The Repetitive does not require the door to be open in vanilla
7 doors, but both directions require the door item when doors are shuffled.
8- Fixed Worldports tracker tab getting messed up after disconnecting and
9 reconnecting to multiworld.
10- Improved error messages when failing to connect. The game now also shows you
11 when your connection has dropped.
12
13Download:
14[lingo2.apworld](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v7.0.1/lingo2.apworld)<br/>
15Template YAML:
16[Lingo 2.yaml](https://files.fourisland.com/releases/lingo2-archipelago/apworld/v7.0.1/Lingo%202.yaml)<br/>
17Source: [v7.0.1](https://code.fourisland.com/lingo2-archipelago/tag/?h=v7.0.1)
18
3## v7.0.0 - 2025-09-30 19## v7.0.0 - 2025-09-30
4 20
5- Major update! First and foremost: the client and apworld are no longer 21- Major update! First and foremost: the client and apworld are no longer
diff --git a/apworld/client/effects.gd b/apworld/client/effects.gd new file mode 100644 index 0000000..9dc1dd8 --- /dev/null +++ b/apworld/client/effects.gd
@@ -0,0 +1,32 @@
1extends CanvasLayer
2
3var _label
4
5var _disconnected = false
6
7
8func _ready():
9 _label = Label.new()
10 _label.name = "Label"
11 _label.offset_left = 20
12 _label.offset_top = 20
13 _label.horizontal_alignment = HORIZONTAL_ALIGNMENT_LEFT
14 _label.vertical_alignment = VERTICAL_ALIGNMENT_TOP
15 _label.theme = preload("res://assets/themes/baseUI.tres")
16 _label.add_theme_font_size_override("font_size", 36)
17 add_child(_label)
18
19
20func set_connection_lost(arg):
21 _disconnected = arg
22
23 _update_label()
24
25
26func _update_label():
27 var text = []
28
29 if _disconnected:
30 text.append("Disconnected from multiworld.")
31
32 _label.text = "\n".join(text)
diff --git a/apworld/client/main.gd b/apworld/client/main.gd index bbefc02..e1f9610 100644 --- a/apworld/client/main.gd +++ b/apworld/client/main.gd
@@ -66,6 +66,11 @@ func _ready():
66 messages_instance.SCRIPT_rainbowText = runtime.load_script("rainbowText.gd") 66 messages_instance.SCRIPT_rainbowText = runtime.load_script("rainbowText.gd")
67 global.add_child(messages_instance) 67 global.add_child(messages_instance)
68 68
69 var effects_script = runtime.load_script("effects.gd")
70 var effects_instance = effects_script.new()
71 effects_instance.name = "Effects"
72 global.add_child(effects_instance)
73
69 var textclient_script = runtime.load_script("textclient.gd") 74 var textclient_script = runtime.load_script("textclient.gd")
70 var textclient_instance = textclient_script.new() 75 var textclient_instance = textclient_script.new()
71 textclient_instance.name = "Textclient" 76 textclient_instance.name = "Textclient"
diff --git a/apworld/client/manager.gd b/apworld/client/manager.gd index a5b9db0..9212233 100644 --- a/apworld/client/manager.gd +++ b/apworld/client/manager.gd
@@ -28,6 +28,7 @@ var _item_locks = {}
28var _inverse_item_locks = {} 28var _inverse_item_locks = {}
29var _held_letters = {} 29var _held_letters = {}
30var _letters_setup = false 30var _letters_setup = false
31var _already_connected = false
31 32
32const kSHUFFLE_LETTERS_VANILLA = 0 33const kSHUFFLE_LETTERS_VANILLA = 0
33const kSHUFFLE_LETTERS_UNLOCKED = 1 34const kSHUFFLE_LETTERS_UNLOCKED = 1
@@ -178,6 +179,7 @@ func connectToServer():
178 _location_scouts = {} 179 _location_scouts = {}
179 _letters_setup = false 180 _letters_setup = false
180 _held_letters = {} 181 _held_letters = {}
182 _already_connected = false
181 183
182 client.connectToServer(ap_server, ap_user, ap_pass) 184 client.connectToServer(ap_server, ap_user, ap_pass)
183 185
@@ -187,6 +189,11 @@ func getSaveFileName():
187 189
188 190
189func disconnect_from_ap(): 191func disconnect_from_ap():
192 _already_connected = false
193
194 var effects = global.get_node("Effects")
195 effects.set_connection_lost(false)
196
190 client.disconnect_from_ap() 197 client.disconnect_from_ap()
191 198
192 199
@@ -353,12 +360,29 @@ func _on_checked_worldports_updated():
353func _client_could_not_connect(message): 360func _client_could_not_connect(message):
354 could_not_connect.emit(message) 361 could_not_connect.emit(message)
355 362
363 if global.loaded:
364 var effects = global.get_node("Effects")
365 effects.set_connection_lost(true)
366
367 var messages = global.get_node("Messages")
368 messages.showMessage("Connection to multiworld lost.")
369
356 370
357func _client_connect_status(message): 371func _client_connect_status(message):
358 connect_status.emit(message) 372 connect_status.emit(message)
359 373
360 374
361func _client_connected(slot_data): 375func _client_connected(slot_data):
376 var effects = global.get_node("Effects")
377 effects.set_connection_lost(false)
378
379 if _already_connected:
380 var messages = global.get_node("Messages")
381 messages.showMessage("Reconnected to multiworld!")
382 return
383
384 _already_connected = true
385
362 var gamedata = global.get_node("Gamedata") 386 var gamedata = global.get_node("Gamedata")
363 387
364 _localdata_file = "user://archipelago_data/%s_%d" % [client._seed, client._slot] 388 _localdata_file = "user://archipelago_data/%s_%d" % [client._seed, client._slot]
diff --git a/apworld/options.py b/apworld/options.py index 795010a..3d7c9a5 100644 --- a/apworld/options.py +++ b/apworld/options.py
@@ -58,6 +58,9 @@ class ShuffleWorldports(Toggle):
58 order to change maps. This does not affect paintings, panels that teleport you, or certain other special connections 58 order to change maps. This does not affect paintings, panels that teleport you, or certain other special connections
59 like the one between The Shop and Control Center. Connections that depend on placing letters in keyholders are also 59 like the one between The Shop and Control Center. Connections that depend on placing letters in keyholders are also
60 currently not shuffled. 60 currently not shuffled.
61
62 NOTE: It is highly recommended that you turn on Shuffle Control Center Colors when using Shuffle Worldports. Not
63 doing so runs the risk of creating an unfinishable seed.
61 """ 64 """
62 display_name = "Shuffle Worldports" 65 display_name = "Shuffle Worldports"
63 66
diff --git a/data/metadata.txtpb b/data/metadata.txtpb index c6e514b..c7dc650 100644 --- a/data/metadata.txtpb +++ b/data/metadata.txtpb
@@ -1,7 +1,7 @@
1version { 1version {
2 major: 7 2 major: 7
3 minor: 0 3 minor: 0
4 patch: 0 4 patch: 1
5} 5}
6# Filler item. 6# Filler item.
7special_names: "A Job Well Done" 7special_names: "A Job Well Done"