using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; public class DamageArgs : IResettable { public BaseAbility source; public BaseEffect effect; public Taggable user; public Taggable target; public float currentValue; public DamageType damageType; public EffectApplicationMethod applicationMethod; public bool isCrit; public int totalTargetsHit; public bool targetDead; public void Reset() { source = null; effect = null; user = null; target = null; currentValue = 0f; isCrit = false; targetDead = false; applicationMethod = default; totalTargetsHit = 0; damageType = default; } } public class HealArgs : IResettable { public BaseAbility source; public BaseEffect effect; public Taggable user; public Taggable target; public float currentValue; public EffectApplicationMethod applicationMethod; public bool isCrit; public int totalTargetsHit; public void Reset() { source = null; effect = null; user = null; target = null; currentValue = 0f; isCrit = false; applicationMethod = default; totalTargetsHit = 0; } } public class InvulnerabilityArgs : IResettable { public Taggable user; public bool isImmune; public void Reset() { user = null; isImmune = false; } } public class DodgeArgs : IResettable { public Taggable user; public bool dodgedSuccessfully; public void Reset() { user = null; dodgedSuccessfully = false; } } public class BlockArgs : IResettable { public Taggable user; public bool blockedSuccessfully; public void Reset() { user = null; blockedSuccessfully = false; } } public class AbsorbArgs : IResettable { public Taggable user; public bool absorbedDamage; public bool absorbDepleted; public void Reset() { user = null; absorbedDamage = false; absorbDepleted = false; } }