/** * StatusEffects.ts * * Buff/debuff system: stacking, duration, ticking effects, * stat modifiers, immunity, and cleansing. * * @module combat */ export type EffectType = 'buff' | 'debuff'; export type StackBehavior = 'stack' | 'refresh' | 'replace' | 'ignore'; export interface StatModifier { stat: string; flat: number; percent: number; } export interface StatusEffect { id: string; name: string; type: EffectType; duration: number; elapsed: number; stacks: number; maxStacks: number; stackBehavior: StackBehavior; modifiers: StatModifier[]; tickInterval: number; lastTick: number; tickDamage: number; onApply?: string; onRemove?: string; onTick?: string; } export declare class StatusEffectSystem { private effects; private immunities; private tickResults; apply(entityId: string, effectDef: Omit & { stacks?: number; }): StatusEffect | null; remove(entityId: string, effectName: string): boolean; removeAllOfType(entityId: string, type: EffectType): number; cleanse(entityId: string, _count?: number): number; update(dt: number): void; getTickResults(): typeof this.tickResults; addImmunity(entityId: string, effectName: string): void; removeImmunity(entityId: string, effectName: string): void; getStatModifiers(entityId: string, stat: string): { flat: number; percent: number; }; applyStatModifiers(entityId: string, stat: string, baseValue: number): number; getEffects(entityId: string): StatusEffect[]; hasEffect(entityId: string, effectName: string): boolean; getEffectCount(entityId: string): number; } //# sourceMappingURL=StatusEffects.d.ts.map