Features
Quests
Multi-objective quests with progress tracking, completion events, and replay-safe state.
Note:
Screenshot embedding lands once the F-Gallery test harness flips on with the RB browser-CI gate.
Problem
A "Clear the harbor" quest has three objectives: defeat 5 bandits, deliver 3 crates to the tavern, talk to the harbormaster. The quest tracks each objective independently + fires a completion event when all three resolve.
Snippet
import { GameboardQuest } from 'declarative-hex-worlds/quests';
world.spawn(GameboardQuest({
id: 'quest:clear-harbor',
title: 'Clear the harbor',
objectives: [
{ id: 'defeat-bandits', kind: 'defeat-count', target: 5, current: 0 },
{ id: 'deliver-crates', kind: 'deliver-count', target: 3, current: 0 },
{ id: 'talk-harbormaster', kind: 'interact-actor', target: 'npc:harbormaster' },
],
rewards: { gold: 100, xp: 250 },
}));What the library handles
- Objective tracking. Each kind has its own update hook that runs during the simulation tick.
- Completion semantics. A quest completes when every objective's
status === 'satisfied'. - Event records.
GameboardQuestAdvancedEvent/GameboardQuestCompletedEvent/GameboardQuestBlockedEventfor downstream UIs.
