protected void RemoveEffect(EffectHolder effectHolder) { effectList.Remove(effectHolder); }
public void ApplyEffect(EffectHolder newHolder) { effectList.Add(newHolder); }
/// <summary> /// Initializes a new instance of the EffectEventArgs class. /// </summary> /// <param name="holder">EffectHolder that raises the event.</param> public EffectEventArgs(EffectHolder holder) { this.pr_Holder = holder; }
public bool Remove(EffectHolder holder) { if (!effectList.Contains(holder)) return false; // Save Type of removable effect EffectTypes effectType = holder.EffectInfo.EffectType; if (effectList.Remove(holder)) { if (EffectRemoved != null) { EffectEventArgs e = new EffectEventArgs(holder); EffectRemoved(owner, e); } } return true; }
public bool Add(EffectHolder holder) { // prevent applying double effect if (effectList.Count > 0) foreach (EffectHolder effect in effectList) { if (effect.EffectInfo.ID == holder.EffectInfo.ID) { effect.Refresh(); return true; } } effectList.Add(holder); if (EffectApplied != null) { EffectEventArgs e = new EffectEventArgs(holder); EffectApplied(owner, e); } return true; }
/// <summary> /// Used when need to apply EffectHolder and make an Aura for Unit /// </summary> private void ApplyAura() { if (effectInfo.HasAttribute(EffectAttributes.OnlySlug) && target.ObjectType != ObjectTypes.Slug) return; EffectHolder effectHolder = new EffectHolder(effectInfo); foreach (Unit unitTarget in targetsList) unitTarget.ApplyEffect(effectHolder); }