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 8abc42c..6f5fefe 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd | |||
@@ -77,6 +77,7 @@ const kREARRANGE_PANELS = 1 | |||
77 | const kCLASSIFICATION_LOCAL_NORMAL = 1 | 77 | const kCLASSIFICATION_LOCAL_NORMAL = 1 |
78 | const kCLASSIFICATION_LOCAL_REDUCED = 2 | 78 | const kCLASSIFICATION_LOCAL_REDUCED = 2 |
79 | const kCLASSIFICATION_LOCAL_INSANITY = 4 | 79 | const kCLASSIFICATION_LOCAL_INSANITY = 4 |
80 | const kCLASSIFICATION_LOCAL_SMALL_SPHERE_ONE = 8 | ||
80 | 81 | ||
81 | const kCLASSIFICATION_REMOTE_NORMAL = 0 | 82 | const kCLASSIFICATION_REMOTE_NORMAL = 0 |
82 | const kCLASSIFICATION_REMOTE_REDUCED = 1 | 83 | const kCLASSIFICATION_REMOTE_REDUCED = 1 |
@@ -282,8 +283,12 @@ func _on_data(): | |||
282 | _victory_condition = _slot_data["victory_condition"] | 283 | _victory_condition = _slot_data["victory_condition"] |
283 | if _slot_data.has("shuffle_colors"): | 284 | if _slot_data.has("shuffle_colors"): |
284 | _color_shuffle = _slot_data["shuffle_colors"] | 285 | _color_shuffle = _slot_data["shuffle_colors"] |
286 | |||
285 | if _slot_data.has("shuffle_doors"): | 287 | if _slot_data.has("shuffle_doors"): |
286 | _door_shuffle = (_slot_data["shuffle_doors"] > 0) | 288 | _door_shuffle = (_slot_data["shuffle_doors"] > 0) |
289 | else: | ||
290 | _door_shuffle = false | ||
291 | |||
287 | if _slot_data.has("shuffle_paintings"): | 292 | if _slot_data.has("shuffle_paintings"): |
288 | _painting_shuffle = _slot_data["shuffle_paintings"] | 293 | _painting_shuffle = _slot_data["shuffle_paintings"] |
289 | if _slot_data.has("shuffle_panels"): | 294 | if _slot_data.has("shuffle_panels"): |
@@ -296,6 +301,7 @@ func _on_data(): | |||
296 | _mastery_achievements = _slot_data["mastery_achievements"] | 301 | _mastery_achievements = _slot_data["mastery_achievements"] |
297 | if _slot_data.has("level_2_requirement"): | 302 | if _slot_data.has("level_2_requirement"): |
298 | _level_2_requirement = _slot_data["level_2_requirement"] | 303 | _level_2_requirement = _slot_data["level_2_requirement"] |
304 | |||
299 | if _slot_data.has("location_checks"): | 305 | if _slot_data.has("location_checks"): |
300 | if _slot_data["location_checks"] == kCLASSIFICATION_REMOTE_NORMAL: | 306 | if _slot_data["location_checks"] == kCLASSIFICATION_REMOTE_NORMAL: |
301 | _location_classification_bit = kCLASSIFICATION_LOCAL_NORMAL | 307 | _location_classification_bit = kCLASSIFICATION_LOCAL_NORMAL |
@@ -303,8 +309,16 @@ func _on_data(): | |||
303 | _location_classification_bit = kCLASSIFICATION_LOCAL_REDUCED | 309 | _location_classification_bit = kCLASSIFICATION_LOCAL_REDUCED |
304 | elif _slot_data["location_checks"] == kCLASSIFICATION_REMOTE_INSANITY: | 310 | elif _slot_data["location_checks"] == kCLASSIFICATION_REMOTE_INSANITY: |
305 | _location_classification_bit = kCLASSIFICATION_LOCAL_INSANITY | 311 | _location_classification_bit = kCLASSIFICATION_LOCAL_INSANITY |
312 | else: | ||
313 | _location_classification_bit = kCLASSIFICATION_LOCAL_NORMAL | ||
314 | |||
306 | if _slot_data.has("early_color_hallways"): | 315 | if _slot_data.has("early_color_hallways"): |
307 | _early_color_hallways = _slot_data["early_color_hallways"] | 316 | _early_color_hallways = _slot_data["early_color_hallways"] |
317 | else: | ||
318 | _early_color_hallways = false | ||
319 | |||
320 | if _door_shuffle and not _early_color_hallways: | ||
321 | _location_classification_bit += kCLASSIFICATION_LOCAL_SMALL_SPHERE_ONE | ||
308 | 322 | ||
309 | if track_player: | 323 | if track_player: |
310 | setValue("PlayerPos", {"x": 0, "z": 0}) | 324 | setValue("PlayerPos", {"x": 0, "z": 0}) |
diff --git a/util/generate_gamedata.rb b/util/generate_gamedata.rb index f63e062..3f610b1 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 = {} |
@@ -80,6 +81,10 @@ config.each do |room_name, room_data| | |||
80 | classification_by_location_id[location_id] += CLASSIFICATION_REDUCED | 81 | classification_by_location_id[location_id] += CLASSIFICATION_REDUCED |
81 | end | 82 | end |
82 | end | 83 | end |
84 | |||
85 | if room_name == "Starting Room" | ||
86 | classification_by_location_id[location_id] += CLASSIFICATION_SMALL_SPHERE_ONE | ||
87 | end | ||
83 | end | 88 | end |
84 | end | 89 | end |
85 | 90 | ||