コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
 /// <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);
 }
コード例 #4
0
 /// <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()));
 }
コード例 #5
0
 /// <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());
 }
コード例 #6
0
 /// <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()));
 }