/** * The Western Line's two phase 2 halts, PRE-REGISTERED by slice 2-1 (2026-10-11, plan * .cursor/task-plans/2026-10-11-western-phase2-circuit-plan.md sections 2.2 and 2.4; handoff in * .cursor/task-plans/2026-10-11-western-2-1-bores.md) so slice 2-2 (the Forge Halt) and slice 2-3 (the Dwarf Hold) can be * built side by side, each in its own new files, and each switched on by flipping ONE line here: * * - FORGE_HALT_OPEN (slice 2-2): the stop `forge-halt` on bore C (circuit version 2's stops read it), its chart and its * discovery zone. Halt master: Halt Master Borrin Ashbeard (NpcKind `forgehaltmaster`). * - DWARF_HOLD_OPEN (slice 2-3): the stop `dwarf-hold` on bore B, its chart and its zone. Warden: Warden Thrida Deepstair * (NpcKind `holdhaltmaster`). * * Closed, a halt is nothing in the world: its stop does not run (the train passes through), its chart and zone are not * listed (no music or map change in the bore), and a player somehow saved in its hall wakes at home * (westernClosedPocketAt). Its NpcKind, names, music mapping (frontend soundtrack.ts) and boxes are already known everywhere. * * Abuse-first: once a version-2 circuit with a halt OPEN is on master it is frozen like version 1; the halt that opens after * that defines version 3 (version 2's stops with the flag on) and leaves version 2 for older servers. */ import type { DungeonChart } from './dungeonCharts.js'; import type { DiscoveryZone } from './landmarks.js'; export declare const FORGE_HALT_STOP_ID = "forge-halt"; export declare const DWARF_HOLD_STOP_ID = "dwarf-hold"; /** Slice 2-2 flips this when the Forge Halt's platform, hall, stair and halt master are built. */ export declare const FORGE_HALT_OPEN = true; export declare const FORGE_HALT_NAME = "The Forge Halt"; export declare const FORGE_HALT_MASTER_KIND = "forgehaltmaster"; export declare const FORGE_HALT_MASTER_NAME = "Halt Master Borrin Ashbeard"; /** * c of the train's nose standing at the halt on circuit version 2: bore C (c0 1098, row 830, heading south) with the nose * at row 960, so the rake stands rows 888-960 and the plates (fh-step-*) are x 1067 rows 892-939, stepping down west onto * the platform (x 1064-1066). Bore C's west wall is kept plain for rows 880-968 (types WESTERN_BORE_C walls). */ export declare const FORGE_HALT_C: number; export declare const FORGE_HALT_DWELL_MS = 45000; /** The platform and the booking hall behind bore C's west wall: a closed pocket reached only by the train (and the stair). */ export declare const FORGE_HALT_POCKET: { readonly minX: 1015; readonly maxX: 1066; readonly minZ: 880; readonly maxZ: 968; }; /** The chart and discovery zone (ids as in the plan), listed only while FORGE_HALT_OPEN. */ export declare const FORGE_HALT_CHART: DungeonChart; export declare const FORGE_HALT_ZONE: DiscoveryZone; /** * In the Forge Halt's platform or hall while it is open (slice 2-2): the client lights it as a cave (dungeon light, the wall * torches' pool) like the bores, though the hall is outside every bore. */ export declare function inForgeHalt(x: number, z: number): boolean; /** Slice 2-3 flips this when the Dwarf Hold's platform, hall, sealed Great Stair and warden are built (built: dwarfHold.ts). */ export declare const DWARF_HOLD_OPEN = true; export declare const DWARF_HOLD_NAME = "The Dwarf Hold"; export declare const DWARF_HOLD_WARDEN_KIND = "holdhaltmaster"; export declare const DWARF_HOLD_WARDEN_NAME = "Warden Thrida Deepstair"; /** * c of the nose standing at the Hold on circuit version 2: bore B (c0 832, row 1365, heading north) with the nose at row * 1108, so the rake stands rows 1108-1180 and the plates (dh-step-*) are x 948 rows 1129-1176, stepping down east onto the * platform (x 949-951). Bore B's east wall is kept plain for rows 1100-1185 (types WESTERN_BORE_B walls). */ export declare const DWARF_HOLD_C: number; export declare const DWARF_HOLD_DWELL_MS = 30000; /** The platform and the hall behind bore B's east wall: a closed pocket reached only by the train. */ export declare const DWARF_HOLD_POCKET: { readonly minX: 949; readonly maxX: 1000; readonly minZ: 1100; readonly maxZ: 1185; }; export declare const DWARF_HOLD_CHART: DungeonChart; export declare const DWARF_HOLD_ZONE: DiscoveryZone; /** * Where bore B's east wall opens onto the Hold's platform and hall (slice 2-3, dwarfHold.ts): over these rows the vault draws no rock * cover or raised rock past that wall (the hall would sit under it), and the doorways (rows, inclusive) are cut out of the * wall's face up to the door head. Read by WESTERN_BORE_B.halls while the Hold is open. */ export declare const DWARF_HOLD_BORE_WALL: { readonly side: "e"; readonly z0: 1106; readonly z1: 1182; readonly doorways: readonly [{ readonly z0: 1118; readonly z1: 1120; }, { readonly z0: 1143; readonly z1: 1145; }, { readonly z0: 1168; readonly z1: 1170; }]; }; /** The halts' charts and zones that are open (types DUNGEON_CHARTS and DISCOVERY_ZONES spread these). */ export declare const WESTERN_HALT_CHARTS: readonly DungeonChart[]; export declare const WESTERN_HALT_ZONES: readonly DiscoveryZone[]; /** Every pre-registered halt, open or not (tests, the admin list, the guide). */ export declare const WESTERN_HALTS: readonly [{ readonly stopId: "forge-halt"; readonly name: "The Forge Halt"; readonly open: true; readonly npcKind: "forgehaltmaster"; readonly npcName: "Halt Master Borrin Ashbeard"; readonly c: number; readonly pocket: { readonly minX: 1015; readonly maxX: 1066; readonly minZ: 880; readonly maxZ: 968; }; readonly chart: DungeonChart; readonly zone: DiscoveryZone; readonly music: "capital-smiths"; }, { readonly stopId: "dwarf-hold"; readonly name: "The Dwarf Hold"; readonly open: true; readonly npcKind: "holdhaltmaster"; readonly npcName: "Warden Thrida Deepstair"; readonly c: number; readonly pocket: { readonly minX: 949; readonly maxX: 1000; readonly minZ: 1100; readonly maxZ: 1185; }; readonly chart: DungeonChart; readonly zone: DiscoveryZone; readonly music: "crystal-gorge"; }]; //# sourceMappingURL=westernHalts.d.ts.map