示例#1
0
        public override CharacterTask.Task getCurrentTask(CharacterTaskTracker taskTracker)
        {
            if (!path.isUseable())
            {
                return(new CharacterTask.SwitchJob(new UnemployedJob()));
            }

            else if (path.length() == 0)
            {
                if (toReturnTo != null)
                {
                    return(new CharacterTask.SwitchJob(toReturnTo));
                }
                else
                {
                    return(new CharacterTask.SwitchJob(new UnemployedJob()));
                }
            }
            else if (!currentStep.isComplete())
            {
                return(currentStep);
            }
            else
            {
                path.removeAt(0);
                if (path != null && path.length() > 0)
                {
                    currentStep = new CharacterTask.StepToBlock(path.getFirst());
                }


                return(currentStep);
            }
        }
示例#2
0
 public TravelAlongPath(Path nPath)
 {
     Debug.Assert(nPath != null);
     toReturnTo = null;
     path       = nPath;
     if (willResultInTravel())
     {
         currentStep = new CharacterTask.StepToBlock(path.getAt(0));
     }
 }
示例#3
0
 public TravelAlongPath(Path nPath, Job nToReturnTo)
 {
     Debug.Assert(nPath != null);
     toReturnTo = nToReturnTo;
     path       = nPath;
     if (willResultInTravel())
     {
         currentStep = new CharacterTask.StepToBlock(path.getAt(0));
     }
     setJobType(JobType.none);
 }