Example #1
0
        public void SequenceNode()
        {
            TestAction action1 = new TestAction(Status.Failed);
            TestAction action2 = new TestAction(Status.Success);

            var subTree = new BehaviourTree.Builder()
                          .Do(action1)
                          .Do(action2)
                          .Build();

            new BehaviourTree.Builder()
            .Sequence(subTree)
            .Build()
            .Start();

            Assert.AreEqual(true, action1.Started);
            Assert.AreEqual(false, action2.Started);
        }
Example #2
0
        public void NestedConditionNode()
        {
            TestAction action1 = new TestAction(Status.Failed);
            TestAction action2 = new TestAction(Status.Success);

            var positiveBranch1 = new BehaviourTree.Builder().Do(action1).Build();
            var negativeBranch2 = new BehaviourTree.Builder().Do(action2).Build();
            var nestedCondition = new BehaviourTree.Builder()
                                  .Condition(() => false, positiveBranch1, negativeBranch2)
                                  .Build();

            new BehaviourTree.Builder()
            .Condition(() => true, nestedCondition, null)
            .Build()
            .Start();

            Assert.AreEqual(false, action1.Started);
            Assert.AreEqual(true, action2.Started);
        }
Example #3
0
        private static void Main()
        {
            BehaviourTree positiveBranch = new BehaviourTree.Builder()
                                           .Do(new WriteLineAction(new WriteLineOptions {
                Message = "Успех!"
            }))
                                           .Do(new WriteLineAction(new WriteLineOptions {
                Message = "Повторюсь: Успех!"
            }))
                                           .Build();

            BehaviourTree negativeBranch = new BehaviourTree.Builder()
                                           .Do(new WriteLineAction(new WriteLineOptions {
                Message = "Неуспех!"
            }))
                                           .Build();

            BehaviourTree subTree = new BehaviourTree.Builder()
                                    .Do(new ConsoleCommandAction(new ConsoleOptions {
                Command = "ping ok.ru"
            }))
                                    .Do(new ConsoleCommandAction(new ConsoleOptions {
                Command = "ping vk.com"
            }))
                                    .Build();

            new BehaviourTree.Builder()
            .Do(new ConsoleCommandAction(new ConsoleOptions {
                Command = "ping google.com"
            }))
            .Condition(IsVkComEqualsMailRu, positiveBranch, negativeBranch)
            .Do(new ConsoleCommandAction(new ConsoleOptions {
                Command = "ping yandex.ru"
            }))
            .Sequence(subTree)
            .Build()
            .Start();

            Console.ReadKey();
        }