import type { DomainEvent } from "./events.js"; import type { DomainError, Encounter } from "./types.js"; export interface ClearEncounterSuccess { readonly encounter: Encounter; readonly events: DomainEvent[]; } export function clearEncounter( encounter: Encounter, ): ClearEncounterSuccess | DomainError { if (encounter.combatants.length === 0) { return { kind: "domain-error", code: "encounter-already-empty", message: "Cannot clear an encounter that has no combatants", }; } return { encounter: { combatants: [], activeIndex: 0, roundNumber: 1, }, events: [ { type: "EncounterCleared", combatantCount: encounter.combatants.length, }, ], }; }