maniator / maniator/verticopolis
[Bug]: [P3] Crane sits a story low over a multi-floor top unit
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 5
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Imported from the engineering backlog (
_bmad-output/implementation-artifacts/backlog.md, storycrane-fix).
Priority P3 (do-first order) | Severity: low (cosmetic) | Status: open | Epic: — | Type: review-deferral | Recorded: 2026-07-06
What happened?
Ready. Crane can sit a story low over a multi-floor top unit (pre-existing). Tower.highestFloor returns max base floor and ignores multi-floor extents, so a top row formed only by the upper story of a 2-floor unit based at hi−1 yields highestFloor=hi−1; the crane perches a story below the visual roof. More visible than the edge-overhang case below, do this one first when the crane/render code is open. Fix: derive the crane's floor from the true topmost occupied row (u.floor + facilityFloors(u.kind) − 1). (Edge Case Hunter, floating-crane fix.)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating Tower.highestFloor and the crane/render code described in the issue. Trace how the crane's floor is derived for multi-floor units, then verify that it uses the true topmost occupied row so the crane sits over the visual roof rather than one story below.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- game-dev
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100