UNPKG

dungeon-sdk-drikkx

Version:

Shared types and entities for the Dungeon game

104 lines 2.44 kB
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