Пример #1
0
 // 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;
 }
Пример #2
0
        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);
        }