public BTConditionSingleOperation(ConditionOperationType operation, V targetValue, Func <V> getter) : base()
 {
     mTargetValueCondition = GenericValue.CreateConditionValue <V>("", targetValue, operation);
     mGetter = getter;
     DebugUtils.Assert(mGetter != null, "");
     DebugUtils.Assert(mTargetValueCondition != null, "");
 }
Example #2
0
 public BTConditionSingleOperation(ConditionOperationType operation, BTConditionValueType valueType, object targetValue, MethodInfo getter) : base()
 {
     OperationLogic = operation;
     ValueType      = valueType;
     TargetValue    = targetValue;
     GetterFunc     = getter;
 }
Example #3
0
        /// <summary>
        /// 添加条件
        /// </summary>
        /// <param name="parameterName">条件参数名</param>
        /// <param name="comType">比较类别</param>
        /// <param name="value">目标值</param>
        /// <returns></returns>
        public StateConditions With <T>(string parameterName, ConditionOperationType cot, T value)
        {
            // 这里不去重复
            // 比如 条件是一个区间
            GenericValue condition = GenericValue.CreateConditionValue(parameterName, value, cot);

            mConditions.Add(condition);
            return(this);
        }
Example #4
0
        /// <summary>
        /// 添加条件
        /// </summary>
        /// <param name="parameterName">条件参数名</param>
        /// <param name="comType">比较类别</param>
        /// <param name="value">目标值</param>
        /// <returns></returns>
        public StateConditions With(string parameterName, ConditionOperationType comType, object value)
        {
            // 这里不去重复
            // 比如 条件是一个区间
            StateCondition condition = new StateCondition();

            condition.Name        = parameterName;
            condition.Value       = value;
            condition.CompareType = comType;
            mConditions.Add(condition);
            return(this);
        }
Example #5
0
        public static bool CheckFloat(float a, float b, ConditionOperationType type)
        {
            switch (type)
            {
            case ConditionOperationType.EQUAL:
                return(a == b);

            case ConditionOperationType.GREATER:
                return(a > b);

            case ConditionOperationType.GREATER_EQUAL:
                return(a >= b);

            case ConditionOperationType.LESS:
                return(a < b);

            case ConditionOperationType.LESS_EQUAL:
                return(a <= b);

            case ConditionOperationType.NOT_EQUAL:
                return(a != b);
            }
            return(false);
        }
Example #6
0
 private BTConditionBoolean RangeBoolean; // || &&
 public BTConditionRangeOperation(BTConditionBoolean rangeBoolean, ConditionOperationType leftOperation, V leftValue, ConditionOperationType rightOperation, V rightValue, Func <V> getter) : base()
 {
     LeftOperation  = new BTConditionSingleOperation <V, Target>(leftOperation, leftValue, getter);
     RightOperation = new BTConditionSingleOperation <V, Target>(leftOperation, rightValue, getter);
     RangeBoolean   = rangeBoolean;
 }
Example #7
0
 private BTConditionBoolean RangeBoolean; // || &&
 public BTConditionRangeOperation(BTConditionBoolean rangeBoolean, ConditionOperationType leftOperation, object leftValue, ConditionOperationType rightOperation, object rightValue, BTConditionValueType valueType, MethodInfo getter) : base()
 {
     LeftOperation  = new BTConditionSingleOperation <T>(leftOperation, valueType, leftOperation, getter);
     RightOperation = new BTConditionSingleOperation <T>(leftOperation, valueType, leftOperation, getter);
     RangeBoolean   = rangeBoolean;
 }
Example #8
0
 public static ConditionValue <T> CreateConditionValue <T>(string name, T v, ConditionOperationType cot)
 {
     return(new ConditionValue <T>(name, v, cot));
 }
Example #9
0
 public DistanceCondition(ConditionOperationType logic, object targetValue, MethodInfo getter) : base(logic, BTConditionValueType.NUMBER, targetValue, getter)
 {
 }
Example #10
0
 public ConditionValue(string name, T v, ConditionOperationType cot) : base(name, v)
 {
     CompareType = cot;
 }