import type { EnemyDefinition } from './combat.types'; /** * Enemy definitions — data-driven. Move patterns cycle by turn number, so a * player can learn and read intents. Add enemies by adding entries. */ export const ENEMY_DEFINITIONS: Record = { slime: { id: 'slime', name: 'Slime', maxHp: 22, moves: [ { intent: { kind: 'attack', value: 6 } }, { intent: { kind: 'block' } }, ], }, cultist: { id: 'cultist', name: 'Cultist', maxHp: 30, moves: [ { intent: { kind: 'buff' } }, { intent: { kind: 'attack', value: 8 } }, { intent: { kind: 'attack', value: 8 } }, ], }, jaw_worm: { id: 'jaw_worm', name: 'Jaw Worm', maxHp: 42, moves: [ { intent: { kind: 'attack', value: 11 } }, { intent: { kind: 'block' } }, { intent: { kind: 'attack', value: 7 } }, ], }, brute: { id: 'brute', name: 'Brute', maxHp: 54, moves: [ { intent: { kind: 'attack', value: 6, hits: 2 } }, { intent: { kind: 'attack', value: 14 } }, { intent: { kind: 'block' } }, ], }, }; export function getEnemyDef(id: string): EnemyDefinition { const def = ENEMY_DEFINITIONS[id]; if (!def) throw new Error(`Unknown enemy id: ${id}`); return def; }