From 8b97ed0755c8d950f5cc8f9a957636982f33f012 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Wed, 10 Apr 2024 22:34:43 -0400 Subject: Replace early color hallways painting --- Archipelago/load.gd | 38 ++++++++++++++------------------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/Archipelago/load.gd b/Archipelago/load.gd index 566ee39..1b77c9e 100644 --- a/Archipelago/load.gd +++ b/Archipelago/load.gd @@ -6,7 +6,7 @@ const EXCLUDED_PAINTINGS = [ "ascension_nw.tscn", "ascension_se.tscn", "ascension_sw.tscn", - "dan_L1_gate.tscn", + "color_hallways.tscn", "frame.tscn", "scenery_0.tscn", "scenery_1.tscn", @@ -372,33 +372,23 @@ func _load(): ] if apclient._early_color_hallways: - var painting_scene = load("res://nodes/paintings/dan_L1_gate.tscn") - var mypainting_script = apclient.SCRIPT_mypainting - - var exit_painting = painting_scene.instance() - exit_painting.set_name("color_exit_painting") - exit_painting.translation.x = -98.75 - exit_painting.translation.y = 1 - exit_painting.translation.z = 3.5 - exit_painting.rotation_degrees.y = -90 - - var exit_mps = mypainting_script.new() - exit_mps.set_name("Script") - exit_mps.orientation = "west" - exit_painting.add_child(exit_mps) + var exit_painting = get_node("Decorations/Paintings/crown_painting_exit").duplicate() + exit_painting.name = "color_hallways_exit" + exit_painting.translation.x = 48 + exit_painting.translation.y = 0.25 + exit_painting.translation.z = -18 $Decorations/Paintings.add_child(exit_painting) + var painting_scene = load("res://nodes/paintings/color_hallways.tscn") var enter_painting = painting_scene.instance() - enter_painting.set_name("color_enter_painting") + enter_painting.set_name("color_hallways") enter_painting.translation.x = 4.5 - enter_painting.translation.y = 1 - enter_painting.translation.z = 6.75 - - var enter_mps = mypainting_script.new() - enter_mps.set_name("Script") - enter_mps.orientation = "south" - enter_mps.target = exit_mps - enter_painting.add_child(enter_mps) + enter_painting.translation.y = 0.25 + enter_painting.translation.z = 7 + enter_painting.rotation_degrees.y = 180 + enter_painting.set_script(load("res://scripts/painting.gd")) + enter_painting.rotate = "90" + enter_painting.target_path = "../color_hallways_exit" $Decorations/Paintings.add_child(enter_painting) # Randomize the paintings, if necessary. -- cgit 1.4.1 From 95beaf55efe7f65ac6416f4fe08bd4f2f47f080e Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sun, 21 Apr 2024 14:27:03 -0400 Subject: Expand sphere 1 in door shuffle + no ECH --- Archipelago/client.gd | 14 ++++++++++++++ util/generate_gamedata.rb | 5 +++++ 2 files changed, 19 insertions(+) diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 8abc42c..6f5fefe 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -77,6 +77,7 @@ const kREARRANGE_PANELS = 1 const kCLASSIFICATION_LOCAL_NORMAL = 1 const kCLASSIFICATION_LOCAL_REDUCED = 2 const kCLASSIFICATION_LOCAL_INSANITY = 4 +const kCLASSIFICATION_LOCAL_SMALL_SPHERE_ONE = 8 const kCLASSIFICATION_REMOTE_NORMAL = 0 const kCLASSIFICATION_REMOTE_REDUCED = 1 @@ -282,8 +283,12 @@ func _on_data(): _victory_condition = _slot_data["victory_condition"] if _slot_data.has("shuffle_colors"): _color_shuffle = _slot_data["shuffle_colors"] + if _slot_data.has("shuffle_doors"): _door_shuffle = (_slot_data["shuffle_doors"] > 0) + else: + _door_shuffle = false + if _slot_data.has("shuffle_paintings"): _painting_shuffle = _slot_data["shuffle_paintings"] if _slot_data.has("shuffle_panels"): @@ -296,6 +301,7 @@ func _on_data(): _mastery_achievements = _slot_data["mastery_achievements"] if _slot_data.has("level_2_requirement"): _level_2_requirement = _slot_data["level_2_requirement"] + if _slot_data.has("location_checks"): if _slot_data["location_checks"] == kCLASSIFICATION_REMOTE_NORMAL: _location_classification_bit = kCLASSIFICATION_LOCAL_NORMAL @@ -303,8 +309,16 @@ func _on_data(): _location_classification_bit = kCLASSIFICATION_LOCAL_REDUCED elif _slot_data["location_checks"] == kCLASSIFICATION_REMOTE_INSANITY: _location_classification_bit = kCLASSIFICATION_LOCAL_INSANITY + else: + _location_classification_bit = kCLASSIFICATION_LOCAL_NORMAL + if _slot_data.has("early_color_hallways"): _early_color_hallways = _slot_data["early_color_hallways"] + else: + _early_color_hallways = false + + if _door_shuffle and not _early_color_hallways: + _location_classification_bit += kCLASSIFICATION_LOCAL_SMALL_SPHERE_ONE if track_player: setValue("PlayerPos", {"x": 0, "z": 0}) diff --git a/util/generate_gamedata.rb b/util/generate_gamedata.rb index f63e062..3f610b1 100644 --- a/util/generate_gamedata.rb +++ b/util/generate_gamedata.rb @@ -8,6 +8,7 @@ outputpath = ARGV[2] CLASSIFICATION_NORMAL = 1 CLASSIFICATION_REDUCED = 2 CLASSIFICATION_INSANITY = 4 +CLASSIFICATION_SMALL_SPHERE_ONE = 8 panel_to_id = {} door_groups = {} @@ -80,6 +81,10 @@ config.each do |room_name, room_data| classification_by_location_id[location_id] += CLASSIFICATION_REDUCED end end + + if room_name == "Starting Room" + classification_by_location_id[location_id] += CLASSIFICATION_SMALL_SPHERE_ONE + end end end -- cgit 1.4.1 From 17d2b39d0dd2d94065fbe848e0dbf85e4a80ca66 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Wed, 15 May 2024 12:12:24 -0400 Subject: Send checked paintings to server --- Archipelago/client.gd | 31 ++++++++++++- Archipelago/mypainting.gd | 113 +++++++++++++++++++++++----------------------- 2 files changed, 85 insertions(+), 59 deletions(-) diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 7903df2..0625c82 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -115,6 +115,7 @@ var _cached_slowness = 0 var _cached_iceland = 0 var _cached_atbash = 0 var _geronimo_skip = false +var _checked_paintings = [] signal could_not_connect signal connect_status @@ -356,6 +357,18 @@ func _on_data(): requestSync() + sendMessage( + [ + { + "cmd": "Set", + "key": "Lingo_%d_Paintings" % [_slot], + "default": [], + "want_reply": true, + "operations": [{"operation": "default", "value": []}] + } + ] + ) + emit_signal("client_connected") elif cmd == "ConnectionRefused": @@ -471,6 +484,10 @@ func _on_data(): # Return the player home. get_tree().get_root().get_node("Spatial/player/pause_menu")._reload() + elif cmd == "SetReply": + if message.has("key") and message["key"] == ("Lingo_%d_Paintings" % _slot): + _checked_paintings = message["value"] + func _process(_delta): if _should_process: @@ -625,13 +642,14 @@ func sendLocation(loc_id): _held_locations.append(loc_id) -func setValue(key, value): +func setValue(key, value, operation = "replace"): sendMessage( [ { "cmd": "Set", "key": "Lingo_%d_%s" % [_slot, key], - "operations": [{"operation": "replace", "value": value}] + "want_reply": false, + "operations": [{"operation": operation, "value": value}] } ] ) @@ -787,6 +805,15 @@ func geronimo(): saveLocaldata() +func checkPainting(painting_id): + if _checked_paintings.has(painting_id): + return + + _checked_paintings.append(painting_id) + + setValue("Paintings", [painting_id], "add") + + func colorForItemType(flags): var int_flags = int(flags) if int_flags & 1: # progression diff --git a/Archipelago/mypainting.gd b/Archipelago/mypainting.gd index 999b122..7aee434 100644 --- a/Archipelago/mypainting.gd +++ b/Archipelago/mypainting.gd @@ -30,66 +30,65 @@ func movePainting(): func _looked_at(body, painting): - if ( - target != null - and body.is_in_group("player") - and (painting.get_name() == self.get_parent().get_name()) - ): - var target_dir = _dir_to_int(target.orientation) - var source_dir = _dir_to_int(orientation) - var rotate = target_dir - source_dir - if rotate < 0: - rotate += 4 - rotate *= 90 + if body.is_in_group("player") and (painting.get_name() == self.get_parent().get_name()): + var apclient = global.get_node("Archipelago") + apclient.checkPainting(painting.get_name()) - var target_painting = target.get_parent() + if target != null: + var target_dir = _dir_to_int(target.orientation) + var source_dir = _dir_to_int(orientation) + var rotate = target_dir - source_dir + if rotate < 0: + rotate += 4 + rotate *= 90 - # this is ACW - if rotate == 0: - body.translation.x = ( - target_painting.translation.x + (body.translation.x - painting.translation.x) - ) - body.translation.y = ( - target_painting.translation.y + (body.translation.y - painting.translation.y) - ) - body.translation.z = ( - target_painting.translation.z + (body.translation.z - painting.translation.z) - ) - elif rotate == 180: - body.translation.x = ( - target_painting.translation.x - (body.translation.x - painting.translation.x) - ) - body.translation.y = ( - target_painting.translation.y + (body.translation.y - painting.translation.y) - ) - body.translation.z = ( - target_painting.translation.z - (body.translation.z - painting.translation.z) - ) - body.rotate_y(PI) - body.velocity = body.velocity.rotated(Vector3(0, 1, 0), PI) - elif rotate == 90: - var diff_x = body.translation.x - painting.translation.x - var diff_y = body.translation.y - painting.translation.y - var diff_z = body.translation.z - painting.translation.z - body.translation.x = target_painting.translation.x + diff_z - body.translation.y = target_painting.translation.y + diff_y - body.translation.z = target_painting.translation.z - diff_x - body.rotate_y(PI / 2) - body.velocity = body.velocity.rotated(Vector3(0, 1, 0), PI / 2) - elif rotate == 270: - var diff_x = body.translation.x - painting.translation.x - var diff_y = body.translation.y - painting.translation.y - var diff_z = body.translation.z - painting.translation.z - body.translation.x = target_painting.translation.x - diff_z - body.translation.y = target_painting.translation.y + diff_y - body.translation.z = target_painting.translation.z + diff_x - body.rotate_y(3 * PI / 2) - body.velocity = body.velocity.rotated(Vector3(0, 1, 0), 3 * PI / 2) + var target_painting = target.get_parent() - var apclient = global.get_node("Archipelago") - if !apclient._pilgrimage_allows_paintings: - global.sunwarp = 1 - body.get_node("pivot/camera/sunwarp_background").visible = false + # this is ACW + if rotate == 0: + body.translation.x = ( + target_painting.translation.x + (body.translation.x - painting.translation.x) + ) + body.translation.y = ( + target_painting.translation.y + (body.translation.y - painting.translation.y) + ) + body.translation.z = ( + target_painting.translation.z + (body.translation.z - painting.translation.z) + ) + elif rotate == 180: + body.translation.x = ( + target_painting.translation.x - (body.translation.x - painting.translation.x) + ) + body.translation.y = ( + target_painting.translation.y + (body.translation.y - painting.translation.y) + ) + body.translation.z = ( + target_painting.translation.z - (body.translation.z - painting.translation.z) + ) + body.rotate_y(PI) + body.velocity = body.velocity.rotated(Vector3(0, 1, 0), PI) + elif rotate == 90: + var diff_x = body.translation.x - painting.translation.x + var diff_y = body.translation.y - painting.translation.y + var diff_z = body.translation.z - painting.translation.z + body.translation.x = target_painting.translation.x + diff_z + body.translation.y = target_painting.translation.y + diff_y + body.translation.z = target_painting.translation.z - diff_x + body.rotate_y(PI / 2) + body.velocity = body.velocity.rotated(Vector3(0, 1, 0), PI / 2) + elif rotate == 270: + var diff_x = body.translation.x - painting.translation.x + var diff_y = body.translation.y - painting.translation.y + var diff_z = body.translation.z - painting.translation.z + body.translation.x = target_painting.translation.x - diff_z + body.translation.y = target_painting.translation.y + diff_y + body.translation.z = target_painting.translation.z + diff_x + body.rotate_y(3 * PI / 2) + body.velocity = body.velocity.rotated(Vector3(0, 1, 0), 3 * PI / 2) + + if !apclient._pilgrimage_allows_paintings: + global.sunwarp = 1 + body.get_node("pivot/camera/sunwarp_background").visible = false func _dir_to_int(dir): -- cgit 1.4.1 From a35a4f40bb7999f61b139fe415227ea7adec5e59 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Wed, 29 May 2024 13:06:56 -0400 Subject: Remove Fearless arrows on confusify --- Archipelago/load.gd | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Archipelago/load.gd b/Archipelago/load.gd index 0ed978a..abe2b03 100644 --- a/Archipelago/load.gd +++ b/Archipelago/load.gd @@ -263,6 +263,9 @@ func _load(): hidden_parent.get_node("hidden_door_58").translation.x = 48 hidden_parent.get_node("hidden_door_58")._setReference("whiteBlock") + # Remove Fearless entrance indicator. + get_node("Decorations/Signs/Miscellaneous/Sign14").queue_free() + if apclient._panel_shuffle != apclient.kNO_PANEL_SHUFFLE: # Make The Wondrous's FIRE solely midred. clear_gridmap_tile(-76.5, 1.5, -73.5) -- cgit 1.4.1 From 6c3cb6286ae94bc41d07d4886e93b2e7d2489a28 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Wed, 29 May 2024 13:27:48 -0400 Subject: Compatibility with not-unique IDs --- Archipelago/client.gd | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 7903df2..e89c156 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -80,6 +80,7 @@ var _team = 0 var _slot = 0 var _players = [] var _player_name_by_slot = {} +var _game_by_player = {} var _checked_locations = [] var _slot_data = {} var _paintings_mapping = {} @@ -256,6 +257,7 @@ func _on_data(): for player in _players: _player_name_by_slot[player["slot"]] = player["alias"] + _game_by_player[player["slot"]] = message["slot_info"][str(player["slot"])]["game"] _death_link = _slot_data.has("death_link") and _slot_data["death_link"] if _death_link: @@ -423,12 +425,14 @@ func _on_data(): continue var item_name = "Unknown" - if _item_id_to_name.has(message["item"]["item"]): - item_name = _item_id_to_name[message["item"]["item"]] + var item_player_game = _game_by_player[message["receiving"]] + if _item_id_to_name[item_player_game].has(message["item"]["item"]): + item_name = _item_id_to_name[item_player_game][message["item"]["item"]] var location_name = "Unknown" - if _location_id_to_name.has(message["item"]["location"]): - location_name = _location_id_to_name[message["item"]["location"]] + var location_player_game = _game_by_player[message["item"]["player"]] + if _location_id_to_name[location_player_game].has(message["item"]["location"]): + location_name = _location_id_to_name[location_player_game][message["item"]["location"]] var player_name = "Unknown" if _player_name_by_slot.has(message["receiving"]): @@ -578,12 +582,16 @@ func requestDatapackages(games): func processDatapackages(): _item_id_to_name = {} _location_id_to_name = {} - for package in _datapackages.values(): + for game in _datapackages.keys(): + var package = _datapackages[game] + + _item_id_to_name[game] = {} for name in package["item_name_to_id"].keys(): - _item_id_to_name[package["item_name_to_id"][name]] = name + _item_id_to_name[game][package["item_name_to_id"][name]] = name + _location_id_to_name[game] = {} for name in package["location_name_to_id"].keys(): - _location_id_to_name[package["location_name_to_id"][name]] = name + _location_id_to_name[game][package["location_name_to_id"][name]] = name if _datapackages.has("Lingo"): _item_name_to_id = _datapackages["Lingo"]["item_name_to_id"] @@ -672,8 +680,8 @@ func processItem(item, index, from, flags): var gamedata = $Gamedata var item_name = "Unknown" - if _item_id_to_name.has(item): - item_name = _item_id_to_name[item] + if _item_id_to_name["Lingo"].has(item): + item_name = _item_id_to_name["Lingo"][item] if gamedata.door_ids_by_item_id.has(int(item)): var doorsNode = get_tree().get_root().get_node("Spatial/Doors") @@ -711,8 +719,8 @@ func processItem(item, index, from, flags): processItem(subitem_id, null, null, null) _progressive_progress[int(item)] += 1 - if _color_shuffle and color_items.has(_item_id_to_name[item]): - var lcol = _item_id_to_name[item].to_lower() + if _color_shuffle and color_items.has(_item_id_to_name["Lingo"][item]): + var lcol = _item_id_to_name["Lingo"][item].to_lower() if not _has_colors.has(lcol): _has_colors.append(lcol) emit_signal("evaluate_solvability") -- cgit 1.4.1 From 2b0fcdde3144213676324163d721150a8641d610 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Wed, 29 May 2024 13:34:00 -0400 Subject: Gracefully handle corrupted data files --- Archipelago/client.gd | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Archipelago/client.gd b/Archipelago/client.gd index e89c156..bc952b9 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -133,6 +133,10 @@ func _init(): var data = file.get_var(true) file.close() + if typeof(data) != TYPE_ARRAY: + global._print("AP settings file is corrupted") + data = [] + if data.size() > 0: ap_server = data[0] if data.size() > 1: @@ -328,6 +332,10 @@ func _on_data(): var localdata = ap_file.get_var(true) ap_file.close() + if typeof(localdata) != TYPE_ARRAY: + global._print("AP localdata file is corrupted") + localdata = [] + if localdata.size() > 0: _last_new_item = localdata[0] else: -- cgit 1.4.1 From e973aead7d1e495f80ddc321ee634a91753cb03f Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 30 May 2024 13:25:13 -0400 Subject: Bump version --- Archipelago/client.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Archipelago/client.gd b/Archipelago/client.gd index bc952b9..11a97ce 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -18,7 +18,7 @@ var enable_multiplayer = false var track_player = false var connection_history = [] -const my_version = "3.0.1" +const my_version = "3.0.2" const ap_version = {"major": 0, "minor": 4, "build": 6, "class": "Version"} const color_items = [ "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" -- cgit 1.4.1 From 3a841bb4a80afda76c92d78cd211d7bf4b411067 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 30 May 2024 13:33:20 -0400 Subject: Released v3.0.2 --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index de47cb0..e338da1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # lingo-archipelago Releases +## v3.0.2 - 2024-05-30 + +- Fixed a crash that could happen if the local data got corrupted. +- Added compatibility for + [non universally unique datapackage IDs](https://github.com/ArchipelagoMW/Archipelago/issues/3394). +- Removed the arrows pointing at The Fearless when confusify world is enabled. + +Download: +[lingo-archipelago-v3.0.2.zip](https://files.fourisland.com/releases/lingo-archipelago/lingo-archipelago-v3.0.2.zip)
+Source: [v3.0.2](https://code.fourisland.com/lingo-archipelago/tag/?h=v3.0.2) + ## v3.0.1 - 2024-04-22 - Fixed issue where Progressive Hallway Room did not work properly on worlds -- cgit 1.4.1 From 1991f75b1bfd913b8a93030b78fe2c44cc91b9df Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sun, 2 Jun 2024 17:44:04 -0400 Subject: Fix double mouse sensitivity issue --- Archipelago/player.gd | 2 -- 1 file changed, 2 deletions(-) diff --git a/Archipelago/player.gd b/Archipelago/player.gd index 49d907d..52d743a 100644 --- a/Archipelago/player.gd +++ b/Archipelago/player.gd @@ -44,8 +44,6 @@ func _solvingEnd(): func _unhandled_input(event): - ._unhandled_input(event) - if event is InputEventKey: if event.pressed and event.scancode == KEY_P: var effects_node = get_tree().get_root().get_node("Spatial/AP_Effects") -- cgit 1.4.1 From a00c48bc492590c7a1fd9cf299ce19c1ba7ed2d9 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sun, 2 Jun 2024 17:45:00 -0400 Subject: Bump version --- Archipelago/client.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 11a97ce..5840550 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -18,7 +18,7 @@ var enable_multiplayer = false var track_player = false var connection_history = [] -const my_version = "3.0.2" +const my_version = "3.0.3" const ap_version = {"major": 0, "minor": 4, "build": 6, "class": "Version"} const color_items = [ "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" -- cgit 1.4.1 From 25d422064f01e7f9dcd3941e99b529e4d86b7ef6 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sun, 2 Jun 2024 17:52:35 -0400 Subject: Released v3.0.3 --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e338da1..90c8e22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # lingo-archipelago Releases +## v3.0.3 - 2024-06-02 + +- Fixed issue with mouse sensitivity being doubled. + +Download: +[lingo-archipelago-v3.0.3.zip](https://files.fourisland.com/releases/lingo-archipelago/lingo-archipelago-v3.0.3.zip)
+Source: [v3.0.3](https://code.fourisland.com/lingo-archipelago/tag/?h=v3.0.3) + ## v3.0.2 - 2024-05-30 - Fixed a crash that could happen if the local data got corrupted. -- cgit 1.4.1 From 2db392b7fa29fb969bd69cb6f4db785a81b8cb48 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 6 Jun 2024 16:17:02 -0400 Subject: Bump version --- Archipelago/client.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 19fcee1..1966374 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -18,7 +18,7 @@ var enable_multiplayer = false var track_player = false var connection_history = [] -const my_version = "3.0.3" +const my_version = "3.1.0" const ap_version = {"major": 0, "minor": 4, "build": 6, "class": "Version"} const color_items = [ "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" -- cgit 1.4.1 From ca025c7620affd6ef994403c1e46e8060969b370 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 6 Jun 2024 16:31:43 -0400 Subject: Released v3.1.0 --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 90c8e22..6918722 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # lingo-archipelago Releases +## v3.1.0 - 2024-06-06 + +- The client now sends information on what paintings you've checked if you're + playing painting shuffle, which can be used to populate the subway map in + v0.10.0 and later of the tracker. + +Download: +[lingo-archipelago-v3.1.0.zip](https://files.fourisland.com/releases/lingo-archipelago/lingo-archipelago-v3.1.0.zip)
+Source: [v3.1.0](https://code.fourisland.com/lingo-archipelago/tag/?h=v3.1.0) + ## v3.0.3 - 2024-06-02 - Fixed issue with mouse sensitivity being doubled. -- cgit 1.4.1 From 68cd752119b3c7bb04175b0373f8403e3a475c81 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Mon, 10 Jun 2024 00:09:02 -0400 Subject: Bump version --- Archipelago/client.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 1966374..aa2263a 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -18,7 +18,7 @@ var enable_multiplayer = false var track_player = false var connection_history = [] -const my_version = "3.1.0" +const my_version = "3.2.0" const ap_version = {"major": 0, "minor": 4, "build": 6, "class": "Version"} const color_items = [ "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" -- cgit 1.4.1 From dc6840045cd72313c4ff8f5248e1c24fea9b4ffe Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Mon, 10 Jun 2024 00:20:41 -0400 Subject: Released v3.2.0 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6918722..f3340f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # lingo-archipelago Releases +## v3.2.0 - 2024-06-10 + +- Replaced the early color hallways painting with a new one contributed by + [KF2015](https://www.youtube.com/channel/UCOf5qCfZLZ1UbDXpOf1eBig). + +Download: +[lingo-archipelago-v3.2.0.zip](https://files.fourisland.com/releases/lingo-archipelago/lingo-archipelago-v3.2.0.zip)
+Source: [v3.2.0](https://code.fourisland.com/lingo-archipelago/tag/?h=v3.2.0) + ## v3.1.0 - 2024-06-06 - The client now sends information on what paintings you've checked if you're -- cgit 1.4.1 From 692e65f8d168227a4fac97899bea407b1dfafefc Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 21 Jun 2024 19:31:55 -0400 Subject: Prevent selecting another level after running AP --- Archipelago/settings_menu.gd | 25 +++++++++++++++++++++++++ Archipelago/settings_screen.gd | 1 + 2 files changed, 26 insertions(+) create mode 100644 Archipelago/settings_menu.gd diff --git a/Archipelago/settings_menu.gd b/Archipelago/settings_menu.gd new file mode 100644 index 0000000..0efce40 --- /dev/null +++ b/Archipelago/settings_menu.gd @@ -0,0 +1,25 @@ +extends "res://scripts/settings_menu.gd" + + +func _ready(): + var level_tab = get_node("Panel/Tabs/Level") + level_tab.get_node("ScrollContainer").queue_free() + level_tab.get_node("upload_button").queue_free() + + var new_label = Label.new() + new_label.text = "You must restart Lingo before playing a non-Archipelago game." + new_label.align = Label.ALIGN_CENTER + new_label.valign = Label.VALIGN_CENTER + new_label.autowrap = true + new_label.margin_left = 25 + new_label.margin_top = 25 + new_label.margin_right = 1250 + new_label.margin_bottom = 492 + + var field_font = DynamicFont.new() + field_font.font_data = load("res://fonts/Lingo2.ttf") + field_font.size = 48 + + new_label.add_font_override("font", field_font) + + level_tab.add_child(new_label) diff --git a/Archipelago/settings_screen.gd b/Archipelago/settings_screen.gd index 79fdcc3..43c9468 100644 --- a/Archipelago/settings_screen.gd +++ b/Archipelago/settings_screen.gd @@ -55,6 +55,7 @@ func _ready(): installScriptExtension(ResourceLoader.load("user://maps/Archipelago/panelInput.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/pause_menu.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/player.gd")) + installScriptExtension(ResourceLoader.load("user://maps/Archipelago/settings_menu.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/teleport.gd")) installScriptExtension(ResourceLoader.load("user://maps/Archipelago/worldTransporter.gd")) -- cgit 1.4.1 From d2581ee504710040483e971a40f2bcb25ae531e2 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 21 Jun 2024 19:33:01 -0400 Subject: Bump version --- Archipelago/client.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Archipelago/client.gd b/Archipelago/client.gd index aa2263a..e07fc46 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -18,7 +18,7 @@ var enable_multiplayer = false var track_player = false var connection_history = [] -const my_version = "3.2.0" +const my_version = "3.2.1" const ap_version = {"major": 0, "minor": 4, "build": 6, "class": "Version"} const color_items = [ "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" -- cgit 1.4.1 From 993265baeca879b5a26546a15a23606d30cb59e9 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 21 Jun 2024 19:44:28 -0400 Subject: Released v3.2.1 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f3340f7..dea4b62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # lingo-archipelago Releases +## v3.2.1 - 2024-06-21 + +- The player can no longer select another level after Archipelago has been + loaded without restarting the game. + +Download: +[lingo-archipelago-v3.2.1.zip](https://files.fourisland.com/releases/lingo-archipelago/lingo-archipelago-v3.2.1.zip)
+Source: [v3.2.1](https://code.fourisland.com/lingo-archipelago/tag/?h=v3.2.1) + ## v3.2.0 - 2024-06-10 - Replaced the early color hallways painting with a new one contributed by -- cgit 1.4.1 From 0307d6409437b8440f6592d789e8a02713402205 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Mon, 1 Jul 2024 18:32:03 -0400 Subject: Bump version --- Archipelago/client.gd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 8a15d03..916fd98 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -18,8 +18,8 @@ var enable_multiplayer = false var track_player = false var connection_history = [] -const my_version = "3.2.1" -const ap_version = {"major": 0, "minor": 4, "build": 6, "class": "Version"} +const my_version = "4.0.0" +const ap_version = {"major": 0, "minor": 5, "build": 0, "class": "Version"} const color_items = [ "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" ] -- cgit 1.4.1 From a23c80c47135f26995676328b8f305d6a794e01a Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Mon, 1 Jul 2024 18:42:31 -0400 Subject: Released v4.0.0 --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dea4b62..bf8864a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # lingo-archipelago Releases +## v4.0.0 - 2024-07-01 + +- [Archipelago 0.5.0](https://github.com/ArchipelagoMW/Archipelago/releases/tag/0.5.0) + has been released! This release only includes minor bug fixes and tweaks for + Lingo, which you can read about in the changelog. + +Download: +[lingo-archipelago-v4.0.0.zip](https://files.fourisland.com/releases/lingo-archipelago/lingo-archipelago-v4.0.0.zip)
+Source: [v4.0.0](https://code.fourisland.com/lingo-archipelago/tag/?h=v4.0.0) + ## v3.2.1 - 2024-06-21 - The player can no longer select another level after Archipelago has been -- cgit 1.4.1 From d87c722f0ed1415d6e75fdbbaeb4080aa458932c Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Tue, 2 Jul 2024 10:43:20 -0400 Subject: Fix proxy panels happening on panelsanity --- Archipelago/client.gd | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 916fd98..80f9bc1 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -330,7 +330,11 @@ func _on_data(): if _slot_data.has("sunwarp_permutation"): _sunwarp_mapping = _slot_data["sunwarp_permutation"] - if _door_shuffle and not _early_color_hallways: + if ( + _location_classification_bit != kCLASSIFICATION_LOCAL_INSANITY + and _door_shuffle + and not _early_color_hallways + ): _location_classification_bit += kCLASSIFICATION_LOCAL_SMALL_SPHERE_ONE if track_player: -- cgit 1.4.1 From e6cba32a5c6d9869912c97b48bc38dde44738f7e Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Tue, 2 Jul 2024 10:43:39 -0400 Subject: Bump version --- Archipelago/client.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 80f9bc1..8921c3e 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -18,7 +18,7 @@ var enable_multiplayer = false var track_player = false var connection_history = [] -const my_version = "4.0.0" +const my_version = "4.0.1" const ap_version = {"major": 0, "minor": 5, "build": 0, "class": "Version"} const color_items = [ "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" -- cgit 1.4.1 From 27b8c1e83329e8245293bddc3b81bf13ee9a1c6f Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Tue, 2 Jul 2024 10:50:35 -0400 Subject: Released v4.0.1 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bf8864a..6c5113a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # lingo-archipelago Releases +## v4.0.1 - 2024-07-02 + +- Fixed issue where paired panels would become proxied on panelsanity under + certain conditions. + +Download: +[lingo-archipelago-v4.0.1.zip](https://files.fourisland.com/releases/lingo-archipelago/lingo-archipelago-v4.0.1.zip)
+Source: [v4.0.1](https://code.fourisland.com/lingo-archipelago/tag/?h=v4.0.1) + ## v4.0.0 - 2024-07-01 - [Archipelago 0.5.0](https://github.com/ArchipelagoMW/Archipelago/releases/tag/0.5.0) -- cgit 1.4.1 From c1d2dd7b52b9ebb219db92e96e8b11263761bac8 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sun, 14 Jul 2024 08:18:05 -0400 Subject: Show player's alias in multiplayer mode --- Archipelago/multiplayer.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Archipelago/multiplayer.gd b/Archipelago/multiplayer.gd index 2704af7..0bc2241 100644 --- a/Archipelago/multiplayer.gd +++ b/Archipelago/multiplayer.gd @@ -25,7 +25,7 @@ func _on_lobby_joined(lobby_id: int, permissions: int, locked: bool, result: int return var apclient = global.get_node("Archipelago") - Steam.setLobbyMemberData(lobby_id, "slot_name", apclient.ap_user) + Steam.setLobbyMemberData(lobby_id, "slot_name", apclient._player_name_by_slot[apclient._slot]) ._on_lobby_joined(lobby_id, permissions, locked, result) -- cgit 1.4.1 From 9e763bede998c86d23240c09b63f1dae2ad832da Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sun, 14 Jul 2024 08:34:21 -0400 Subject: Clear out messages between connections --- Archipelago/settings_screen.gd | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Archipelago/settings_screen.gd b/Archipelago/settings_screen.gd index 43c9468..6c64b15 100644 --- a/Archipelago/settings_screen.gd +++ b/Archipelago/settings_screen.gd @@ -97,6 +97,14 @@ func _ready(): self.get_node("Panel/player_box").add_font_override("font", field_font) self.get_node("Panel/password_box").add_font_override("font", field_font) + # Clear out messages (kind of a hack). + messages._message_queue.clear() + + for message_label in messages._ordered_labels: + message_label.queue_free() + + messages._ordered_labels.clear() + # Adapted from https://gitlab.com/Delta-V-Modding/Mods/-/blob/main/game/ModLoader.gd func installScriptExtension(childScript: Resource): -- cgit 1.4.1 From c78ed66e4997da9ebf071deb257d38c5aa11eb6e Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sun, 14 Jul 2024 08:48:09 -0400 Subject: Fixed localdata not being reset for new slots --- Archipelago/client.gd | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 8921c3e..7cc8645 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -343,6 +343,11 @@ func _on_data(): setValue("PlayerPos", null) _puzzle_skips = 0 + _last_new_item = -1 + _cached_slowness = 0 + _cached_iceland = 0 + _cached_atbash = 0 + _geronimo_skip = false _localdata_file = "user://archipelago_data/%s_%d" % [_seed, _slot] var ap_file = File.new() @@ -357,31 +362,21 @@ func _on_data(): if localdata.size() > 0: _last_new_item = localdata[0] - else: - _last_new_item = -1 if localdata.size() > 1: _puzzle_skips = localdata[1] if localdata.size() > 2: _cached_slowness = localdata[2] - else: - _cached_slowness = 0 if localdata.size() > 3: _cached_iceland = localdata[3] - else: - _cached_iceland = 0 if localdata.size() > 4: _cached_atbash = localdata[4] - else: - _cached_atbash = 0 if localdata.size() > 5: _geronimo_skip = localdata[5] - else: - _geronimo_skip = false requestSync() -- cgit 1.4.1 From eb750c48db3c3b195d585293d08b8b2ca3b0e091 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sun, 14 Jul 2024 08:48:33 -0400 Subject: Bump version --- Archipelago/client.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 7cc8645..aa50069 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -18,7 +18,7 @@ var enable_multiplayer = false var track_player = false var connection_history = [] -const my_version = "4.0.1" +const my_version = "4.0.2" const ap_version = {"major": 0, "minor": 5, "build": 0, "class": "Version"} const color_items = [ "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" -- cgit 1.4.1 From 6b5b85f96fc855810ac21e96e1aeb9cbde0fe88e Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sun, 14 Jul 2024 08:55:09 -0400 Subject: Released v4.0.2 --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c5113a..1174ce7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # lingo-archipelago Releases +## v4.0.2 - 2024-07-14 + +- Multiplayer mode now shows a player's alias in addition to their slot name. +- Messages are now cleared out between connections. +- Fixed issue where traps and Geronimo state could persist when switching from + an active slot to a new slot. + +Download: +[lingo-archipelago-v4.0.2.zip](https://files.fourisland.com/releases/lingo-archipelago/lingo-archipelago-v4.0.2.zip)
+Source: [v4.0.2](https://code.fourisland.com/lingo-archipelago/tag/?h=v4.0.2) + ## v4.0.1 - 2024-07-02 - Fixed issue where paired panels would become proxied on panelsanity under -- cgit 1.4.1