export declare const CHART_SCRAP_KIND = "chartscrap"; /** Scraps that piece together into one chart (the sheet: "combine 3 scraps"). Hope Beach's bottle maps take four. */ export declare const CHART_SCRAPS_FOR_CHART = 3; export declare const RUSTY_CHEST_KEY_KIND = "rustychestkey"; export declare const BOSUNS_KEY_KIND = "bosunskey"; export type ChartTier = 1 | 2 | 3 | 4 | 5; export type ChartTierInfo = { readonly tier: ChartTier; readonly kind: string; readonly name: string; /** The sheet's tier word, for the guide and the read line. */ readonly label: 'Tattered' | 'Common' | 'Uncommon' | 'Rare' | 'Legendary'; /** The sheet's level band. */ readonly levels: readonly [number, number]; /** Combat level a reader needs before a chart of this tier can come together. */ readonly minCombat: number; /** Relative chance when several tiers are open to the reader (a higher tier is rarer). */ readonly weight: number; /** Whether the X shows as a marker and an arrow from anywhere (true), or only as disturbed sand within REVEAL_RANGE. */ readonly plainX: boolean; /** The chest the dig turns up, and the chance it is cursed instead. */ readonly chest: PirateChestType; readonly cursedChance: number; readonly foragingXp: number; readonly price: number; }; export declare const CHART_TIERS: readonly ChartTierInfo[]; export declare const CHART_KINDS: readonly string[]; export declare function chartTierByKind(kind: string): ChartTierInfo | null; export declare function chartTier(tier: number): ChartTierInfo | null; /** The tiers a reader of this Combat level can piece together. */ export declare function chartTiersFor(combat: number): ChartTierInfo[]; /** Roll the tier for a reader: every open tier by weight. `roll` is in [0, 1). */ export declare function rollChartTier(combat: number, roll: number): ChartTierInfo; /** How close a reader must stand before a riddle tier's spot shows as disturbed sand. */ export declare const CHART_REVEAL_RANGE = 4; /** A dig marker, drawn for the chart's holder only (the same grammar as Hope Beach's treasuredig). */ export declare const PIRATE_DIG_KIND = "piratedig"; export declare const PIRATE_DIG_STYLE = "dig:"; export declare const PIRATE_DIG_HIDDEN_STYLE = "dighidden:"; export type PirateDigSite = { readonly id: number; readonly tier: ChartTier; readonly x: number; readonly z: number; /** The plain description (low tiers) and the riddle (high tiers). */ readonly place: string; readonly riddle: string; }; /** * Where the charts send people: low tiers on the north beach and the Landing's meadow, the middle along the west sand and the * ridge, the top tiers by Fort Rook, the far east shore and the south beach, where the pirates are thickest. */ export declare const PIRATE_DIG_SITES: readonly PirateDigSite[]; export declare function pirateDigSite(id: number): PirateDigSite | null; export declare function pirateDigSitesForTier(tier: ChartTier): PirateDigSite[]; export declare function pirateDigSiteId(style: string | undefined): number | null; export type PirateChestType = 'driftwood' | 'sea' | 'ironbound' | 'captain' | 'cursed'; /** A chest in the world: kind piratechest, style `` closed or `-open` for a player who has emptied it. */ export declare const PIRATE_CHEST_KIND = "piratechest"; export type PirateChestInfo = { readonly type: PirateChestType; readonly name: string; /** The sheet's rarity word. */ readonly rarity: 'Common' | 'Uncommon' | 'Uncommon / Rare' | 'Rare'; /** A key the opener must carry (used up), or none. */ readonly key?: string; /** For a placed chest: how long before the same player can open it again. */ readonly cooldownMs: number; }; export declare const PIRATE_CHESTS: Readonly>; export declare const PIRATE_CHEST_TYPES: readonly PirateChestType[]; export declare function pirateChestStyle(type: PirateChestType, open: boolean): string; export declare function pirateChestType(style: string | undefined): PirateChestType | null; /** The fixed chests around the bay (the sheet's chest map: the Landing's beach, the wreck edges, the jetties, Saltmark, the fort). */ export declare const PIRATE_CHEST_SPOTS: ReadonlyArray<{ id: string; type: PirateChestType; x: number; z: number; place: string; }>; /** One line of a loot table: a chance, and a quantity range. */ export type PirateLootLine = { readonly kind: string; readonly chance: number; readonly min: number; readonly max: number; }; /** Every chest's table: the base lines, the phase 6 cosmetics (one each, rare) and, in the driftwood and sea chests, the hermit crab. */ export declare const PIRATE_CHEST_LOOT: Readonly>; /** A dug chest's extra coins by chart tier (the sheet: a large coin haul at the top). */ export declare const CHART_TIER_COINS: Readonly>; /** Roll a loot table: `random` returns [0, 1). Coins merge. */ export declare function rollPirateLoot(lines: readonly PirateLootLine[], random: () => number): Array<{ kind: string; qty: number; }>; /** Everything a dug chest of this tier gives (chest table, cursed table when cursed, plus the tier's coins). */ export declare function rollDugChest(tier: ChartTierInfo, cursed: boolean, random: () => number): Array<{ kind: string; qty: number; }>; /** The pirates a cursed chest springs, by chart tier (always Blackwake kinds, so they hunt like the rest). */ export declare const CURSED_CHEST_CREW: Readonly>; /** How long a cursed crew lasts before the curse lifts on its own (and the chest opens). */ export declare const CURSED_CREW_LIFETIME_MS: number; export declare const CURSED_GROUP_PREFIX = "cursed-"; /** How long a dug chest waits for its digger before it sinks back into the sand (loot lost). */ export declare const DUG_CHEST_LIFETIME_MS: number; /** * Everything extra a Blackwake kill can drop: the scraps and keys, the phase 6 cosmetics by rank (pirateCosmetics.ts), and on * Captain Rowena only, very rarely, the golden parrot (bayPets.ts). */ export declare const PIRATE_KILL_EXTRAS: Readonly>; /** The beach finds that can hold a scrap too (sunderedBeach.ts forage patches). */ export declare const CHART_SCRAP_FORAGE_CHANCE: Readonly>; export declare const PIRATE_TREASURE_NAMES: Readonly>; /** What any trader pays (placeholders until the balance pass). */ export declare const PIRATE_TREASURE_PRICES: Readonly>; export declare const PIRATE_TREASURE_KINDS: readonly string[]; //# sourceMappingURL=pirateTreasure.d.ts.map