Beispiel #1
0
 public FCriteria(FBlackboard blackboard, FStringId key, EValueComparer comparer, IVariant expectedValue)
 {
     this._key           = key;
     this._comparer      = comparer;
     this._blackboard    = blackboard;
     this._expectedValue = expectedValue;
 }
Beispiel #2
0
        public void EvaluateCriteriaLessThanEqualTest()
        {
            FBlackboard blackboard = new FBlackboard();

            blackboard.AddValue <FInt>("FloatValue", 2);

            ICriteria criteria = new FCriteria(blackboard, "FloatValue", EValueComparer.LessThanEqual, new FInt(2));

            FAssert.IsTrue(criteria.Evaluate());
        }
Beispiel #3
0
        public void EvaluateCriteriaGreaterThanTest()
        {
            FBlackboard blackboard = new FBlackboard();

            blackboard.AddValue <FInt>("FloatValue", 2);

            ICriteria criteria = new FCriteria(blackboard, "FloatValue", EValueComparer.GreaterThan, new FInt(1));

            FAssert.IsTrue(criteria.Evaluate());
        }
Beispiel #4
0
        public void EvaluateCriteriaIsNotEqualTest()
        {
            FBlackboard blackboard = new FBlackboard();

            blackboard.AddValue <FInt>("FloatValue", 2);

            ICriteria criteria = new FCriteria(blackboard, "FloatValue", EValueComparer.Equal, new FInt(1));

            FAssert.IsFalse(criteria.Evaluate());
        }
Beispiel #5
0
        public void RuleDBTest()
        {
            FBlackboard blackboard = new FBlackboard();

            blackboard.AddValue <FString>("Who", "Akira");
            blackboard.AddValue <FString>("Where", "Village");
            blackboard.AddValue <FInt>("Level", 10);
            blackboard.AddValue <FInt>("Food", 10);
            blackboard.AddValue <FInt>("Wounds", 1);

            FRuleDB ruleDB = new FRuleDB();

            ruleDB.AddRule(new FRule().AddCriteria(blackboard, "Who", new FString("Akira")).AddCriteria(blackboard, "Level", EValueComparer.GreaterThan, new FInt(10)));
            ruleDB.AddRule(new FRule().AddCriteria(blackboard, "Who", new FString("Akira")).AddCriteria(blackboard, "Wounds", EValueComparer.GreaterThan, new FInt(2)));
            ruleDB.AddRule(new FRule().AddCriteria(blackboard, "Where", new FString("Village")).AddCriteria(blackboard, "Food", EValueComparer.LessThan, new FInt(2)));

            FAssert.IsFalse(ruleDB.Evaluate());
        }
Beispiel #6
0
 public FHFSM(CHFSMBrain owner)
 {
     Owner      = owner;
     Blackboard = new FBlackboard();
 }
Beispiel #7
0
        public FRule AddCriteria(FBlackboard blackboard, FStringId key, EValueComparer comparer, IVariant expectedValue)
        {
            _criterias.Add(new FCriteria(blackboard, key, comparer, expectedValue));

            return(this);
        }