/** * THE CAPITAL'S QUESTS, levels 15-40 (track T77, 2026-10-14; plan `.cursor/task-plans/2026-10-14-t77-capital-quests.md`). * * The Capital is the big hub but had almost nothing for a level 15-40 player to DO: its people were Speak-only, and the few older quests * that touch it (Marlow's harbour thief, Haldren's longsword, the sparring yard's Mabry detour) sent you elsewhere. This file adds ten * givers and twelve quests with no new land, no new item and no new prop: * * - A ROYAL ERRAND chain from the Royal Clerk Edmund Thorne: A Letter for the Garrison (a tour of the gate, the harbour and back, Combat 15) * and The Lost Seal (clues, the thieves' friends on the coast, the lighthouse on the mole, Combat 22). * - The FORGE MASTER Dorran Vale's three: Iron for the Gate (Blacksmithing 16), Gold for the Crown (Blacksmithing 30: steel and gold bars) and * Silver for the Wall (Blacksmithing 34: silver bars and a forged silver dagger) - the first use of T4's gold and silver. * - The GREAT COOK-OFF in Market Square (Cooking 25): cook, have three judges taste, and pick the prize. * - The KING'S TOURNEY on the Training Yard (T1 Combat 15, T2 Combat 24, T3 Combat 32): the sparring yard's four sergeants as the bouts of a * tournament, a purse or a training lump at the end. Reuses the bout engine (sparringYard.ts) and its Ledger marks. * - The HARBOUR CLERK's Papers for the Cormorant (Combat 20, after The Gull's Map): sea travel to Hope Beach and Blackwake Cove and back. * - The CHIEF SCRIBE's two quests (Combat 24, 32): pages of the Explorer's Ledger the player has to have earned (yard bouts, a derby weigh-in, * Hask's sled, Brack's bout) before the scribe will ink them into the Archive. * - THE WALL WALK (Combat 25): the Gate Captain's timed patrol of the four corners of the ring road inside the walls, on a clock. * * The ten givers are `resident`-kind Capital people (ids `capital--`, backend capitalPeople.ts spawns them): the client dresses them * by the role (smith, sergeant, docker, folk), so no new art. Every number is a PLACEHOLDER for the balance pass. * * Imports only erased types from storyQuests.ts and nothing that imports the quests, so storyQuests.ts spreads CAPITAL_QUESTS with no cycle. */ import type { StoryQuestDef } from './storyQuests.js'; /** The role the client dresses and poses a Capital person by (backend capitalPeople.ts CAPITAL_PERSON_ROLES). */ export type CapitalFolkRole = 'folk' | 'smith' | 'sergeant' | 'docker'; export type CapitalQuestFolk = { readonly key: string; readonly name: string; readonly role: CapitalFolkRole; /** Where they stand (world tiles) and what they face. */ readonly x: number; readonly z: number; readonly faceX: number; readonly faceZ: number; /** Their Speak line (the client's menu; the quest business is the "Quest:" row). */ readonly speak: string; }; /** The Harbour Clerk's tile on the quay north of the Harbour Road (a standable quay tile, checked by the backend smoke). */ export declare const HARBOUR_CLERK_AT: { readonly x: 815; readonly z: 150; }; /** The Tourney Marshal's tile in the Training Yard, north of the four sergeants' lane (their row is z 208). */ export declare const TOURNEY_MARSHAL_AT: { readonly x: 604; readonly z: 203; }; export declare const CAPITAL_FOLK_NAMES: { readonly clerk: "Royal Clerk Edmund Thorne"; readonly captain: "Gate Captain Wynn Aldern"; readonly harbour: "Harbour Clerk Tamsin Rell"; readonly forge: "Forge Master Dorran Vale"; readonly cook: "Master Cook Hob Garrick"; readonly grocer: "Greengrocer Bea Holloway"; readonly fishmonger: "Fishmonger Nan Brisk"; readonly pedlar: "Pedlar Joss Tinker"; readonly scribe: "Chief Scribe Isolde Marr"; readonly marshal: "Tourney Marshal Cade Brightwater"; }; export declare const CAPITAL_QUEST_FOLK: ReadonlyArray; export declare function capitalQuestFolkByName(name: string | undefined): CapitalQuestFolk | null; export declare const CAPITAL_QUEST_IDS: readonly ["royalErrand", "theLostSeal", "ironForTheGate", "goldForTheCrown", "silverForTheWall", "greatCookOff", "tourneyRound1", "tourneyRound2", "tourneyFinal", "papersForTheCormorant", "pagesForTheBook", "theFarPages", "theWallWalk"]; export type CapitalQuestId = (typeof CAPITAL_QUEST_IDS)[number]; /** Combat levels (placeholders). */ export declare const ROYAL_ERRAND_COMBAT = 15; export declare const LOST_SEAL_COMBAT = 22; export declare const TOURNEY_ROUND_1_COMBAT = 15; export declare const TOURNEY_ROUND_2_COMBAT = 24; export declare const TOURNEY_FINAL_COMBAT = 32; export declare const CORMORANT_PAPERS_COMBAT = 20; export declare const PAGES_COMBAT = 24; export declare const FAR_PAGES_COMBAT = 32; export declare const WALL_WALK_COMBAT = 25; /** Skill gates (placeholders; the bars' own smelt levels are in blacksmithing.ts). */ export declare const IRON_FOR_GATE_SMITHING = 16; export declare const GOLD_FOR_CROWN_SMITHING = 30; export declare const SILVER_FOR_WALL_SMITHING = 34; export declare const COOK_OFF_COOKING = 25; export declare const IRON_FOR_GATE_BARS = 8; export declare const GOLD_CROWN_STEEL = 4; export declare const GOLD_CROWN_GOLD = 2; export declare const SILVER_WALL_BARS = 3; export declare const LOST_SEAL_THIEVES = 6; export declare const LOST_SEAL_KILL_KINDS: readonly string[]; /** The Wall Walk: nine minutes for about 800 tiles of ring road at 3.9 tiles a second (a little over three and a half). */ export declare const WALL_WALK_MS: number; export declare const WALL_WALK_WARN_AT_MS: readonly [180000, 60000]; /** The four corner posts of the ring road, clockwise from the north-west (world tiles, inclusive boxes). */ export declare const WALL_WALK_POSTS: { readonly northWest: { readonly minX: 489; readonly maxX: 495; readonly minZ: 85; readonly maxZ: 91; }; readonly northEast: { readonly minX: 745; readonly maxX: 751; readonly minZ: 85; readonly maxZ: 91; }; readonly southEast: { readonly minX: 745; readonly maxX: 751; readonly minZ: 229; readonly maxZ: 235; }; readonly southWest: { readonly minX: 495; readonly maxX: 501; readonly minZ: 225; readonly maxZ: 231; }; }; /** The lighthouse on the mole's head: the ring of walkable stone round it (HARBOUR_MOLE_HEAD). */ export declare const LOST_SEAL_LIGHTHOUSE_AREA: { readonly minX: 862; readonly maxX: 866; readonly minZ: number; readonly maxZ: number; }; /** Cooked dishes by kind of dish: the three judges each want one of their own (every recipe in cooking.ts). */ export declare const COOK_OFF_FISH: readonly string[]; export declare const COOK_OFF_MEAT: readonly string[]; export declare const COOK_OFF_BREAD: readonly string[]; export declare const COOK_OFF_DISHES: readonly string[]; export declare const ROYAL_ERRAND_QUEST: StoryQuestDef; export declare const LOST_SEAL_QUEST: StoryQuestDef; export declare const IRON_FOR_GATE_QUEST: StoryQuestDef; export declare const GOLD_FOR_CROWN_QUEST: StoryQuestDef; export declare const SILVER_FOR_WALL_QUEST: StoryQuestDef; export declare const GREAT_COOK_OFF_QUEST: StoryQuestDef; export declare const TOURNEY_ROUND_1_QUEST: StoryQuestDef; export declare const TOURNEY_ROUND_2_QUEST: StoryQuestDef; export declare const TOURNEY_FINAL_QUEST: StoryQuestDef; export declare const PAPERS_FOR_CORMORANT_QUEST: StoryQuestDef; export declare const PAGES_FOR_BOOK_QUEST: StoryQuestDef; export declare const FAR_PAGES_QUEST: StoryQuestDef; export declare const WALL_WALK_QUEST: StoryQuestDef; /** The thirteen, for storyQuests.ts to enter. */ export declare const CAPITAL_QUESTS: Readonly>; /** The journal cards (quests.ts storyMeta). */ export declare const CAPITAL_QUEST_META: Readonly>; /** Where each giver is, for the quest guide (backend questGuide.ts GIVER_PLACES). */ export declare const CAPITAL_QUEST_GIVER_PLACES: Readonly>; //# sourceMappingURL=capitalQuests.d.ts.map