Example #1
0
    /// <summary>
    /// <see cref="IAttrModifierTaker.TakeModifier(float, EAttrType, EAttrModifierLayer, bool)"/>
    /// </summary>
    /// <param name="layer"></param>
    /// <param name="type"></param>
    /// <param name="value"></param>
    /// <param name="isRefresh"></param>
    public void TakeModifier(float value, EAttrType type, EAttrModifierLayer layer, bool isRefresh = true)
    {
        attributes[(int)type].TakeModifier(value, type, layer, isRefresh);

        if (isRefresh)
        {
            RecalculateAttr(type);
        }
    }
Example #2
0
    /// <summary>
    /// Remove a modifier from this attribute.
    /// </summary>
    /// <param name="attrType"></param>
    /// <param name="layer"></param>
    /// <param name="value"></param>
    public void RemoveModifier(float value, EAttrType type, EAttrModifierLayer layer, bool isRefresh = true)
    {
        // keep track of independent
        if (layer == (int)EAttrModifierLayer.Independent)
        {
            independents.Remove(value);
        }
        else
        {
            modifiers[(int)layer] -= value;
        }

        // set dirty
        isModDirty = true;

        // recalculate attribute
        if (isRefresh)
        {
            Recalculate(false);
        }
    }
Example #3
0
 /// <summary>
 /// <see cref="IAttrModifierTaker.RemoveModifier(float, EAttrType, EAttrModifierLayer, bool)"/>
 /// </summary>
 /// <param name="layer"></param>
 /// <param name="type"></param>
 /// <param name="value"></param>
 /// <param name="isRefresh"></param>
 public void RemoveModifier(float value, EAttrType type, EAttrModifierLayer layer, bool isRefresh = true)
 {
     attributes[(int)type].RemoveModifier(value, type, layer, isRefresh);
 }