115 lines
1.7 KiB
TypeScript
115 lines
1.7 KiB
TypeScript
/**
|
|
* 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<UnitStats>;
|
|
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[];
|
|
}
|
|
|