// Refresh with a new aura public void Refresh(IPeriodicAura aura) { _startTime = DependencyContainer.Instance.GetInstance <IServer>().CurrentTime; // Refresh aura values TicksLeft = aura.TotalTicks; TickDelay = aura.TickDelay; Amount = aura.Amount; }
public override bool Process(ICharacter source, ICharacter victim, IAbility ability, CombatHelpers.AttackResults attackResult) { // TODO: difference between buff/debuff to handle Offensive flag // Check periodic aura IPeriodicAura periodicAura = victim.PeriodicAuras.FirstOrDefault(x => x.Ability != null && x.Ability.DispelType == DispelType); if (periodicAura != null) { victim.RemovePeriodicAura(periodicAura); return(true); } // Check aura IAura aura = victim.Auras.FirstOrDefault(x => x.Ability != null && x.Ability.DispelType == DispelType); if (aura != null) { victim.RemoveAura(aura, true); return(true); } return(true); }