public void RemoveAttributeEffectsFromSource(IAttributeEffectSource source) { _attributeEffects .Where(effect => effect.EffectSource == source) .ToList() .ForEach(RemoveAttributeEffect); }
public void RemoveAttributeEffectsFromSource(IAttributeEffectSource source) { foreach (var keyValuePair in attributes) { keyValuePair.Value.RemoveAttributeEffectsFromSource(source); } }
public void Stun(float duration, IAttributeEffectSource source) { if (HasAttribute(AttributeName.AttackSpeed)) { var attr = GetAttribute(AttributeName.AttackSpeed); if (attr.Value > 0) { var effect = new AttributeEffect(0.0f, AttributeName.AttackSpeed, AttributeEffectType.SetValue, source, duration); attr.AddAttributeEffect(effect); } } PlayParticleEffectAboveTower("StunEffect", duration); }