dungeon-sdk-drikkx
Version:
Shared types and entities for the Dungeon game
104 lines • 2.44 kB
TypeScript
import { Equipment } from "./item.types";
import { DamageType, ExtendedStats, Stats } from "./stats.types";
export interface AnimationConfig {
key: string;
frameStart: number;
frameEnd: number;
frameRate?: number;
repeat: boolean;
}
export interface CharacterAnimations {
idle?: AnimationConfig;
attack?: AnimationConfig;
combo?: AnimationConfig;
special?: AnimationConfig;
hurt?: AnimationConfig;
death?: AnimationConfig;
skill?: AnimationConfig;
walk?: AnimationConfig;
heal?: AnimationConfig;
}
export declare enum Role {
TANK = "tank",
MELEE = "melee",
RANGED = "ranged",
HEALER = "healer"
}
export interface TeamSlots {
tank: number | null;
melee: number | null;
ranged: number | null;
healer: number | null;
}
export declare enum ResourcesType {
NONE = "none",
MANA = "mana",
RAGE = "rage",
ENERGY = "energy"
}
export declare enum SkillType {
ATTACK = "attack",
COMBO = "combo",
SPECIAL = "special",
SKILL = "skill",
HEAL = "heal",
BUFF = "buff",
DEBUFF = "debuff",
DOT = "dot",
HOT = "hot",
ITEM = "item"
}
export interface Skill {
id: string;
resourceType: ResourcesType;
name: string;
type: SkillType;
damage?: number;
healing?: number;
cost: number;
cooldown: number;
currentCooldown: number;
effects: string[];
animationName?: string;
}
export interface CharacterCreateDto {
name: string;
stats: Stats;
role: Role;
}
export interface CharacterUpdateDto {
name?: string;
level?: number;
experience?: number;
stats?: Partial<Stats>;
}
export interface CharacterDatabase {
id?: number;
name: string;
role: Role;
level?: number;
experience?: number;
stats: Stats;
resources: ResourcesType;
damageType: DamageType;
equipments?: Equipment[];
skills?: Skill[];
}
export interface CharacterInDungeon extends CharacterDatabase {
stats: ExtendedStats;
buffs: string[];
debuffs: string[];
inCombat: boolean;
lastAction: number;
targetId: string | null;
isAlive: boolean;
}
export interface CharacterFrontend extends CharacterDatabase {
animations: CharacterAnimations;
position?: {
x: number;
y: number;
};
}
export declare const CHARACTER_DEFAULTS: Record<string, CharacterFrontend>;
//# sourceMappingURL=character.types.d.ts.map