示例#1
0
        private bool Compare(BlackBoardValue value, Comparator comparator, BlackBoardValue compareValue)
        {
            compareValue.Type = value.Type;

            switch (comparator)
            {
            case Comparator.LargerThan:
                return(CompareTo(value, compareValue) == 1);

            case Comparator.LargerOrEquals:
                return(CompareTo(value, compareValue) == 1 || Equals(value, compareValue));

            case Comparator.SmallerThan:
                return(CompareTo(value, compareValue) == -1);

            case Comparator.SmallerOrEquals:
                return(CompareTo(value, compareValue) == -1 || Equals(value, compareValue));

            case Comparator.NotEquals:
                return(!Equals(value, compareValue));

            case Comparator.Equals:
            default:
                return(Equals(value, compareValue));
            }
        }
        private BlackBoardValue ModifyValue(BlackBoardValue original, ModifyType type, BlackBoardValue modifier)
        {
            modifier.Type = original.Type;

            switch (type)
            {
            case ModifyType.Set:
                return(modifier.Copy());

            case ModifyType.Add:
            {
                switch (original.Type)
                {
                case BlackBoardValue.ValueType.Int:
                    var v = original.Copy();
                    v.Int = original.Int + modifier.Int;
                    return(v);

                case BlackBoardValue.ValueType.Float:
                    var v2 = original.Copy();
                    v2.Float = original.Float + modifier.Float;
                    return(v2);

                default:
                case BlackBoardValue.ValueType.Bool:
                    break;
                }
            }
            break;

            case ModifyType.Multiply:
            {
                switch (original.Type)
                {
                case BlackBoardValue.ValueType.Int:
                    var v = original.Copy();
                    v.Int = original.Int * modifier.Int;
                    return(v);

                case BlackBoardValue.ValueType.Float:
                    var v2 = original.Copy();
                    v2.Float = original.Float * modifier.Float;
                    return(v2);

                default:
                case BlackBoardValue.ValueType.Bool:
                    break;
                }
            }
            break;
            }

            Debug.LogError("Something strange happened in the Modifier class");
            return(original.Copy());
        }
示例#3
0
 private bool Equals(BlackBoardValue blackBoardValue, BlackBoardValue compareValue)
 {
     return(blackBoardValue.Comparable.Equals(compareValue.Comparable));
 }
示例#4
0
 private int CompareTo(BlackBoardValue blackBoardValue, BlackBoardValue compareValue)
 {
     return(blackBoardValue.Comparable.CompareTo(compareValue.Comparable));
 }