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()); }
private bool Equals(BlackBoardValue blackBoardValue, BlackBoardValue compareValue) { return(blackBoardValue.Comparable.Equals(compareValue.Comparable)); }
private int CompareTo(BlackBoardValue blackBoardValue, BlackBoardValue compareValue) { return(blackBoardValue.Comparable.CompareTo(compareValue.Comparable)); }