/** * THE GULL'S MAP, part 2: LOW WATER (levels 20-28; plan C9, 2026-10-14; design sheets `gulls-map-5`, `-6` and `-8` in the backend's * design-references). Keeper Ada at Saltmark Light reads the Captain's tide table: the Blackwakes' cache lies in the Sea Grotto, * whose stepping stones can only be crossed at low water, in order; the drowned crew guard it; the cache holds the signal lantern, * and a lantern signal from Saltmark at night is answered from Fort Rook. * * Every number is in the GENERATOR frame (as gullsMap.ts and southExpansion.ts): the backend places the props through its south * kit, and expandedContracts.ts shifts the quest's reach area and helper points. * * The Sea Grotto is a surface tidal basin (rock rim, sand floor, two pools, an inner ledge), not yet a roofed cave in the * underground strip: NEXT_STEPS "The Gull's Map" keeps that as the roofed-cave variant for later. */ import type { GullsMapProp } from './gullsMap.js'; export declare const GULLS_LOW_WATER_QUEST_ID = "gullsLowWater"; export declare const GULLS_LOW_WATER_QUEST_NAME = "The Gull's Map: Low Water"; export declare const KEEPER_ADA_NAME = "Keeper Ada"; /** The Blackwakes' signal lantern, out of the cache in the Sea Grotto. */ export declare const SIGNAL_LANTERN_KIND = "signallantern"; export declare const GULLS_LOW_WATER_ITEM_KINDS: readonly string[]; export declare const GULLS_LOW_WATER_ITEM_NAMES: Readonly>; /** * The grotto's tide, a fixed schedule on the wall clock (UTC ms since the epoch, as Date.now() gives it), the same for every * player and every restart, with no state to save: every ten minutes the sea is high for 200 s, drops through a 60 s ebb to * 240 s of low water, then rises through a 60 s flood and is high again. The stepping stones can only be crossed at low water. */ export declare const SEA_GROTTO_TIDE_CYCLE_MS = 600000; export type SeaGrottoTidePhase = 'high' | 'ebb' | 'low' | 'flood'; export declare function seaGrottoTide(nowMs: number): { phase: SeaGrottoTidePhase; msUntilLow: number; msLeftLow: number; }; export declare const isSeaGrottoLowWater: (nowMs: number) => boolean; /** "about 3 minutes" / "about 40 seconds". */ export declare function waitText(ms: number): string; /** The tide gauge's line (the post at the grotto's mouth, readable any time, quest or not). */ export declare function seaGrottoTideLine(nowMs: number): string; /** Saltmark Light's lamp is lit from 18:00 to 06:00 UTC (the client's saltmarkLamp.ts clock); the signal can only be sent then. */ export declare const SALTMARK_LAMP_LIT_FROM_HOUR = 18; export declare const SALTMARK_LAMP_LIT_UNTIL_HOUR = 6; export declare function isSaltmarkLampLit(nowMs: number): boolean; /** The rim's outer box (generator frame): a rim two tiles thick round the floor, one mouth in the south wall. */ export declare const SEA_GROTTO_BOX: { readonly minX: 614; readonly maxX: 640; readonly minZ: 944; readonly maxZ: 962; }; export declare const SEA_GROTTO_FLOOR: { readonly minX: 616; readonly maxX: 638; readonly minZ: 946; readonly maxZ: 960; }; /** The mouth: three tiles wide through the south rim, down onto the sand. */ export declare const SEA_GROTTO_MOUTH: { readonly minX: 626; readonly maxX: 628; readonly minZ: 961; readonly maxZ: 962; }; /** Where the helper points and the reach step counts (the first tiles inside the mouth). */ export declare const SEA_GROTTO_AT: { readonly x: 627; readonly z: 959; readonly label: "the Sea Grotto"; }; export declare const SEA_GROTTO_REACH: { readonly minX: 624; readonly maxX: 630; readonly minZ: 957; readonly maxZ: 960; }; /** Two pools of sea water on the floor (ellipses: centre, radii in tiles). */ export declare const SEA_GROTTO_POOLS: ReadonlyArray<{ cx: number; cz: number; rx: number; rz: number; }>; /** The inner ledge above the high-tide mark: the cache stands on it. */ export declare const SEA_GROTTO_LEDGE: { readonly minX: 635; readonly maxX: 638; readonly minZ: 946; readonly maxZ: 949; }; export declare function inSeaGrottoPool(x: number, z: number): boolean; /** The three drowned deckhands in the grotto (spawn tiles; they are leashed to them). */ export declare const SEA_GROTTO_DROWNED: ReadonlyArray; export declare const GM_PROP2: { /** The seven numbered stepping stones, in crossing order. */ readonly stone: "gmstone"; /** The Blackwakes' cache on the inner ledge. */ readonly cache: "gmcache"; /** The gauge post at the grotto's mouth: tells the tide any time. */ readonly gauge: "gmgauge"; /** Ada's lamp-oil cask by the lighthouse door. */ readonly oil: "gmoil"; /** The lamp at the foot of Saltmark Light (the signal). */ readonly lamp: "gmlamp"; /** The seaward rail, where Fort Rook's answer is watched for. */ readonly answer: "gmanswer"; }; /** The route across the grotto: west round the south shore, up the west side, along the north and onto the ledge. */ export declare const GM_STONES: readonly GullsMapProp[]; export declare const GM_STONE_ORDER: readonly string[]; export declare const GM_CACHE: GullsMapProp; export declare const GM_GAUGE: GullsMapProp; /** Saltmark Light (door south, tower 886-894 x 944-950; Ada at 895,951): the cask, the lamp and the rail. */ export declare const GM_OIL_CASK: GullsMapProp; export declare const GM_LAMP: GullsMapProp; export declare const GM_ANSWER: GullsMapProp; export declare const GULLS_LOW_WATER_QUEST_PROPS: readonly GullsMapProp[]; /** The model a part 2 prop draws with (dreadmodel names; stand-ins from the events kit and the quest set). */ export declare function gullsLowWaterPropModel(prop: string): string | null; export declare const GULLS_LOW_WATER_PROP_NAMES: Readonly>; //# sourceMappingURL=gullsLowWater.d.ts.map