Example #1
0
 protected void DetermineTarget()
 {
     if (GetDistanceFromPlayer() > maxDistanceFromPlayer)
     {
         repositionStatus = RepositionStatus.DontReposition;
         SetTarget(Target.Player);
     }
     else if (GetDistanceFromPlayer() < maxDistanceFromPlayer && repositionStatus == RepositionStatus.ReadyToReposition)
     {
         repositionStatus = RepositionStatus.Repositioning;
         SetTarget(Target.RepositionPoint);
         repositionTimer.startRepositionTimer();
     }
     else if (GetDistanceFromPlayer() < maxDistanceFromPlayer && repositionStatus == RepositionStatus.Repositioning)
     {
         repositionStatus = repositionTimer.getRepositionStatus();
     }
     else if (GetDistanceFromPlayer() < maxDistanceFromPlayer && repositionStatus == RepositionStatus.DontReposition)
     {
         repositionStatus = repositionTimer.getRepositionStatus();
     }
     if (GetDistanceFromPlayer() < minDistanceFromPlayer && repositionStatus != RepositionStatus.Repositioning)
     {
         repositionStatus = RepositionStatus.ReadyToReposition;
         repositionTimer.clearTimer();
     }
 }
Example #2
0
 protected void ManageTargetDistance()
 {
     if ((target - transform.position).magnitude > maxDistanceFromTarget)
     {
         MoveTowardsTarget();
     }
     else if (targetType == Target.RepositionPoint &&
              (target - transform.position).magnitude < maxDistanceFromTarget &&
              repositionStatus == RepositionStatus.Repositioning)
     {
         repositionTimer.startCooldownTimer();
         repositionStatus = repositionTimer.getRepositionStatus();
     }
 }