/** * Encounter Presets - Pre-configured combat scenarios * * These reduce token overhead by ~95% compared to manual specification. * An LLM can spawn a full encounter with just: { preset: "goblin_ambush" } * * Usage: * getEncounterPreset('goblin_ambush') -> full encounter config * scaleEncounter(preset, partyLevel, partySize) -> adjusted for difficulty * * @module data/encounter-presets */ /** * Participant in an encounter preset */ export interface EncounterParticipant { template: string; name?: string; position: string; count?: number; } /** * Terrain configuration for an encounter */ export interface EncounterTerrain { obstacles?: string[]; difficultTerrain?: string[]; water?: string[]; cover?: string[]; } /** * Complete encounter preset */ export interface EncounterPreset { id: string; name: string; description: string; difficulty: 'easy' | 'medium' | 'hard' | 'deadly'; recommendedLevel: { min: number; max: number; }; participants: EncounterParticipant[]; terrain?: EncounterTerrain; partyPositions?: string[]; tags: string[]; narrativeHook?: string; } export declare const ENCOUNTER_PRESETS: Record; /** * Get an encounter preset by ID */ export declare function getEncounterPreset(id: string): EncounterPreset | null; /** * List all encounter presets */ export declare function listEncounterPresets(): string[]; /** * Get encounters by difficulty */ export declare function getEncountersByDifficulty(difficulty: EncounterPreset['difficulty']): EncounterPreset[]; /** * Get encounters by tag */ export declare function getEncountersByTag(tag: string): EncounterPreset[]; /** * Get encounters suitable for a party level */ export declare function getEncountersForLevel(level: number): EncounterPreset[]; /** * Scale an encounter for party size/level * Returns a modified copy with adjusted creature counts */ export declare function scaleEncounter(preset: EncounterPreset, _partyLevel: number, // Reserved for future level-based scaling partySize: number): EncounterPreset; /** * Get a random encounter for the given criteria */ export declare function getRandomEncounter(options?: { difficulty?: EncounterPreset['difficulty']; level?: number; tags?: string[]; }): EncounterPreset | null; //# sourceMappingURL=encounter-presets.d.ts.map