Exemple #1
0
 public virtual bool RemoveModifier(StatModifier mod)
 {
     if (StatModifiers.Remove(mod))
     {
         OnValueUpdated();
         modMap[mod.ModType].Remove(mod);
         mod.UnregisterOnValueUpdatedHandler(this.Invalidate);
         return(true);
     }
     return(false);
 }
Exemple #2
0
    public virtual bool RemoveAllModifiersFromSource(object source)
    {
        bool didRemove = false; // one-way flag to know if an update is needed

        // iterate backwards since potentially removing items.
        for (int i = StatModifiers.Count - 1; i >= 0; i--)
        {
            if (StatModifiers[i].Source == source)
            {
                StatModifier mod = StatModifiers[i];
                StatModifiers.RemoveAt(i);
                modMap[mod.ModType].Remove(mod);
                mod.UnregisterOnValueUpdatedHandler(this.Invalidate);
                didRemove = true;
            }
        }

        if (didRemove)
        {
            OnValueUpdated();
        }
        return(didRemove);
    }