Skip to content

fix(maps): repair non-enterable Asteria exits #256

Description

@zoeyrose

Summary

Repair the authored Asteria stair that resolves to a non-enterable roof-only
destination, and fix every other equivalent static exit finding reported by
the companion content validator issue #255.

The original report is atrinik/classic#472. It exposed a
stair beside the building containing Gemi that is presented as a usable tiled
transition even though its upper map has no walkable landing.

Known finding

  • Source map: maps/shattered_islands/world_7_46
  • Source object: stairs_wood_up at (14,5)
  • Resolution: last_heal 9 derives tile_path_9
  • Target: /shattered_islands/world_7_46_1
  • Target condition: roof geometry only, with no usable floor or return stair

Scope

  • Run the validator from #255 against the complete
    authored corpus and record every static non-enterable exit it reports.
  • Repair all findings that are content defects, including the Asteria stair;
    do not limit the change to the original reproduction if the scan finds
    equivalent invalid stairs, exits, tiled links, or destination coordinates.
  • For each finding, choose the intended content behavior explicitly: remove or
    redirect a decorative/invalid exit, or author a valid landing and return path
    where the transition is meant to be playable. Do not make Asteria's roof layer
    playable implicitly just to silence the diagnostic.
  • Preserve valid explicit, same-map, tiled, automatic-link, and shop-mat
    transitions and their authored presentation.
  • Keep the repair in shared content@main and its Classic-target artifact; do
    not target the historical content-1x line.

Acceptance criteria

  • The Asteria stair at world_7_46 (14,5) no longer resolves to an invalid
    roof-only destination.
  • Every validator finding is either repaired or explicitly documented as an
    intentional non-player/dynamic case outside the static validator contract.
  • The validator reports no remaining static non-enterable authored exits in the
    repaired corpus.
  • The normal content validation and Classic-target runtime collection pass
    without modifying authored sources.
  • The resulting content behavior is checked in the Classic runtime or an
    equivalent deterministic fixture where practical.

Context

This replaces the server-heavy implementation proposed in
atrinik/classic#507, which is being closed without merge.
The Classic issue and PR should remain linked as historical context; this issue
owns the authored content repair.

Submission checks

  • This issue is intentionally separate from the validator implementation.
  • The issue contains no credentials, private player data, or undisclosed
    vulnerability details.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingmaps

Type

Fields

Priority

None yet

Effort

None yet

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions