Example #1
0
        public override BehaviourStatus Run(AITree tree, DataContext dataContext, BehaviourStatus status)
        {
            switch (status)
            {
            case BehaviourStatus.Call:
                if (count == subNodes.Count)
                {
                    return(BehaviourStatus.Failure);
                }
                tree.Call(subNodes[count]);
                return(BehaviourStatus.Running);

            case BehaviourStatus.Success:
                return(BehaviourStatus.Success);

            case BehaviourStatus.Failure:
                count++;
                return(Run(tree, dataContext, BehaviourStatus.Call));

            case BehaviourStatus.Running:
                throw new InvalidRunningCommand();

            default:
                throw new System.NotImplementedException();
            }
        }
Example #2
0
 public override BehaviourStatus Run(AITree tree, DataContext dataContext, BehaviourStatus current)
 {
     if (current == BehaviourStatus.Call)
     {
         tree.Call(subNode);
     }
     return(BehaviourStatus.Running);
 }
Example #3
0
 public override BehaviourStatus Run(AITree tree, DataContext dataContext, BehaviourStatus current)
 {
     try
     {
         IQStack <object> qStack = dataContext[qStackName] as IQStack <object>;
         dataContext[varName] = qStack.Peek();
         return(BehaviourStatus.Success);
     }
     catch
     {
         return(BehaviourStatus.Failure);
     }
 }
Example #4
0
 public override BehaviourStatus Init(AITree tree, DataContext dataContext)
 {
     try
     {
         subNode = AIResourceManager.GetTree(subTree);
         if (subNode == null)
         {
             return(BehaviourStatus.Failure);
         }
         else
         {
             return(BehaviourStatus.Success);
         }
     }
     catch
     {
         return(BehaviourStatus.Failure);
     }
 }
Example #5
0
 public override BehaviourStatus Run(AITree tree, DataContext dataContext, BehaviourStatus current)
 {
     if (current == BehaviourStatus.Call)
     {
         tree.Call(subNode);
     }
     else
     {
         Debug.Log(name + ": " + current);
     }
     if (current == BehaviourStatus.Call)
     {
         return(BehaviourStatus.Running);
     }
     else
     {
         return(current);
     }
 }
Example #6
0
 public override BehaviourStatus Run(AITree tree, DataContext dataContext, BehaviourStatus current)
 {
     try
     {
         IQStack <object> qStack = dataContext[qStackName] as IQStack <object>;
         if (qStack is LoopList <object> )
         {
             dataContext[varName] = ((LoopList <object>)qStack).PopRemove();
         }
         else
         {
             dataContext[varName] = qStack.Pop();
         }
         return(BehaviourStatus.Success);
     }
     catch
     {
         return(BehaviourStatus.Failure);
     }
 }
Example #7
0
        public override BehaviourStatus Run(AITree tree, DataContext dataContext, BehaviourStatus current)
        {
            switch (current)
            {
            case BehaviourStatus.Success:
                return(BehaviourStatus.Failure);

            case BehaviourStatus.Failure:
                return(BehaviourStatus.Success);

            case BehaviourStatus.Call:
                tree.Call(subNode);
                return(BehaviourStatus.Running);

            case BehaviourStatus.Running:
                throw new InvalidRunningCommand();

            default:
                throw new System.NotImplementedException();
            }
        }
Example #8
0
 public override BehaviourStatus Init(AITree tree, DataContext dataContext)
 {
     return(BehaviourStatus.Success);
 }
Example #9
0
 public override BehaviourStatus Run(AITree tree, DataContext dataContext, BehaviourStatus current)
 {
     return(BehaviourStatus.Success);
 }
Example #10
0
 public override BehaviourStatus Run(AITree tree, DataContext dataContext, BehaviourStatus current)
 {
     tree.Log(dataContext[varName].ToString());
     return(BehaviourStatus.Success);
 }
Example #11
0
 /// <summary>
 /// This is called when this node is placed on the callstack, before it's executed the first time.
 /// Use this for initialization.
 /// </summary>
 /// <param name="tree"></param>
 /// <param name="dataContext"></param>
 /// <returns></returns>
 public abstract BehaviourStatus Init(AITree tree, DataContext dataContext);
Example #12
0
 /// <summary>
 /// This is called whenever this AI node executes.
 /// </summary>
 /// <param name="tree"></param>
 /// <param name="dataContext"></param>
 /// <param name="current"></param>
 /// <returns></returns>
 public abstract BehaviourStatus Run(AITree tree, DataContext dataContext, BehaviourStatus current);