/** * THE GULL'S MAP, part 3: THE CAPTAIN'S GATE (levels 28-32; plan C10, 2026-10-14; plan file `.cursor/task-plans/2026-10-14-t32-rowena-finale.md`; * design sheets `sundered-bay-fort-rook`, `sundered-bay-boss` and `sundered-bay-gear` in the backend's design-references). Part 2 ended on * "Fort Rook has seen the signal". Keeper Ada sends the player to the fort: Bosun Harrow at the gate, the yard, and Captain Rowena * Blackwake. Rowena is the Sundered Coast's last boss, with a real mechanic (her crew whistle calls a wave of her fort crew that fires a * volley, scaled to the player's Combat level), her own personal hoard chest and the Blackwake pirate gear set. * * Every number is in the GENERATOR frame (as gullsMap.ts and southExpansion.ts): the backend places the hoard chest through its south kit * (shifted at load) and expandedContracts.ts shifts the quest's reach areas. * * Rewards, the set's stats, the hoard's loot and the wave sizes are PLACEHOLDERS (the balance pass comes last, with James). */ import type { GullsMapProp } from './gullsMap.js'; export declare const GULLS_ROOK_QUEST_ID = "gullsFortRook"; export declare const GULLS_ROOK_QUEST_NAME = "The Gull's Map: The Captain's Gate"; export declare const BOSUN_HARROW_NAME = "Bosun Harrow"; export declare const CAPTAIN_ROWENA_NAME = "Captain Rowena Blackwake"; /** Combat needed to take the quest on (the fort's bosses are level 26 and 32). */ export declare const GULLS_ROOK_COMBAT = 28; /** The open ground in front of the gate (the gate's two jambs are at z 1004-1005, the road comes down from the north). */ export declare const FORT_ROOK_APPROACH_REACH: { readonly minX: 813; readonly maxX: 822; readonly minZ: 997; readonly maxZ: 1002; }; export declare const FORT_ROOK_APPROACH_AT: { readonly x: 818; readonly z: 1000; readonly label: "Fort Rook's gate"; }; /** The yard inside the gate (types blackwakeFort.ts: legacy yard box 818-842 x 1012-1032). */ export declare const FORT_ROOK_YARD_REACH: { readonly minX: 822; readonly maxX: 836; readonly minZ: 1013; readonly maxZ: 1022; }; export declare const FORT_ROOK_YARD_AT: { readonly x: 828; readonly z: 1017; readonly label: "Fort Rook's yard"; }; /** * Rowena's every-fourth-attack whistle (bossSignatures.ts 'crew-whistle') calls this many of her idle fort-side crew into the yard, * by the player's Combat level: one below 30, two at 30-33, all three from 34. They are the real Cutthroats of the fort (backend * rowenaCrew.ts), the most the coast keeps there is three, and a crewman who is busy, dead or cannot reach the yard does not come. */ export declare const ROWENA_WAVE_MAX = 3; export declare function rowenaWaveSize(combat: number): number; /** * The volley the whistle's blow carries. The signature is twice an ordinary roll (bossSignatures.ts mult 2), scaled by how many * of the crew are in the yard when it lands: 0.5 with nobody, 0.25 more for each crewman, so two crew is exactly the table's * budget-neutral blow and three is a quarter heavier. Stepping out of Rowena's reach while the tell is out dodges it (the E8 * counter, backend bossSpecials.ts), and the crew's volley goes wide with it. */ export declare function rowenaVolleyScale(crew: number): number; export declare const BLACKWAKE_CUTLASS_KIND = "blackwakecutlass"; export declare const BLACKWAKE_TRICORN_KIND = "blackwaketricorn"; export declare const BLACKWAKE_COAT_KIND = "blackwakecoat"; export declare const BLACKWAKE_SEABOOTS_KIND = "blackwakeseaboots"; /** The sheet's four pieces, in the order it shows them. */ export declare const BLACKWAKE_SET_KINDS: readonly string[]; export declare const BLACKWAKE_SET_NAMES: Readonly>; /** What any trader pays for a piece (placeholders): between the iron and the steel pieces. */ export declare const BLACKWAKE_SET_PRICES: Readonly>; /** Combat (armour) and Weapon Mastery (the cutlass) the set wants: Rowena's band, so it is worn from the end of the coast's levels. */ export declare const BLACKWAKE_SET_LEVEL = 28; /** The ground-item description each piece is discovered with (ui/discovery.ts reads it). */ export declare const BLACKWAKE_SET_NOTES: Readonly>; export declare const ROWENA_HOARD_PROP = "rhoard"; /** * At the back of the Crescent Queen's lowest hold (crescentQueen.ts CQ_HOARD_AT; pirate bay phase 4, 2026-10-15: Rowena moved from * Fort Rook's cabin forecourt, legacy 834,1037, into her flagship). Raw underground strip tiles, which no frame shift moves. */ export declare const ROWENA_HOARD: GullsMapProp; export declare const ROWENA_HOARD_NAME = "Captain Rowena's Hoard"; /** The chest draws as the bay's Captain's Chest (pirateTreasure.ts, Blender piratechest v001, sheet C6): black, gold and the crescent. */ export declare function rowenaHoardPropModel(prop: string): string | null; export declare const ROWENA_HOARD_PROP_NAMES: Readonly>; /** * The chest is the player's own: every character who fells Rowena finds it unlocked, opens it once, and it refills only * ROWENA_HOARD_REFILL_MS after that, however many times she is felled in between (her own coin drop stays). It is never * in a bag, a bank or a trade: the loot goes into the bag and the rest at the player's feet like every drop. */ export declare const ROWENA_HOARD_REFILL_MS: number; /** Placeholder loot: a purse of coin, then one set piece by weight (the same weights for every kill; nothing is guaranteed twice). */ export declare const ROWENA_HOARD_COINS: { readonly min: 600; readonly max: 1400; }; export declare const ROWENA_HOARD_PIECE_WEIGHTS: Readonly>; /** Chance a hoard holds a set piece at all; a character who has none of the four yet always gets one. */ export declare const ROWENA_HOARD_PIECE_CHANCE = 0.5; /** One piece by weight, preferring one the player does not hold (`held` is the kinds already owned). Pure; `random` is injectable. */ export declare function pickBlackwakePiece(held: Iterable, random?: () => number): string; export declare const LEDGER_FORT_LINES: readonly { id: string; label: string; }[]; //# sourceMappingURL=gullsRook.d.ts.map