public bool AddChildToParent(string parent, int index) { var success = new SuccessActionNode("Success"); var bt = new SimpleBehaviourTree(); return(bt.AddChildToParent(success, parent, index)); }
public bool Exists(string nodeName) { var bt = new SimpleBehaviourTree(); bt.AddChildToParent(new SuccessActionNode("Existing Node"), "Root Node", 0); return(bt.Exists(nodeName)); }
public void DFSTraverseWithNoChildren() { var behaviourTree = new SimpleBehaviourTree { TreeTraversalStrategy = new DFSTraversal <HashSet <BTNode> >() }; var nodes = behaviourTree.Traverse(); Assert.IsTrue(nodes != null); Assert.IsTrue(nodes.ToList().Count == 1); Assert.IsTrue(nodes.ToList().Single().Name == "Root Node"); }
public void RemoveChildFromParent(string node) { var bt = new SimpleBehaviourTree(); var parentNode = new NodeWithChildren("Node with children"); var child1 = new SuccessActionNode("Success 1"); var child2 = new FailActionNode("Fail 1"); var child3 = new RunningActionNode("Running 1"); bt.AddChildToParent(parentNode, "Root Node", 0); bt.AddChildToParent(child1, parentNode.Name, 0); bt.AddChildToParent(child2, parentNode.Name, 1); bt.AddChildToParent(child3, parentNode.Name, 2); var deletedNode = bt.RemoveChildFromParent(node, parentNode.Name); Assert.IsNotNull(deletedNode); }
private void SetupBehaviourTree() { behaviourTree = new SimpleBehaviourTree.Builder() .Build( new BTSelector.Builder() .SetEvaluateFunc(TwoTeetsReceived) .Build( new BTSelector.Builder() .SetEvaluateFunc(HasEnergy) .Build( new BTSelector.Builder() .SetEvaluateFunc(HasTreeToInfest) .Build( new BTSelector.Builder() .SetEvaluateFunc(HasLessPointsThanPlayer) .Build( new BTSelector.Builder() .SetEvaluateFunc(HasTreeToKillWithoutPlayerIntervention) .Build( infestTreeThatPlayerCantReachBehaviour, infestTreeWithBestDistanceToHealthBehaviour ), new BTSelector.Builder() .SetEvaluateFunc(RandomTimeSinceLastTreeInfestElapsed) .Build( infestRandomTreeBehaviour, wanderInsideBehaviour ) ), wanderInsideBehaviour ) , new BTSelector.Builder() .SetEvaluateFunc(HasLessPointsThanPlayer) .Build( wanderInsideBehaviour, wanderOutsideBehaviour ) ), wanderOutsideBehaviour ) ); }
public void TreeNodes() { var behaviourTree = new SimpleBehaviourTree(); behaviourTree.AddChildToParent(new SuccessActionNode("Success 1"), behaviourTree.RootNode.Name, 0); behaviourTree.AddChildToParent(new FailActionNode("Fail 1"), "Root Node", 1); behaviourTree.AddChildToParent(new RunningActionNode("Running 1"), "Root Node", 2); var result = behaviourTree.TreeNodes; var expected = new List <string> { behaviourTree.RootNode.Name, "Success 1", "Fail 1", "Running 1" }; Assert.IsTrue(result.SequenceEqual(expected)); }
public void BFSTraversalHeightOne() { var bt = new SimpleBehaviourTree(); var child1 = new SuccessActionNode("Success 1"); var child2 = new FailActionNode("Fail 1"); var child3 = new RunningActionNode("Running 1"); var expected = new List <string> { bt.RootNode.Name, "Success 1", "Fail 1", "Running 1" }; Assert.IsTrue(bt.AddChildToParent(child1, bt.RootNode.Name, 0) && bt.AddChildToParent(child2, bt.RootNode.Name, 1) && bt.AddChildToParent(child3, bt.RootNode.Name, 2)); var traversalResult = bt.Traverse(); var result = traversalResult.Select(node => node.Name).ToList(); Assert.IsTrue(expected.SequenceEqual(result)); }