Skip to content

Commit a4fea9e

Browse files
committed
Added Wait action to BT builder
1 parent ca35db3 commit a4fea9e

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

Assets/FluidBehaviorTree/Scripts/BehaviorTree/BehaviorTreeBuilder.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,19 @@ public BehaviorTreeBuilder RandomChance (int chance, int outOf) {
112112
return RandomChance("random chance", chance, outOf);
113113
}
114114

115+
public BehaviorTreeBuilder Wait (string name, int turns = 1) {
116+
_tree.AddNode(Pointer, new Wait {
117+
Name = name,
118+
turns = turns
119+
});
120+
121+
return this;
122+
}
123+
124+
public BehaviorTreeBuilder Wait (int turns = 1) {
125+
return Wait("wait", turns);
126+
}
127+
115128
public BehaviorTreeBuilder End () {
116129
_pointer.RemoveAt(_pointer.Count - 1);
117130

Assets/FluidBehaviorTree/Scripts/BehaviorTree/Editor/BehaviorTreeBuilderTest.cs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ public class RandomChanceMethod : BehaviorTreeBuilderTest {
375375
public void It_should_add_a_random_chance () {
376376
var tree = _builder
377377
.Sequence()
378-
.RandomChance("random", 1, 3)
378+
.RandomChance("random", 1, 1)
379379
.Do("action", () => {
380380
_invokeCount++;
381381
return TaskStatus.Success;
@@ -391,5 +391,29 @@ public void It_should_add_a_random_chance () {
391391
Assert.AreEqual(1, _invokeCount);
392392
}
393393
}
394+
395+
public class WaitMethod : BehaviorTreeBuilderTest {
396+
[Test]
397+
public void It_should_add_a_wait_node () {
398+
var tree = _builder
399+
.Sequence()
400+
.Wait("wait", 2)
401+
.Do("action", () => {
402+
_invokeCount++;
403+
return TaskStatus.Success;
404+
})
405+
.Build();
406+
407+
var sequence = tree.Root.Children[0] as Sequence;
408+
var wait = sequence.Children[0] as Wait;
409+
410+
Assert.IsNotNull(wait);
411+
Assert.AreEqual(sequence.Children.Count, 2);
412+
Assert.AreEqual(TaskStatus.Continue, tree.Tick());
413+
Assert.AreEqual(TaskStatus.Continue, tree.Tick());
414+
Assert.AreEqual(TaskStatus.Success, tree.Tick());
415+
Assert.AreEqual(1, _invokeCount);
416+
}
417+
}
394418
}
395419
}

0 commit comments

Comments
 (0)