diff options
-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| |