import type { QuestId, QuestState } from './quests.js'; /** * The quest helper (2026-09-22, James: "make quests easier to start ... my * friend couldn't find the bucket in the farm ... hints or arrows to show * us where to go"). The server works out, for every quest a player could be * doing, where the next thing is: a tile in the world and, when the thing * is an NPC, its id so the client can follow it as it wanders. The client * shows one of them at a time as an arrow with a hint: the quest the player * has focused, or, with none focused, the nearest step to where they stand * (which is "what you are doing, by area" without asking). * * `state` is the quest state the step is for, or 'start' for a quest not * yet taken: those point at the giver so a player with nothing on is led * to the next thing to do. */ export type QuestGuideStep = { quest: QuestId; state: QuestState | 'start'; /** What to do, in a sentence that names the place ("Buckets stand in the farmhouse..."). */ hint: string; /** The target's name, on the arrow ("Clark's Son", "the cow pen"). */ label: string; x: number; z: number; /** When the target is a living NPC: its id, so the client tracks it live. */ npcId?: string; /** * Easy quest mode (James, 2026-10-07: "my partner finds it hard to get the box of maggots"): every other thing of * the kind the step needs near the player (all the rotten crops, not only the nearest), so the client can make * each one glow. The arrow still follows x/z. Absent when the target is a person or a place. */ marks?: QuestGuideMark[]; }; export type QuestGuideMark = { x: number; z: number; }; /** The most things one step lights up, and how far from the player they are looked for (tiles). */ export declare const QUEST_GUIDE_MAX_MARKS = 12; export declare const QUEST_GUIDE_MARK_RADIUS = 45; /** How far a player walks before the client asks for the steps again (nearest-thing targets move with them). */ export declare const QUEST_GUIDE_REFRESH_TILES = 24; //# sourceMappingURL=questGuide.d.ts.map