diff options
| -rw-r--r-- | Archipelago/client.gd | 6 | ||||
| -rw-r--r-- | Archipelago/extradata.gd | 15 | ||||
| -rw-r--r-- | Archipelago/load.gd | 1 | ||||
| -rw-r--r-- | Archipelago/painting.gd | 32 | ||||
| -rw-r--r-- | CHANGELOG.md | 28 |
5 files changed, 71 insertions, 11 deletions
| diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 2c60f7c..fffd8c3 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd | |||
| @@ -19,7 +19,7 @@ var enable_multiplayer = false | |||
| 19 | var track_player = false | 19 | var track_player = false |
| 20 | var connection_history = [] | 20 | var connection_history = [] |
| 21 | 21 | ||
| 22 | const my_version = "5.3.1" | 22 | const my_version = "5.4.0" |
| 23 | const ap_version = {"major": 0, "minor": 5, "build": 1, "class": "Version"} | 23 | const ap_version = {"major": 0, "minor": 5, "build": 1, "class": "Version"} |
| 24 | const color_items = [ | 24 | const color_items = [ |
| 25 | "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" | 25 | "White", "Black", "Red", "Blue", "Green", "Brown", "Gray", "Orange", "Purple", "Yellow" |
| @@ -908,8 +908,8 @@ func processItem(item, index, from, flags): | |||
| 908 | item_name += " (%s)" % prognames[item_name][_progressive_progress[int(item)]] | 908 | item_name += " (%s)" % prognames[item_name][_progressive_progress[int(item)]] |
| 909 | _progressive_progress[int(item)] += 1 | 909 | _progressive_progress[int(item)] += 1 |
| 910 | 910 | ||
| 911 | if _color_shuffle and color_items.has(_item_id_to_name["Lingo"][item]): | 911 | if _color_shuffle and color_items.has(_item_id_to_name["Lingo"][float(item)]): |
| 912 | var lcol = _item_id_to_name["Lingo"][item].to_lower() | 912 | var lcol = _item_id_to_name["Lingo"][float(item)].to_lower() |
| 913 | if not _has_colors.has(lcol): | 913 | if not _has_colors.has(lcol): |
| 914 | _has_colors.append(lcol) | 914 | _has_colors.append(lcol) |
| 915 | emit_signal("evaluate_solvability") | 915 | emit_signal("evaluate_solvability") |
| diff --git a/Archipelago/extradata.gd b/Archipelago/extradata.gd index 2e26eb2..c90433a 100644 --- a/Archipelago/extradata.gd +++ b/Archipelago/extradata.gd | |||
| @@ -177,3 +177,18 @@ var panels_mode_051_door_fixes = { | |||
| 177 | "Door_nine_hider_2" | 177 | "Door_nine_hider_2" |
| 178 | ] | 178 | ] |
| 179 | } | 179 | } |
| 180 | |||
| 181 | var pilgrimage_061_painting_fixes = [ | ||
| 182 | "outside2", | ||
| 183 | "outside_2", | ||
| 184 | "outside_3", | ||
| 185 | "outside_4", | ||
| 186 | "north2", | ||
| 187 | "south2", | ||
| 188 | "west2", | ||
| 189 | "east_enter", | ||
| 190 | "owl_painting_4", | ||
| 191 | "garden_painting", | ||
| 192 | "yinyang_painting", | ||
| 193 | "fruitbowl_painting2" | ||
| 194 | ] | ||
| diff --git a/Archipelago/load.gd b/Archipelago/load.gd index e050f23..b95e4c4 100644 --- a/Archipelago/load.gd +++ b/Archipelago/load.gd | |||
| @@ -120,6 +120,7 @@ func _load(): | |||
| 120 | new_master_cdp.translation = old_master_cdp.translation | 120 | new_master_cdp.translation = old_master_cdp.translation |
| 121 | new_master_cdp.rotation = old_master_cdp.rotation | 121 | new_master_cdp.rotation = old_master_cdp.rotation |
| 122 | get_node("CountdownPanels").add_child(new_master_cdp) | 122 | get_node("CountdownPanels").add_child(new_master_cdp) |
| 123 | old_master_cdp.total = 5000 | ||
| 123 | old_master_cdp.queue_free() | 124 | old_master_cdp.queue_free() |
| 124 | 125 | ||
| 125 | # Configure AN OTHER WAY. | 126 | # Configure AN OTHER WAY. |
| diff --git a/Archipelago/painting.gd b/Archipelago/painting.gd index adc8337..dc791ce 100644 --- a/Archipelago/painting.gd +++ b/Archipelago/painting.gd | |||
| @@ -1,10 +1,26 @@ | |||
| 1 | extends "res://scripts/painting.gd" | 1 | extends "res://scripts/painting.gd" |
| 2 | 2 | ||
| 3 | func _looked_at(var body, var painting): | 3 | var breaks_pilgrimage = false |
| 4 | ._looked_at(body, painting) | 4 | |
| 5 | 5 | ||
| 6 | if body.is_in_group("player") && (painting.get_name() == self.get_name()): | 6 | func _ready(): |
| 7 | var apclient = global.get_node("Archipelago") | 7 | var apclient = global.get_node("Archipelago") |
| 8 | if !apclient._pilgrimage_allows_paintings: | 8 | if !apclient._pilgrimage_allows_paintings: |
| 9 | global.sunwarp = 1 | 9 | if apclient.wasGeneratedBeforeVersion(0, 6, 2): |
| 10 | body.get_node("pivot/camera/sunwarp_background").visible = false | 10 | var extradata = apclient.get_node("Extradata") |
| 11 | if not extradata.pilgrimage_061_painting_fixes.has(get_name()): | ||
| 12 | breaks_pilgrimage = true | ||
| 13 | else: | ||
| 14 | breaks_pilgrimage = true | ||
| 15 | |||
| 16 | |||
| 17 | func _looked_at(body, painting): | ||
| 18 | ._looked_at(body, painting) | ||
| 19 | |||
| 20 | if ( | ||
| 21 | breaks_pilgrimage | ||
| 22 | and body.is_in_group("player") | ||
| 23 | and (painting.get_name() == self.get_name()) | ||
| 24 | ): | ||
| 25 | global.sunwarp = 1 | ||
| 26 | body.get_node("pivot/camera/sunwarp_background").visible = false | ||
| diff --git a/CHANGELOG.md b/CHANGELOG.md index 77aadcd..6e02284 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md | |||
| @@ -1,5 +1,33 @@ | |||
| 1 | # lingo-archipelago Releases | 1 | # lingo-archipelago Releases |
| 2 | 2 | ||
| 3 | ## v5.4.0 - 2025-05-17 | ||
| 4 | |||
| 5 | - ProgUseful items (items marked both Progression and Useful) are now colored | ||
| 6 | gold in the text client and the message popups. | ||
| 7 | - Fixed an issue where two copies of THE MASTER could appear on top of one | ||
| 8 | another. | ||
| 9 | - This update adds a workaround for | ||
| 10 | [a logic error in Archipelago 0.6.1 and earlier](https://github.com/ArchipelagoMW/Archipelago/pull/5005). | ||
| 11 | - This bug causes the paintings in The Bearer to be considered logically | ||
| 12 | usable for the pilgrimage even when the "Allow Paintings For Pilgrimage" | ||
| 13 | option is disabled, despite the paintings not being usable in-game. This | ||
| 14 | can, on rare occasion, cause the game to become unbeatable. | ||
| 15 | - If you are playing in a slot affected by this issue (generated using | ||
| 16 | Archipelago 0.6.1 or earlier, with pilgrimage enabled and paintings during | ||
| 17 | pilgrimage disabled), the mod will work around the issue by allowing you to | ||
| 18 | use the paintings in The Bearer without breaking your pilgrimage. | ||
| 19 | - This can lead to non-intuitive gameplay, as one would not expect the | ||
| 20 | paintings to be usable in this situation. You can use the Lingo AP Tracker | ||
| 21 | to figure out whether or not you are expected to be able to perform a | ||
| 22 | pilgrimage, as it currently uses the same broken logic as the generator. | ||
| 23 | - There is already a fix for the logic error, and it will likely be included | ||
| 24 | as part of the next major Archipelago release. I apologize for the | ||
| 25 | inconvenience. | ||
| 26 | |||
| 27 | Download: | ||
| 28 | [lingo-archipelago-v5.4.0.zip](https://files.fourisland.com/releases/lingo-archipelago/lingo-archipelago-v5.4.0.zip)<br/> | ||
| 29 | Source: [v5.4.0](https://code.fourisland.com/lingo-archipelago/tag/?h=v5.4.0) | ||
| 30 | |||
| 3 | ## v5.3.1 - 2025-03-22 | 31 | ## v5.3.1 - 2025-03-22 |
| 4 | 32 | ||
| 5 | - Fixed a bug with panel syncing that would cause the client to crash on | 33 | - Fixed a bug with panel syncing that would cause the client to crash on |
