public void Splice_ThrowsIfNotCompoundPointer() { // Arrange var builder = new DomainBuilder <MyContext>("Test"); // Act var domain = new DomainBuilder <MyContext>("sub-domain").Build(); builder.Action("test"); builder.Splice(domain); }
public void Splice_ExpectedBehavior() { // Arrange var builder = new DomainBuilder <MyContext>("Test"); // Act var domain = new DomainBuilder <MyContext>("sub-domain").Build(); builder.Splice(domain); Assert.AreEqual(true, builder.Pointer is TaskRoot); }
public void Splice_ForgotEnd() { // Arrange var builder = new DomainBuilder <MyContext>("Test"); // Act var domain = new DomainBuilder <MyContext>("sub-domain").Build(); builder.Select("test"); builder.Splice(domain); Assert.AreEqual(true, builder.Pointer is Selector); }
private static Domain <AIContext> DefineDomain(List <Item> itemsInScreen) { var itemDomainBuilder = new DomainBuilder <AIContext>("Item Sub-domains"); foreach (var item in itemsInScreen) { itemDomainBuilder.Splice(item.Domain); } return(new DomainBuilder <AIContext>("Intro Screen Domain") .Splice(itemDomainBuilder.Build()) .Action("Failed") .Condition("Failed to address goal", (ctx => ctx.HasGoal(GoalState.None) == false)) .Do(Actions.Failed) .Effect("Complete Goal", EffectType.PlanAndExecute, (ctx, type) => ctx.SetGoal(GoalState.None, true, type)) .End() .Action("Idle") .Do(ctx => TaskStatus.Continue) .End() .Build()); }