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 | ||
