/// <summary> /// Adds a modifier to the assigned modifier list. /// </summary> /// <param name="i_Modifier">The new modifier to add.</param> /// <param name="i_Context">Contextual data about this change.</param> public void AddModifier(INumericalPropertyModifier <TNumerical, TContext, TModifierReader> i_Modifier, TContext i_Context) { Log.DebugAssert(i_Modifier != null, "Invalid null paremeter."); m_Modifiers.Add(i_Modifier); m_Modifiers.InsertionSort(s_SortComparer); ENumericalPropertyChangeType changeTypeMask = ENumericalPropertyChangeType.ModifierAdd; UpdateInternal(changeTypeMask, i_Context); }
/// <summary> /// /// </summary> /// <param name="i_Modifier">The i_ modifier.</param> /// <param name="i_Context">Contextual data about this change.</param> /// <returns></returns> public bool RemoveModifier(INumericalPropertyModifier <TNumerical, TContext, TModifierReader> i_Modifier, TContext i_Context) { bool result = m_Modifiers.Remove(i_Modifier); if (result) { ENumericalPropertyChangeType changeTypeMask = ENumericalPropertyChangeType.ModifierRemove; UpdateInternal(changeTypeMask, i_Context); } return(result); }
/// <summary> /// Removes a modifier. /// </summary> /// <param name="i_Modifier">A modifier.</param> public void RemoveModifier(INumericalPropertyModifier <TNumerical, TContext, TModifierReader> i_Modifier) { m_ChangeTypeMask |= ENumericalPropertyChangeType.ModifierRemove; m_RemoveModifiers.Add(i_Modifier); }
/// <summary> /// /// </summary> /// <param name="i_Modifier">The i_ modifier.</param> /// <returns></returns> public bool RemoveModifier(INumericalPropertyModifier <TNumerical, TContext, TModifierReader> i_Modifier) { return(RemoveModifier(i_Modifier, GetDefaultContext())); }
/// <summary> /// Adds a modifier to the assigned modifier list. /// </summary> /// <param name="i_Modifier">The new modifier to add.</param> public void AddModifier(INumericalPropertyModifier <TNumerical, TContext, TModifierReader> i_Modifier) { AddModifier(i_Modifier, GetDefaultContext()); }
/// <summary> /// Compares the specified property modifiers' orders. /// </summary> /// <param name="i_ObjA">First modifier to compare.</param> /// <param name="i_ObjB">Second modifier to compare.</param> /// <returns>Returns 1, 0 or -1 depending if the second modifier is less than, equal to or greater then the first one.</returns> public int Compare(INumericalPropertyModifier <TNumerical, TContext, TModifierReader> i_ObjA, INumericalPropertyModifier <TNumerical, TContext, TModifierReader> i_ObjB) { Log.DebugAssert(i_ObjA != null && i_ObjB != null, "Invalid null parameter."); return(i_ObjA.GetOrder().CompareTo(i_ObjB.GetOrder())); }