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()); }
public FCondition(FRuleDB ruleDB) => this._ruleDB = ruleDB;