/** * GREENWOOD WILDS (Western heartland stop 4, levels 15-30, free; design sheet `western-heartland-4-greenwood-wilds`; plan * `.cursor/task-plans/2026-10-14-t2-west-b.md`; heartland claims on the board `2026-10-14-early-game-program.md`): the first truly wild * stretch inland, thick forest with a brook, a hunters' camp, a thicket of thorn hedges to wind through and, in a standing-stone glade, * the Greenwarden Hart. * * Where (decided 2026-10-14, the sheets disagree: sheet 4's text puts it between Brindlecross and Riversend, sheet 1 west of the * rail): WEST of Brindlecross, off the Brindle Road's west end (1790, 1094), in the box below, with the North Track running up to * Riversend's West Track (the corridor x 1740-1795, z 880-912 that the Riversend track claims). Every number is a WORLD tile; the ground * is the blockout's flat grass (westernKingdoms.ts) so the brook is the only negative ground. * * Layout: the Greenwood Road leaves Brindlecross's road and fords Mossy Brook on a timber bridge, then reaches the Old Hunter Camp; the * Glade Path climbs north-west from the camp to Stag Glade (the boss); the North Track leaves the road east of the brook, past the * Bramble Run (a serpentine of thorn hedges, hedge by hedge, to wind through), to the box's north edge; a spur runs to Watch Ridge. * The models are kit stand-ins (named in `GREENWOOD_PIECES`) until the Blender pieces are built. */ import type { LanternWakeBox, LanternWakePiece, LanternWakePoint } from './lanternWake.js'; export declare const GREENWOOD_NAME = "Greenwood Wilds"; export declare const GREENWOOD_ID = "greenwood-wilds"; /** The wilds' levels (the sheet): the creatures run 15-25 and the boss is 30. */ export declare const GREENWOOD_LEVELS: { readonly min: 15; readonly max: 30; }; /** The discovery zone and ground box. Its west edge keeps clear of the coast (the land's west shore is at x 1624-1638 here). */ export declare const GREENWOOD_BOX: LanternWakeBox; /** The brook (Mossy Brook): three tiles of water running south, the road's ford on the bridge row. */ export declare const GREENWOOD_BRIDGE: { readonly id: "gw-bridge"; readonly model: "hbfordbridge"; readonly facing: "e"; readonly x: 1730; readonly z: 1098; }; export declare const GREENWOOD_BROOK: { readonly x: 1730; readonly minZ: 915; readonly maxZ: 1200; readonly half: 1; readonly amp: 4; readonly wave: 22; }; export declare function greenwoodBrookX(z: number): number; /** The three road rows across the brook, laid as sand under the bridge deck (walkable). */ export declare function inGreenwoodFordRows(x: number, z: number): boolean; /** Is this tile water of the brook (the ford's rows are a sand strip, not water)? */ export declare function inGreenwoodBrook(x: number, z: number): boolean; /** The roads (world polylines, width in tiles), laid as Path. */ export declare const GREENWOOD_PATHS: ReadonlyArray<{ id: string; w: number; pts: readonly LanternWakePoint[]; }>; /** The Old Hunter Camp's ground (bare earth round the fire). */ export declare const GREENWOOD_CAMP: LanternWakeBox; export declare const GREENWOOD_CAMP_FIRE: { readonly id: "gw-camp-fire"; readonly x: 1699; readonly z: 1112; }; /** Stag Glade: a round clearing of earth, ringed by standing stones with a gap to the south where the Glade Path comes in. */ export declare const GREENWOOD_GLADE: { readonly cx: 1672; readonly cz: 946; readonly radius: 18; }; export declare function inGreenwoodGlade(x: number, z: number, pad?: number): boolean; /** The ring of stones: every ~6th tile of the circle at radius 17, none in the southern gap (the path's mouth). */ export declare const GREENWOOD_GLADE_STONES: readonly { id: string; x: number; z: number; }[]; /** * The Bramble Run: a serpentine of thorn hedges (one solid hedge piece a tile). Fifteen hedge rows at z 954, 960 ... 1038 across * x 1764-1788, each with a five-tile gap, the gap alternating east and west so a player zig-zags north; the side hedges at x 1764 * and 1789 close it, except the two open ends (the south end opens onto the North Track, the north end onto it again). */ export declare const GREENWOOD_BRAMBLE: LanternWakeBox; export declare const GREENWOOD_BRAMBLE_ROWS: readonly number[]; export declare function greenwoodBrambleHedges(): ReadonlyArray<{ id: string; x: number; z: number; }>; /** The cache at the north end of the run (the quest's wild supplies are its forage patches, backend greenwoodWilds.ts). */ export declare const GREENWOOD_BRAMBLE_END: { readonly x: 1776; readonly z: 949; }; /** * The wilds' pieces (kit models, or the stand-in named). The camp is hunters' kit (the Hopewood Copse's lodge pieces); the brook's * bridge is the ford bridge; the tower on Watch Ridge is the copse's watch tower. */ export declare const GREENWOOD_PIECES: readonly LanternWakePiece[]; /** The signs (the placard signpost): the road in, the camp, the glade, the run and the way north. */ export declare const GREENWOOD_SIGNS: ReadonlyArray<{ id: string; x: number; z: number; text: string; }>; /** Standable tiles (admin teleports, smokes): one for each place. */ export declare const GREENWOOD_STAND: { readonly x: 1752; readonly z: 1092; }; export declare const GREENWOOD_STANDS: { readonly road: { readonly x: 1752; readonly z: 1092; }; readonly ford: { readonly x: 1736; readonly z: 1094; }; readonly camp: { readonly x: 1700; readonly z: 1116; }; readonly gladePath: { readonly x: 1688; readonly z: 1040; }; readonly gladeMouth: { readonly x: 1672; readonly z: 968; }; readonly glade: { readonly x: 1672; readonly z: 956; }; readonly brambleSouth: { readonly x: 1766; readonly z: 1042; }; readonly brambleNorth: { readonly x: 1770; readonly z: 951; }; readonly northTrack: { readonly x: 1760; readonly z: 925; }; readonly ridge: { readonly x: 1772; readonly z: 1166; }; }; /** The discovery zone (types expandedContracts.ts INSERTED_DISCOVERY_ZONES, ahead of the land's own). */ export declare const GREENWOOD_DISCOVERY_ZONE: { minX: number; maxX: number; minZ: number; maxZ: number; id: string; label: string; coordinateFrame: "world"; }; export declare function inGreenwoodBox(x: number, z: number, pad?: number): boolean; //# sourceMappingURL=greenwoodWilds.d.ts.map