diff options
| author | Star Rauchenberger <fefferburbia@gmail.com> | 2024-02-28 11:41:00 -0500 |
|---|---|---|
| committer | Star Rauchenberger <fefferburbia@gmail.com> | 2024-02-28 11:41:00 -0500 |
| commit | de5eb04ed014770558b546e02c91ce6eb262f652 (patch) | |
| tree | 464913e3dd535f7f7197637847715f5c44e0fff1 | |
| parent | c1ffc2c464df33c5effbb4a62e4bd57605d409b4 (diff) | |
| download | lingo-archipelago-de5eb04ed014770558b546e02c91ce6eb262f652.tar.gz lingo-archipelago-de5eb04ed014770558b546e02c91ce6eb262f652.tar.bz2 lingo-archipelago-de5eb04ed014770558b546e02c91ce6eb262f652.zip | |
Fix sunwarp access
| -rw-r--r-- | Archipelago/client.gd | 15 | ||||
| -rw-r--r-- | Archipelago/teleport.gd | 10 | ||||
| -rw-r--r-- | util/generate_gamedata.rb | 11 |
3 files changed, 22 insertions, 14 deletions
| diff --git a/Archipelago/client.gd b/Archipelago/client.gd index b93e1cc..7cf1d01 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd | |||
| @@ -65,12 +65,12 @@ const progressive_items = { | |||
| 65 | ], | 65 | ], |
| 66 | "Progressive Pilgrimage": | 66 | "Progressive Pilgrimage": |
| 67 | [ | 67 | [ |
| 68 | {"item": "Hub Room - 1 Sunwarp", "display": "1 Sunwarp"}, | 68 | {"item": "1 Sunwarp", "display": "1 Sunwarp"}, |
| 69 | {"item": "Orange Tower Fourth Floor - 2 Sunwarp", "display": "2 Sunwarp"}, | 69 | {"item": "2 Sunwarp", "display": "2 Sunwarp"}, |
| 70 | {"item": "Orange Tower Third Floor - 3 Sunwarp", "display": "3 Sunwarp"}, | 70 | {"item": "3 Sunwarp", "display": "3 Sunwarp"}, |
| 71 | {"item": "Orange Tower First Floor - 4 Sunwarp", "display": "4 Sunwarp"}, | 71 | {"item": "4 Sunwarp", "display": "4 Sunwarp"}, |
| 72 | {"item": "Orange Tower Fourth Floor - 5 Sunwarp", "display": "5 Sunwarp"}, | 72 | {"item": "5 Sunwarp", "display": "5 Sunwarp"}, |
| 73 | {"item": "Outside The Agreeable - 6 Sunwarp", "display": "6 Sunwarp"}, | 73 | {"item": "6 Sunwarp", "display": "6 Sunwarp"}, |
| 74 | ] | 74 | ] |
| 75 | } | 75 | } |
| 76 | 76 | ||
| @@ -93,7 +93,8 @@ const kCLASSIFICATION_REMOTE_INSANITY = 2 | |||
| 93 | const kSUNWARP_ACCESS_NORMAL = 0 | 93 | const kSUNWARP_ACCESS_NORMAL = 0 |
| 94 | const kSUNWARP_ACCESS_DISABLED = 1 | 94 | const kSUNWARP_ACCESS_DISABLED = 1 |
| 95 | const kSUNWARP_ACCESS_UNLOCK = 2 | 95 | const kSUNWARP_ACCESS_UNLOCK = 2 |
| 96 | const kSUNWARP_ACCESS_PROGRESSIVE = 3 | 96 | const kSUNWARP_ACCESS_INDIVIDUAL = 3 |
| 97 | const kSUNWARP_ACCESS_PROGRESSIVE = 4 | ||
| 97 | 98 | ||
| 98 | var _client = WebSocketClient.new() | 99 | var _client = WebSocketClient.new() |
| 99 | var _should_process = false | 100 | var _should_process = false |
| diff --git a/Archipelago/teleport.gd b/Archipelago/teleport.gd index d322722..66e26dd 100644 --- a/Archipelago/teleport.gd +++ b/Archipelago/teleport.gd | |||
| @@ -5,13 +5,9 @@ var _unlocked = true | |||
| 5 | 5 | ||
| 6 | func _ready(): | 6 | func _ready(): |
| 7 | var apclient = global.get_node("Archipelago") | 7 | var apclient = global.get_node("Archipelago") |
| 8 | if apclient._door_shuffle and !apclient.warpIsVanilla(self.get_parent().name + "/" + self.name): | 8 | if (apclient._sunwarp_access != apclient.kSUNWARP_ACCESS_NORMAL and self.get_parent().name == "Teleporter Warps") or (apclient._door_shuffle and !apclient.warpIsVanilla(self.get_parent().name + "/" + self.name)): |
| 9 | if self.get_parent().name == "Teleporter Warps": | 9 | _unlocked = false |
| 10 | if apclient._sunwarp_access != apclient.kSUNWARP_ACCESS_NORMAL: | 10 | |
| 11 | _unlocked = false | ||
| 12 | else: | ||
| 13 | _unlocked = false | ||
| 14 | |||
| 15 | ._ready() | 11 | ._ready() |
| 16 | 12 | ||
| 17 | 13 | ||
| diff --git a/util/generate_gamedata.rb b/util/generate_gamedata.rb index 1cce003..4c530f1 100644 --- a/util/generate_gamedata.rb +++ b/util/generate_gamedata.rb | |||
| @@ -11,6 +11,7 @@ CLASSIFICATION_INSANITY = 4 | |||
| 11 | 11 | ||
| 12 | panel_to_id = {} | 12 | panel_to_id = {} |
| 13 | door_groups = {} | 13 | door_groups = {} |
| 14 | warp_groups = {} | ||
| 14 | 15 | ||
| 15 | panel_output = [] | 16 | panel_output = [] |
| 16 | door_ids_by_item_id = {} | 17 | door_ids_by_item_id = {} |
| @@ -163,6 +164,11 @@ config.each do |room_name, room_data| | |||
| 163 | internal_warp_ids = door["warp_id"] | 164 | internal_warp_ids = door["warp_id"] |
| 164 | end | 165 | end |
| 165 | 166 | ||
| 167 | if door.include? "group" | ||
| 168 | warp_groups[door["group"]] ||= Set[] | ||
| 169 | warp_groups[door["group"]].merge(internal_warp_ids) | ||
| 170 | end | ||
| 171 | |||
| 166 | warp_ids_by_item_id[item_id] = internal_warp_ids | 172 | warp_ids_by_item_id[item_id] = internal_warp_ids |
| 167 | mentioned_warps.merge(internal_warp_ids) | 173 | mentioned_warps.merge(internal_warp_ids) |
| 168 | end | 174 | end |
| @@ -176,6 +182,11 @@ door_groups.each do |group_name, door_ids| | |||
| 176 | door_ids_by_item_id[item_id] = door_ids.to_a | 182 | door_ids_by_item_id[item_id] = door_ids.to_a |
| 177 | end | 183 | end |
| 178 | 184 | ||
| 185 | warp_groups.each do |group_name, warp_ids| | ||
| 186 | item_id = ids_config["door_groups"][group_name] | ||
| 187 | warp_ids_by_item_id[item_id] = warp_ids.to_a | ||
| 188 | end | ||
| 189 | |||
| 179 | File.open(outputpath, "w") do |f| | 190 | File.open(outputpath, "w") do |f| |
| 180 | f.write "extends Node\n\nvar panels = [" | 191 | f.write "extends Node\n\nvar panels = [" |
| 181 | f.write(panel_output.map do |panel| | 192 | f.write(panel_output.map do |panel| |
