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); } } } }