/** * Type definitions for unit-related types */ /** * Unit base stats */ export interface UnitStats { health: number; attack: number; defense: number; magic: number; speed: number; willpower: number; movement: number; tech: number; } /** * Unit position */ export interface Position { x: number; y: number; z: number; } /** * Unit facing direction */ export type FacingDirection = "NORTH" | "SOUTH" | "EAST" | "WEST"; /** * Unit type */ export type UnitType = "EXPLORER" | "ENEMY" | "STRUCTURE"; /** * Unit team */ export type UnitTeam = "PLAYER" | "ENEMY" | "NEUTRAL"; /** * Unit status */ export type UnitStatus = "READY" | "INJURED" | "DEPLOYED" | "DEAD"; /** * Status effect */ export interface StatusEffect { id: string; type: string; duration: number; [key: string]: unknown; } /** * Class mastery data */ export interface ClassMastery { level: number; xp: number; skillPoints: number; unlockedNodes: string[]; } /** * Equipment slots */ export interface Equipment { weapon: unknown | null; armor: unknown | null; utility: unknown | null; relic: unknown | null; } /** * Unit definition from registry */ export interface UnitDefinition { type?: UnitType; name: string; stats?: Partial; model?: string; ai_archetype?: string; aggro_range?: number; xp_value?: number; loot_table?: string; [key: string]: unknown; } /** * Explorer unit data (for roster) */ export interface ExplorerData { id: string; name: string; classId: string; status: UnitStatus; history: { missions: number; kills: number; }; [key: string]: unknown; } /** * Roster save data */ export interface RosterSaveData { roster: ExplorerData[]; graveyard: ExplorerData[]; }