diff options
-rw-r--r-- | Archipelago/client.gd | 14 | ||||
-rw-r--r-- | util/generate_gamedata.rb | 5 |
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 | |||
47 | const kCLASSIFICATION_LOCAL_NORMAL = 1 | 47 | const kCLASSIFICATION_LOCAL_NORMAL = 1 |
48 | const kCLASSIFICATION_LOCAL_REDUCED = 2 | 48 | const kCLASSIFICATION_LOCAL_REDUCED = 2 |
49 | const kCLASSIFICATION_LOCAL_INSANITY = 4 | 49 | const kCLASSIFICATION_LOCAL_INSANITY = 4 |
50 | const kCLASSIFICATION_LOCAL_SMALL_SPHERE_ONE = 8 | ||
50 | 51 | ||
51 | const kCLASSIFICATION_REMOTE_NORMAL = 0 | 52 | const kCLASSIFICATION_REMOTE_NORMAL = 0 |
52 | const kCLASSIFICATION_REMOTE_REDUCED = 1 | 53 | const 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] | |||
8 | CLASSIFICATION_NORMAL = 1 | 8 | CLASSIFICATION_NORMAL = 1 |
9 | CLASSIFICATION_REDUCED = 2 | 9 | CLASSIFICATION_REDUCED = 2 |
10 | CLASSIFICATION_INSANITY = 4 | 10 | CLASSIFICATION_INSANITY = 4 |
11 | CLASSIFICATION_SMALL_SPHERE_ONE = 8 | ||
11 | 12 | ||
12 | panel_to_id = {} | 13 | panel_to_id = {} |
13 | door_groups = {} | 14 | door_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 | ||