예제 #1
0
    protected goalStatus processSubgoals()
    {
        while (subgoalList.Count > 0 &&
               (subgoalList.First.Value.hasFailed() || subgoalList.First.Value.isCompleted()))
        {
            subgoalList.First.Value.Terminate();
            subgoalList.RemoveFirst();
        }

        if (subgoalList.Count != 0)
        {
            goalStatus subgoalStatus = subgoalList.First.Value.Process();

            if (subgoalStatus == goalStatus.completed && subgoalList.Count > 1)
            {
                subgoalStatus = goalStatus.active;
            }

            if (subgoalStatus == goalStatus.active && isBuffered())
            {
                subgoalStatus = goalStatus.buffered;
            }

            return(subgoalStatus);
        }
        else
        {
            return(goalStatus.completed);
        }
    }
예제 #2
0
파일: Goal.cs 프로젝트: Lu-D/StealthRogue
 protected void ReactivateIfFailed()
 {
     if (hasFailed())
     {
         status = goalStatus.inactive;
     }
 }
예제 #3
0
파일: Goal.cs 프로젝트: Lu-D/StealthRogue
//public
    public Goal(BEnemy _owner)
    {
        owner  = _owner;
        status = goalStatus.inactive;
    }
예제 #4
0
파일: Goal.cs 프로젝트: Lu-D/StealthRogue
 public void SetInactive()
 {
     status = goalStatus.inactive;
 }