/** * THE FISHING REACHES (T119, 2026-10-15; COVERAGE_1_40.md second wave, slice 3, "Fishing 21-40"). The coverage audit found Fishing 21-30 with no * fishing spot at all and 31-40 with three. The water was there (the Gullhook pier, the Cleft Inlet, the Knucklebone shores, Mossy Brook, the Thaw * gorge); what was missing was a place to stand and a reason to go. A REACH is one stretch of water with timber pegs on its bank: * * - `add: true` spots are NEW rod spots the reach registers (the existing `river`, `conger` and `tidesnapper` kinds, so the catch tables are the * ones that already grade by level: the river's grayling 25 / char 33 / salmon 45, the conger 30, the tide snapper 14); * - `add: false` spots are the reach's EXISTING spots, listed so the pegs stand beside them. * * The coordinates are ROUGH world tiles in water: backend fishingReaches.ts takes the water tile nearest each one that an angler can cast to from * the bank (the rod's reach is 2), then puts a `fishingpeg` (a stand-in prop, logged in upgrades) on the standable tile nearest that water, its * style the side that faces the water. Nothing blocks walking, no ground changes, no existing tile moves. * * Reachability: every reach is on the safe side of the world (no PvP woods), and a player gets there on foot or by the existing ferries. */ export type ReachSpotKind = 'river' | 'conger' | 'tidesnapper'; export type FishingReachSpot = { kind: ReachSpotKind; /** A rough water tile. */ x: number; z: number; /** True: the reach registers this as a new rod spot. False: the spot already exists elsewhere; the reach only puts a peg beside it. */ add: boolean; }; export type FishingReach = { /** Stable id: the peg ids (`reach--`) and the Ledger line key on it. */ id: string; name: string; /** The Fishing levels it serves, for the guide and the coverage table. */ band: '21-30' | '31-40'; /** Where it is, in words (the guide and the verify links). */ place: string; spots: readonly FishingReachSpot[]; /** How the fish are graded here, in one line for the guide. */ catches: string; }; export declare const FISHING_REACHES: readonly FishingReach[]; export declare const FISHING_REACH_IDS: readonly string[]; export declare function fishingReachById(id: unknown): FishingReach | null; /** The id of a reach's nth peg (1-based). */ export declare function fishingReachPegId(reachId: string, n: number): string; /** How far a peg may stand from the water it fishes (the rod's reach, world.ts FISHING_RANGE). */ export declare const FISHING_REACH_CAST = 2; //# sourceMappingURL=fishingReaches.d.ts.map