about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--Archipelago/client.gd14
-rw-r--r--util/generate_gamedata.rb5
2 files changed, 19 insertions, 0 deletions
diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 7903df2..c690986 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd
@@ -47,6 +47,7 @@ const kREARRANGE_PANELS = 1
47const kCLASSIFICATION_LOCAL_NORMAL = 1 47const kCLASSIFICATION_LOCAL_NORMAL = 1
48const kCLASSIFICATION_LOCAL_REDUCED = 2 48const kCLASSIFICATION_LOCAL_REDUCED = 2
49const kCLASSIFICATION_LOCAL_INSANITY = 4 49const kCLASSIFICATION_LOCAL_INSANITY = 4
50const kCLASSIFICATION_LOCAL_SMALL_SPHERE_ONE = 8
50 51
51const kCLASSIFICATION_REMOTE_NORMAL = 0 52const kCLASSIFICATION_REMOTE_NORMAL = 0
52const kCLASSIFICATION_REMOTE_REDUCED = 1 53const kCLASSIFICATION_REMOTE_REDUCED = 1
@@ -265,8 +266,12 @@ func _on_data():
265 _victory_condition = _slot_data["victory_condition"] 266 _victory_condition = _slot_data["victory_condition"]
266 if _slot_data.has("shuffle_colors"): 267 if _slot_data.has("shuffle_colors"):
267 _color_shuffle = _slot_data["shuffle_colors"] 268 _color_shuffle = _slot_data["shuffle_colors"]
269
268 if _slot_data.has("shuffle_doors"): 270 if _slot_data.has("shuffle_doors"):
269 _door_shuffle = (_slot_data["shuffle_doors"] > 0) 271 _door_shuffle = (_slot_data["shuffle_doors"] > 0)
272 else:
273 _door_shuffle = false
274
270 if _slot_data.has("shuffle_paintings"): 275 if _slot_data.has("shuffle_paintings"):
271 _painting_shuffle = _slot_data["shuffle_paintings"] 276 _painting_shuffle = _slot_data["shuffle_paintings"]
272 if _slot_data.has("shuffle_panels"): 277 if _slot_data.has("shuffle_panels"):
@@ -283,6 +288,7 @@ func _on_data():
283 _mastery_achievements = _slot_data["mastery_achievements"] 288 _mastery_achievements = _slot_data["mastery_achievements"]
284 if _slot_data.has("level_2_requirement"): 289 if _slot_data.has("level_2_requirement"):
285 _level_2_requirement = _slot_data["level_2_requirement"] 290 _level_2_requirement = _slot_data["level_2_requirement"]
291
286 if _slot_data.has("location_checks"): 292 if _slot_data.has("location_checks"):
287 if _slot_data["location_checks"] == kCLASSIFICATION_REMOTE_NORMAL: 293 if _slot_data["location_checks"] == kCLASSIFICATION_REMOTE_NORMAL:
288 _location_classification_bit = kCLASSIFICATION_LOCAL_NORMAL 294 _location_classification_bit = kCLASSIFICATION_LOCAL_NORMAL
@@ -290,8 +296,13 @@ func _on_data():
290 _location_classification_bit = kCLASSIFICATION_LOCAL_REDUCED 296 _location_classification_bit = kCLASSIFICATION_LOCAL_REDUCED
291 elif _slot_data["location_checks"] == kCLASSIFICATION_REMOTE_INSANITY: 297 elif _slot_data["location_checks"] == kCLASSIFICATION_REMOTE_INSANITY:
292 _location_classification_bit = kCLASSIFICATION_LOCAL_INSANITY 298 _location_classification_bit = kCLASSIFICATION_LOCAL_INSANITY
299 else:
300 _location_classification_bit = kCLASSIFICATION_LOCAL_NORMAL
301
293 if _slot_data.has("early_color_hallways"): 302 if _slot_data.has("early_color_hallways"):
294 _early_color_hallways = _slot_data["early_color_hallways"] 303 _early_color_hallways = _slot_data["early_color_hallways"]
304 else:
305 _early_color_hallways = false
295 if _slot_data.has("enable_pilgrimage"): 306 if _slot_data.has("enable_pilgrimage"):
296 _pilgrimage_enabled = _slot_data["enable_pilgrimage"] 307 _pilgrimage_enabled = _slot_data["enable_pilgrimage"]
297 else: 308 else:
@@ -312,6 +323,9 @@ func _on_data():
312 if _slot_data.has("sunwarp_permutation"): 323 if _slot_data.has("sunwarp_permutation"):
313 _sunwarp_mapping = _slot_data["sunwarp_permutation"] 324 _sunwarp_mapping = _slot_data["sunwarp_permutation"]
314 325
326 if _door_shuffle and not _early_color_hallways:
327 _location_classification_bit += kCLASSIFICATION_LOCAL_SMALL_SPHERE_ONE
328
315 if track_player: 329 if track_player:
316 setValue("PlayerPos", {"x": 0, "z": 0}) 330 setValue("PlayerPos", {"x": 0, "z": 0})
317 else: 331 else:
diff --git a/util/generate_gamedata.rb b/util/generate_gamedata.rb index 1f18b7e..ce8df43 100644 --- a/util/generate_gamedata.rb +++ b/util/generate_gamedata.rb
@@ -8,6 +8,7 @@ outputpath = ARGV[2]
8CLASSIFICATION_NORMAL = 1 8CLASSIFICATION_NORMAL = 1
9CLASSIFICATION_REDUCED = 2 9CLASSIFICATION_REDUCED = 2
10CLASSIFICATION_INSANITY = 4 10CLASSIFICATION_INSANITY = 4
11CLASSIFICATION_SMALL_SPHERE_ONE = 8
11 12
12panel_to_id = {} 13panel_to_id = {}
13door_groups = {} 14door_groups = {}
@@ -85,6 +86,10 @@ config.each do |room_name, room_data|
85 classification_by_location_id[location_id] += CLASSIFICATION_REDUCED 86 classification_by_location_id[location_id] += CLASSIFICATION_REDUCED
86 end 87 end
87 end 88 end
89
90 if room_name == "Starting Room"
91 classification_by_location_id[location_id] += CLASSIFICATION_SMALL_SPHERE_ONE
92 end
88 end 93 end
89 end 94 end
90 95