Esempio n. 1
0
        public void DecrementQueuedEffectDuration(bool verbose)
        {
            foreach (var queuedEffect in QueuedEffects.ToList())
            {
                var effect = QueuedEffects[queuedEffect.Key];
                effect.Duration = effect.Duration - 1;
                QueuedEffects[queuedEffect.Key] = effect;

                if (effect.Duration <= 0)
                {
                    try
                    {
                        // ReSharper disable once AssignNullToNotNullAttribute
                        var effectName = Enum.GetName(typeof(StatusEffects), queuedEffect.Key);

                        WeaponSkills weaponSkill;
                        Spells       spell;
                        if (Enum.TryParse(effectName, true, out weaponSkill))
                        {
                            WeaponLibrary.ApplyEffect(effect.Target, weaponSkill, verbose, queuedEffect.Value);
                        }

                        if (Enum.TryParse(effectName, true, out spell))
                        {
                            SpellLibrary.ApplyEffect(effect.Target, spell);
                        }
                    }
                    catch
                    {
                        // ignored if it's another non-actionable type such as AnimationLocked
                    }
                    finally
                    {
                        QueuedEffects.Remove(queuedEffect.Key);
                    }
                }
            }
        }