/// <summary>Compares two <see cref="bool"/> values.</summary> public static bool Check(bool leftTerm, BoolComparison comparison, bool rightTerm) { return(comparison switch { BoolComparison.Is => leftTerm == rightTerm, BoolComparison.IsNot => leftTerm != rightTerm, _ => throw new ArgumentException("Comparison not supported", nameof(comparison)) });
/// <summary> /// /// </summary> /// <param name="valueA"></param> /// <param name="valueB"></param> /// <returns></returns> private bool CompareBoolean(bool valueA, bool valueB, BoolComparison boolComparison) { switch (boolComparison) { default: return(valueA == valueB); } }
public static bool CheckCondition(BotData data, bool leftTerm, BoolComparison comparison, bool rightTerm) { var result = RuriLib.Functions.Conditions.Conditions.Check(leftTerm, comparison, rightTerm); if (result) { data.Logger.LogHeader(); data.Logger.Log($"Matched key {leftTerm} {comparison} {rightTerm}"); } return(result); }
/// <summary> /// /// </summary> /// <param name="blackboard"></param> /// <param name="key"></param> /// <param name="value"></param> /// <returns></returns> public bool EvaluateBlackboardVsValue(Blackboard blackboard, string key, bool value, BoolComparison boolComparison) { Blackboard sceneBlackboard = FindBlackboard(blackboard); Value valueA = sceneBlackboard.GetValue(key); return(CompareBoolean(valueA.m_boolean, value, boolComparison)); }
/// <summary> /// /// </summary> /// <param name="blackboardA"></param> /// <param name="keyA"></param> /// <param name="blackboardB"></param> /// <param name="keyB"></param> /// <param name="boolComparison"></param> /// <returns></returns> public bool EvaluateBlackboardVsBlackboard(Blackboard blackboardA, string keyA, Blackboard blackboardB, string keyB, BoolComparison boolComparison) { Blackboard sceneBlackboardA = FindBlackboard(blackboardA); Value valueA = sceneBlackboardA.GetValue(keyA); Blackboard sceneBlackboardB = FindBlackboard(blackboardB); Value valueB = sceneBlackboardB.GetValue(keyB); return(CompareBoolean(valueA.m_boolean, valueB.m_boolean, boolComparison)); }