/** * PIRATE BAY PHASE 6: the bay's cosmetics (James's round-2 sheets C2 "Pirate hats", C3 "Eye patches and face pieces" and C4 * "Pirate outfits", 2026-10-15; plan dreadwoods/.cursor/task-plans/2026-10-15-pirate-bay-phase6.md). * * Bandanas, caps and captain's hats; eye patches, a gold tooth, a scar, an earring and a beard ribbon (the new `face` slot, one at * a time); and four outfits, each a shirt or coat and trousers (the Captain's Mate wears the seafarer trousers). The sheets' belts, * sashes and pouches have no slot of their own: they are drawn on the shirts and trousers. * * James's rules hold: every pirate is hostile, so the sheets' hat stall, face gear stall and outfitter at Port Blackwake are not * built and nothing here is sold. Each piece is a rare drop from the Blackwake crew (by rank) and from the bay's chests (by chest); * the sheets' "quest reward" and "hidden cove" sources stand in as the captain's and cursed chests until phase 7's coves exist. * Nothing here is a weapon. Light armour and the sheets' levels as Combat requirements; every number is a placeholder for the * balance pass. The Blackwake Tricorn, Captain's Coat and Sea Boots (gullsRook.ts) stay as they are. */ import type { EquipInfo } from './equipment.js'; export type PirateCosmeticSlot = 'helmet' | 'face' | 'top' | 'bottom'; export type PirateCosmeticRarity = 'Common' | 'Rare' | 'Very rare' | 'Legendary'; export type PirateCosmeticSet = 'deckhand' | 'bosun' | 'quartermaster' | 'captainsmate'; export type PirateCosmetic = { readonly kind: string; readonly name: string; readonly slot: PirateCosmeticSlot; /** The sheet's level: the Combat needed to wear it. */ readonly level: number; readonly armour: number; readonly rarity: PirateCosmeticRarity; /** The outfit it belongs to (C4), if any. */ readonly set?: PirateCosmeticSet; /** What any trader pays (placeholder). */ readonly price: number; /** The ground-item description it is discovered with. */ readonly note: string; }; export declare const PIRATE_COSMETICS: readonly PirateCosmetic[]; export declare const PIRATE_COSMETIC_KINDS: readonly string[]; export declare function pirateCosmetic(kind: string): PirateCosmetic | null; export declare const PIRATE_COSMETIC_NAMES: Readonly>; export declare const PIRATE_COSMETIC_PRICES: Readonly>; export declare const PIRATE_COSMETIC_NOTES: Readonly>; /** Their stats, spread into EQUIP_INFO (equipment.ts). */ export declare const PIRATE_COSMETIC_EQUIP: Readonly>; /** The four outfits (C4): a top and a pair of trousers each, the Captain's Mate's with the seafarer trousers. */ export declare const PIRATE_OUTFITS: Readonly>; /** One drop line on a crew kill: an independent chance of one piece. */ export type PirateCosmeticDrop = { readonly kind: string; readonly chance: number; }; /** * The cosmetic drops on Blackwake kills, by rank (the sheets' "Pirate drop (coast and ships)"), added to their coin, scrap and key * drops. The low pieces drop from the low ranks; the captains' pieces only from Bosun Harrow and Captain Rowena. */ export declare const PIRATE_COSMETIC_KILL_DROPS: Readonly>; /** * What each of the bay's chests adds (pirateTreasure.ts PIRATE_CHEST_LOOT spreads these in): the low pieces in the driftwood boxes, * up to the captains' pieces in the captain's and cursed chests. Every line rolls on its own; quantity 1. */ export declare const PIRATE_COSMETIC_CHEST_DROPS: Readonly>; /** * The boarding ships' captains' chests (pirateShips.ts ShipDef.chest, opened in the backend's shipFight.ts) roll the cosmetics of the * bay chest that matches the ship's band: the Cormorant (8-12) a sea chest's, the Mire Jack (15-20) an iron-bound chest's, the Iron * Hush (22-28) a captain's chest's and the drowned Grey Wake a cursed chest's. The Crescent Queen has Rowena's hoard instead. */ export declare const PIRATE_COSMETIC_SHIP_CHESTS: Readonly>; /** Roll a ship chest's cosmetics: `random` returns [0, 1); one of each piece at most. */ export declare function rollShipChestCosmetics(chestId: string, random: () => number): Array<{ kind: string; qty: number; }>; /** Where the guide says each piece comes from (kill kinds and chest types that can hold it). */ export declare function pirateCosmeticSources(kind: string): { kills: string[]; chests: string[]; }; //# sourceMappingURL=pirateCosmetics.d.ts.map