예제 #1
0
    public override void Exicute(TheAI ai)
    {
        if (ai.battaryCharge < 0)
        {
            status = RetunWork.Fail;
            return;
        }

        distance = Vector3.Distance(ai.transform.position, ai.moveToPosition);
        if (Vector3.Distance(ai.transform.position, ai.moveToPosition) <= 0.5f)
        {
            if (ai.waypointTracker < ai.waypoints.Length)
            {
                ai.waypointTracker++;
            }
            else
            {
                ai.waypointTracker = 0;
            }
            ai.moveToPosition = ai.waypoints[ai.waypointTracker].position;
        }

        status = RetunWork.Running;
        ai.transform.position = Vector3.MoveTowards(ai.transform.position, ai.moveToPosition, ai.movementSpeed);
        ai.battaryCharge     -= Time.deltaTime * 2;
    }
예제 #2
0
    public override void Exicute(TheAI ai)
    {
        for (int i = 0; i < referancesToChildern.Count; i++)
        {
            check = true;
            if (ai.skipForMe)
            {
                if (referancesToChildern[i].skipWhenRunning)
                {
                    check = false;
                }
            }

            if (check)
            {
                referancesToChildern[i].Exicute(ai);

                if (referancesToChildern[i].status == RetunWork.Fail || referancesToChildern[i].status == RetunWork.Running)
                {
                    Debug.Log("<color=yellow> RETURNED </color>");
                    status = referancesToChildern[i].status;
                    return;
                }
            }
            else if (i == referancesToChildern.Count - 1)
            {
                Debug.Log("<color=pink> Siquance Fail </color>");
                status = RetunWork.Fail;
                return;
            }
        }
        status = RetunWork.Success;
    }
예제 #3
0
    public override void Exicute(TheAI ai)
    {
        for (int i = 0; i < referancesToChildern.Count; i++)
        {
            check = true;
            if (ai.skipForMe)
            {
                if (referancesToChildern[i].skipWhenRunning)
                {
                    check = false;
                }
            }
            if (check)
            {
                referancesToChildern[i].Exicute(ai);

                if (referancesToChildern[i].status == RetunWork.Success || referancesToChildern[i].status == RetunWork.Running)
                {
                    status = referancesToChildern[i].status;
                    return;
                }
            }
        }
        status = RetunWork.Fail;
    }
예제 #4
0
 public override void Exicute(TheAI ai)
 {
     if (ai.battaryCharge >= 100)
     {
         status       = RetunWork.Success;
         ai.skipForMe = false;
         return;
     }
     Debug.Log("<color=blue> IN Charging </color>");
     status            = RetunWork.Running;
     ai.skipForMe      = true;
     ai.battaryCharge += Time.deltaTime * 20;
 }
예제 #5
0
 public override void Exicute(TheAI ai)
 {
     distance = Vector3.Distance(ai.transform.position, ai.moveToPosition);
     if (distance <= 0.5f)
     {
         status = RetunWork.Success;
         return;
     }
     Debug.Log("<color=red> IN Moving </color>");
     status = RetunWork.Running;
     ai.transform.position = Vector3.MoveTowards(ai.transform.position, ai.moveToPosition, ai.movementSpeed);
     ai.battaryCharge     -= Time.deltaTime * 10;
 }
예제 #6
0
 public override void Exicute(TheAI ai)
 {
     if (ai.waypointTracker < ai.waypoints.Length - 1)
     {
         ai.waypointTracker++;
     }
     else
     {
         ai.waypointTracker = 0;
     }
     ai.moveToPosition = ai.waypoints[ai.waypointTracker].position;
     status            = RetunWork.Success;
 }
예제 #7
0
 public override void Exicute(TheAI ai)
 {
     if (ai.battaryCharge < 0)
     {
         ai.moveToPosition = ai.chargingPoint.position;
         status            = RetunWork.Fail;
         return;
     }
     else
     {
         status = RetunWork.Success;
         return;
     }
 }
예제 #8
0
 public abstract void Exicute(TheAI ai);
예제 #9
0
 public override void Exicute(TheAI ai)
 {
     //Action logic will go here
 }