maniator / maniator/verticopolis

[Feature]: [P2] Buildable 1-3 story ground and sky lobbies (TDT lobbyHeight round-trip)

Open
#308 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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, story lobby-height).
Priority P2 (do-first order) | Severity: n/a | Status: idea | Epic: Classic parity | Type: feature-request | Recorded: 2026-07-08

Problem / motivation

Gated: tier-2, needs a spec. Spec seed: gdd-classic-modern-pricing-roadmap-2026-07-08 §4. Buildable 1-3 story ground lobby (TDT header lobbyHeight byte 1-3; tdt-format.md §1). Today lobbies are a single-story transit layer (facilities.ts); the grand lobby is purely cosmetic dressing (PARITY:80). The audit ranked this the most VISIBLE missing thing in the game (the iconic tall grand lobby is a real buildable structural choice in the original). M-L; touches structure/placement/render + a save field. The importer's header parse doesn't consume lobbyHeight yet either. EXTENDED (owner observation 2026-07-08, real mobile tower via harness): this is NOT just the ground lobby. SKY lobbies (floors 15/30/45/...) also have 1-3 story heights in the real 1994 game; we model every lobby (ground AND sky) as single-story (facilities.ts; Tower.ts:16 "ground floor + every 15th"). So importing a real tower whose sky/ground lobbies are 2-3 stories LOSES that height (they come in single-story), and export writes lobbyHeight 0/1 only (tdtExport.ts setHdrU16 0x1c). This is a Classic parity gap (multi-story lobbies are canon structural choices, the iconic grand lobby), and it degrades the TDT round-trip fidelity we are otherwise fixing. Resolve in CLASSIC first (canon 1-3 story ground + sky lobbies, round-trip the height byte + the sky-lobby heights); optionally richer in Modern. Blocks full round-trip fidelity for towers with tall lobbies (e.g. the owner's mobile save). CONFIRMED CANON + the exact mechanic (SimTower Wiki, owner 2026-07-08): multi-level lobbies are a hidden input, hold Ctrl (2-level) or Shift+Ctrl (3-level) when FIRST placing a lobby (ground OR sky, so the sky-lobby extension holds). Effects to model: it changes the stairs/escalator appearance, elevators CANNOT stop on the extra lobby floors, and the floor number does NOT appear in the shaft on those floors. Lobby price is $1,250 per segment, 1-4 segments ($5,000 for a full 4-segment level); capacity infinite; cannot be placed underground; cannot be deleted. So lobbyHeight 1-3 is player-controlled and the round-trip should carry it. BUILD: the Ctrl/Shift+Ctrl placement modifier + the no-stop / no-floor-number render+dispatch consequences + round-trip the height on TDT import/export. Owner will generate a multi-story-lobby real save (headless Ctrl-place test is a follow-up) as a fixture.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with facilities.ts and Tower.ts:16 to map ground and sky lobby representation, then inspect the importer and tdtExport.ts together with tdt-format.md §1. Define the Classic placement, rendering, elevator-dispatch, and floor-number behavior for 1–3 story lobbies, and verify that lobbyHeight survives TDT import/export for ground and sky lobbies.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.