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 e07fc46..8a15d03 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
@@ -272,8 +273,12 @@ func _on_data():
272 _victory_condition = _slot_data["victory_condition"] 273 _victory_condition = _slot_data["victory_condition"]
273 if _slot_data.has("shuffle_colors"): 274 if _slot_data.has("shuffle_colors"):
274 _color_shuffle = _slot_data["shuffle_colors"] 275 _color_shuffle = _slot_data["shuffle_colors"]
276
275 if _slot_data.has("shuffle_doors"): 277 if _slot_data.has("shuffle_doors"):
276 _door_shuffle = (_slot_data["shuffle_doors"] > 0) 278 _door_shuffle = (_slot_data["shuffle_doors"] > 0)
279 else:
280 _door_shuffle = false
281
277 if _slot_data.has("shuffle_paintings"): 282 if _slot_data.has("shuffle_paintings"):
278 _painting_shuffle = _slot_data["shuffle_paintings"] 283 _painting_shuffle = _slot_data["shuffle_paintings"]
279 if _slot_data.has("shuffle_panels"): 284 if _slot_data.has("shuffle_panels"):
@@ -290,6 +295,7 @@ func _on_data():
290 _mastery_achievements = _slot_data["mastery_achievements"] 295 _mastery_achievements = _slot_data["mastery_achievements"]
291 if _slot_data.has("level_2_requirement"): 296 if _slot_data.has("level_2_requirement"):
292 _level_2_requirement = _slot_data["level_2_requirement"] 297 _level_2_requirement = _slot_data["level_2_requirement"]
298
293 if _slot_data.has("location_checks"): 299 if _slot_data.has("location_checks"):
294 if _slot_data["location_checks"] == kCLASSIFICATION_REMOTE_NORMAL: 300 if _slot_data["location_checks"] == kCLASSIFICATION_REMOTE_NORMAL:
295 _location_classification_bit = kCLASSIFICATION_LOCAL_NORMAL 301 _location_classification_bit = kCLASSIFICATION_LOCAL_NORMAL
@@ -297,8 +303,13 @@ func _on_data():
297 _location_classification_bit = kCLASSIFICATION_LOCAL_REDUCED 303 _location_classification_bit = kCLASSIFICATION_LOCAL_REDUCED
298 elif _slot_data["location_checks"] == kCLASSIFICATION_REMOTE_INSANITY: 304 elif _slot_data["location_checks"] == kCLASSIFICATION_REMOTE_INSANITY:
299 _location_classification_bit = kCLASSIFICATION_LOCAL_INSANITY 305 _location_classification_bit = kCLASSIFICATION_LOCAL_INSANITY
306 else:
307 _location_classification_bit = kCLASSIFICATION_LOCAL_NORMAL
308
300 if _slot_data.has("early_color_hallways"): 309 if _slot_data.has("early_color_hallways"):
301 _early_color_hallways = _slot_data["early_color_hallways"] 310 _early_color_hallways = _slot_data["early_color_hallways"]
311 else:
312 _early_color_hallways = false
302 if _slot_data.has("enable_pilgrimage"): 313 if _slot_data.has("enable_pilgrimage"):
303 _pilgrimage_enabled = _slot_data["enable_pilgrimage"] 314 _pilgrimage_enabled = _slot_data["enable_pilgrimage"]
304 else: 315 else:
@@ -319,6 +330,9 @@ func _on_data():
319 if _slot_data.has("sunwarp_permutation"): 330 if _slot_data.has("sunwarp_permutation"):
320 _sunwarp_mapping = _slot_data["sunwarp_permutation"] 331 _sunwarp_mapping = _slot_data["sunwarp_permutation"]
321 332
333 if _door_shuffle and not _early_color_hallways:
334 _location_classification_bit += kCLASSIFICATION_LOCAL_SMALL_SPHERE_ONE
335
322 if track_player: 336 if track_player:
323 setValue("PlayerPos", {"x": 0, "z": 0}) 337 setValue("PlayerPos", {"x": 0, "z": 0})
324 else: 338 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