about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--Archipelago/client.gd15
-rw-r--r--Archipelago/teleport.gd10
-rw-r--r--util/generate_gamedata.rb11
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
93const kSUNWARP_ACCESS_NORMAL = 0 93const kSUNWARP_ACCESS_NORMAL = 0
94const kSUNWARP_ACCESS_DISABLED = 1 94const kSUNWARP_ACCESS_DISABLED = 1
95const kSUNWARP_ACCESS_UNLOCK = 2 95const kSUNWARP_ACCESS_UNLOCK = 2
96const kSUNWARP_ACCESS_PROGRESSIVE = 3 96const kSUNWARP_ACCESS_INDIVIDUAL = 3
97const kSUNWARP_ACCESS_PROGRESSIVE = 4
97 98
98var _client = WebSocketClient.new() 99var _client = WebSocketClient.new()
99var _should_process = false 100var _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
6func _ready(): 6func _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
12panel_to_id = {} 12panel_to_id = {}
13door_groups = {} 13door_groups = {}
14warp_groups = {}
14 15
15panel_output = [] 16panel_output = []
16door_ids_by_item_id = {} 17door_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
177end 183end
178 184
185warp_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
188end
189
179File.open(outputpath, "w") do |f| 190File.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|