/** * Lantern Wake, the Western Kingdoms' first stop (phase 1c; plan `.cursor/task-plans/2026-10-10-western-1c-first-stop-plan.md`, * built from ChatGPT's six first-stop sheets, design ids `western-kingdoms-first-stop-1-arrival` to `-6-first-ten-minutes`). * * Slice 1c-1 (this file's first version): the GROUND. The station where the train climbs out of the sea (phase 0c's stub, * kept tile for tile: types westernTrain.ts WESTERN_ISLE_* and LANTERN_WAKE_FRAME_DX/DZ), the arrival square a step down from * the platform, the landing town's ground and street, the quay laid over the bay's north-west corner, the coast path up the * headland to the Beacon Gallery's cliff-top terrace, the beacon's knoll, the lookout, the Forest Edge, the Hook (the rock * wall south of the line), Crab Beach, the tide pools, the cove, the sunken ruins' causeway and plaza, the sea stacks, and * the ridges that close the ground until the next region is built (James, 2026-10-10: "yes"). Backend lanternWake.ts lays * it; later slices dress the town (1c-3), the gallery (1c-5), the quest (1c-6) and the wildlife (1c-8) on it. * * Every number is a WORLD tile (the strip's land frame is types westernKingdoms.ts WESTERN_LAND_X/Z; local = world - * (1616, 64)). The sea is EAST of the stop: the sheets' views are turned (the town north of the station, the quay on the * bay's north shore, the gallery on the east cliffs north of the bay, the beacon on the point beyond it, the lookout further * north, the sunken city off the bay's south-east). No respawn point: a death in the Western Kingdoms still wakes at Hope * Beach (James, 2026-10-10: "this is part of the difficulty of the game"), so nothing here promises one. */ import type { DiscoveryZone } from './landmarks.js'; export declare const LANTERN_WAKE_NAME = "Lantern Wake"; export type LanternWakeBox = { readonly minX: number; readonly maxX: number; readonly minZ: number; readonly maxZ: number; }; export type LanternWakePoint = readonly [number, number]; export declare function inLanternWakeBox(x: number, z: number, b: LanternWakeBox, pad?: number): boolean; /** The first stop's whole box (its discovery zone): the ridges, the ground they close, the bay's shallows and the ruins. */ export declare const LANTERN_WAKE_BOX: LanternWakeBox; /** * The barriers (James's answer 3, 2026-10-10): a rock ridge down the ground's west side (the road inland is washed out where * it meets it, a rockfall across it) and another along its north side to the sea (a rockfall where the coast path would go * on). Blocked stone well above the ground, crags on top, pines either side; the land beyond stays the blockout's grass * until the next region is built. */ export declare const LANTERN_WAKE_WEST_RIDGE: LanternWakeBox; export declare const LANTERN_WAKE_NORTH_RIDGE: LanternWakeBox; export declare const LANTERN_WAKE_RIDGE_HEIGHT = 11; /** * The pass (Brindlecross slice 1, 2026-10-12): where the street meets the west ridge the ridge is cut through, seven tiles * wide on the street's row, and the road goes on west as the Brindle Road to Brindlecross. The way is a walk gate at * Combat 10 (types areaGates.ts `brindle-road`, band LANTERN_WAKE_PASS_BAND); the ridge's sides stay blocked stone. */ export declare const LANTERN_WAKE_PASS: LanternWakeBox; /** The gate's band across the pass (two tiles deep), blocked for anyone the gate does not admit. */ export declare const LANTERN_WAKE_PASS_BAND: LanternWakeBox; /** Is a world tile inside the ridges (the first stop's ground, land or laid over the sea)? */ export declare function inLanternWakeGround(x: number, z: number): boolean; /** The town, the street and the station's grass: the land's own ground height. */ export declare const LANTERN_WAKE_TOWN_HEIGHT = 3; /** The arrival square: one step down from the platform's 5, one up from the town's 3. */ export declare const LANTERN_WAKE_SQUARE_HEIGHT = 4; /** The quay, laid as stone over the bay's corner: one step down from the street. */ export declare const LANTERN_WAKE_QUAY_HEIGHT = 2; /** The Beacon Gallery's cliff-top terrace (the drop to the sea is its far barrier). */ export declare const LANTERN_WAKE_GALLERY_HEIGHT = 8; /** The beacon's knoll on the headland point. */ export declare const LANTERN_WAKE_BEACON_HEIGHT = 12; /** The lookout's pad over the north-east sea. */ export declare const LANTERN_WAKE_LOOKOUT_HEIGHT = 10; /** The sunken ruins' causeway and plaza, laid over the shallows. */ export declare const LANTERN_WAKE_RUINS_HEIGHT = 1; /** The arrival square, flagstones between the town and the platform (whose north edge is z 1115). */ export declare const LANTERN_WAKE_SQUARE: LanternWakeBox; /** The landing town's ground north of the square (1c-3 dresses it: the inn, stalls, bank corner, fletcher, houses). */ export declare const LANTERN_WAKE_TOWN: LanternWakeBox; /** The quay: stone over the sea triangle of the bay's north-west corner (1c-3 puts the crane, stall, jetty and boats on it). */ export declare const LANTERN_WAKE_QUAY: LanternWakeBox; /** The Beacon Gallery's terrace on the straight east cliff (x 2148, the outline change), its deck to the cliff edge. */ export declare const LANTERN_WAKE_GALLERY: LanternWakeBox; /** The beacon tower's tiles (lwbeacontower 5 x 5, slice 1c-4) and the quest's reach box at its door. */ export declare const LANTERN_WAKE_BEACON_TOWER: LanternWakeBox; export declare const LANTERN_WAKE_BEACON_REACH: LanternWakeBox; /** The knoll's flat top round the tower and the reach box, at the beacon's height. */ export declare const LANTERN_WAKE_BEACON_KNOLL: LanternWakeBox; /** The lookout's flagstone pad over the north-east sea (the broken pass is drawn on that horizon, never tiles). */ export declare const LANTERN_WAKE_LOOKOUT: LanternWakeBox; /** The Hook: jagged blocked rock south of the line, the dark wall the train runs between and the platform. */ export declare const LANTERN_WAKE_HOOK: LanternWakeBox; /** The shore south of the Hook: Crab Beach, the tide pools and Fisherman's Cove (sand widened inland). */ export declare const LANTERN_WAKE_CRAB_BEACH: LanternWakeBox; export declare const LANTERN_WAKE_TIDE_POOLS: LanternWakeBox; export declare const LANTERN_WAKE_COVE: LanternWakeBox; /** The sunken ruins' edge: a broken causeway off the shore out to a broken plaza, both laid over the shallows. */ export declare const LANTERN_WAKE_RUINS_CAUSEWAY: LanternWakeBox; export declare const LANTERN_WAKE_RUINS_PLAZA: LanternWakeBox; /** Sea left open inside the plaza (holes where the floor fell in), none on the walk from the causeway. */ export declare const LANTERN_WAKE_RUINS_HOLES: readonly LanternWakeBox[]; /** The train's sea lane: nothing is laid or placed here east of the station (only the sea portal at the line's end). */ export declare const LANTERN_WAKE_SEA_LANE: LanternWakeBox; /** * The paths (world polylines, width in tiles), laid as Path on the grass: the street (the road inland, washed out at the * west ridge), the square's way up to it, the coast path up to the gallery, the beacon path, the way on to the lookout, the * Forest Edge back down to the town, and the south path round the rock cap and the Hook to Crab Beach. */ export declare const LANTERN_WAKE_PATHS: ReadonlyArray<{ id: string; w: number; pts: readonly LanternWakePoint[]; }>; /** The train's line comes up out of the sea through a half-drowned dwarven portal at the causeway's sea end (x 2097). */ export declare const LANTERN_WAKE_SEA_PORTAL: { readonly id: "lw-station-sea-portal"; readonly x: 2099; readonly z: 1121; readonly facing: "w"; readonly model: "westseaportal"; readonly standIn: "westportal"; }; /** * The station's dressing from the kit (slice 1c-1): the platform's lanterns along the square's edge, the LANTERN WAKE * nameboard (lwstationsign once slice 1c-2 registers it; until then the line's placard signpost), the passenger shelter, * two of the line's banners at the square's north corners and two benches facing the platform. `standIn`: the existing * piece placed while the model is not in CAPITAL_BUILDING_MODELS (a `signpost` placard when it starts `placard-`). */ export type LanternWakePiece = { id: string; model: string; facing: 'n' | 'e' | 's' | 'w'; x: number; z: number; standIn?: string; scale?: number; }; export declare const LANTERN_WAKE_STATION_PIECES: readonly LanternWakePiece[]; /** The barriers' signs: the washed-out road inland and the rockfall where the coast goes on north. */ export declare const LANTERN_WAKE_SIGNS: ReadonlyArray<{ id: string; x: number; z: number; text: string; }>; /** * Sea stacks for the Shatterhook look: crag rocks scaled up on sea tiles (Blender stacks later only if these read as * boulders from the game camera). None in the gallery's lantern lanes (x 2148-2156, z 1037-1061) or the train's sea lane. */ export declare const LANTERN_WAKE_SEA_STACKS: ReadonlyArray; /** The gallery's lantern lanes over the sea (slice 1c-5 hangs the lantern targets there): kept clear of stacks. */ export declare const LANTERN_WAKE_LANTERN_LANES: LanternWakeBox; /** Standable tiles: the square (the `/tp lantern-wake` stand), and one for each place. */ export declare const LANTERN_WAKE_STAND: { readonly x: 2025; readonly z: 1106; }; export declare const LANTERN_WAKE_STANDS: { readonly square: { readonly x: 2025; readonly z: 1106; }; readonly platform: { readonly x: 2020; readonly z: 1116; }; readonly street: { readonly x: 2040; readonly z: 1094; }; readonly quay: { readonly x: 2092; readonly z: 1092; }; readonly coastPath: { readonly x: 2112; readonly z: 1074; }; readonly gallery: { readonly x: 2134; readonly z: 1048; }; readonly beacon: { readonly x: 2154; readonly z: 1015; }; readonly lookout: { readonly x: 2155; readonly z: 962; }; readonly forestEdge: { readonly x: 2080; readonly z: 1015; }; readonly southPath: { readonly x: 1972; readonly z: 1140; }; readonly crabBeach: { readonly x: 2075; readonly z: 1160; }; readonly tidePools: { readonly x: 2100; readonly z: 1176; }; readonly cove: { readonly x: 2116; readonly z: 1190; }; readonly ruins: { readonly x: 2165; readonly z: 1236; }; readonly westBarrier: { readonly x: 1946; readonly z: 1094; }; readonly northBarrier: { readonly x: 2120; readonly z: 958; }; }; /** * Discovery zones (types expandedContracts.ts INSERTED_DISCOVERY_ZONES, listed before the land's own; the first match * wins): the gallery and the ruins inside Lantern Wake, then Lantern Wake. */ export declare const LANTERN_WAKE_DISCOVERY_ZONE: DiscoveryZone; export declare const LANTERN_WAKE_GALLERY_DISCOVERY_ZONE: DiscoveryZone; export declare const LANTERN_WAKE_RUINS_DISCOVERY_ZONE: DiscoveryZone; export declare const LANTERN_WAKE_DISCOVERY_ZONES: readonly DiscoveryZone[]; //# sourceMappingURL=lanternWake.d.ts.map