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(); } }
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(); } }