UNPKG

dungeon-sdk-drikkx

Version:

Shared types and entities for the Dungeon game

70 lines 2.2 kB
import { ResourcesType } from "./character.types"; export interface Stats { strength: number; agility: number; intelligence: number; vitality: number; spirit: number; } export interface DefenseStats { maxHealth: number; currentHealth: number; healthRegen: number; physicalReduction: number; magicResistance: number; statusResistance: number; } export interface ResourceStats { type: ResourcesType; maxResource: number; currentResource: number; resourceRegen: number; gainOnDamageTaken?: number; gainOnDamageDealt?: number; decayRate?: number; } export declare enum DamageType { PHYSICAL_MELEE = "physical_melee", PHYSICAL_RANGED = "physical_ranged", MAGICAL = "magical", HEALING = "healing" } export interface PhysicalCombatStats { accuracy: number; dodge: number; meleeAttackPower: number; rangedAttackPower: number; physicalCritChance: number; critMultiplier: number; } export interface MagicalCombatStats { magicPower: number; magicCritChance: number; magicCritMultiplier: number; } export interface HealingStats { healingPower: number; healingReceived: number; } export interface CombatStats extends PhysicalCombatStats, MagicalCombatStats, HealingStats { } export interface ExtendedStats extends Stats, DefenseStats, ResourceStats, CombatStats { } export interface ClassStatModifiers { baseStats: Partial<Stats>; defenseMultiplier: number; resourceMultiplier: number; combatMultipliers: { physical?: number; magical?: number; healing?: number; }; } export interface StatCalculator { calculateDefenseStats(base: Stats, modifiers: ClassStatModifiers): DefenseStats; calculateResourceStats(base: Stats, modifiers: ClassStatModifiers, type: ResourcesType): ResourceStats; calculateCombatStats(base: Stats, modifiers: ClassStatModifiers): CombatStats; calculateDamage(attacker: ExtendedStats, defender: ExtendedStats, damageType: DamageType, multiplier: number): number; calculateHealing(healer: ExtendedStats, target: ExtendedStats, multiplier: number): number; } //# sourceMappingURL=stats.types.d.ts.map