void Start()
 {
     if (isHuman)
     {
         Time.timeScale = 1;
         Cursor.SetCursor(cursor, new Vector2(cursor.width / 2, cursor.height / 2), CursorMode.Auto);
         if (startingPowerUp.Equals(PowerUpType.SPLIT))
         {
             powerUp = new PowerUp(startingPowerUp);
             launcher.projectileType = ProjectileType.getSpread(0.1f, startingPowerUpStacks);
         }
         else if (startingPowerUp.Equals(PowerUpType.TRACKING))
         {
             powerUp = new PowerUp(startingPowerUp);
             launcher.projectileType = ProjectileType.getSpread(0.1f, startingPowerUpStacks);
             launcher.isSeeking      = true;
         }
         else
         {
             launcher.projectileType = ProjectileType.getRegular(0.1f);
         }
         horizontalAxis             = Vector3.Normalize(Vector3.right + (Vector3.forward * -1));
         verticalAxis               = Vector3.Normalize(Vector3.right + Vector3.forward);
         isRunning                  = false;
         rb                         = GetComponent <Rigidbody>();
         animator                   = GetComponent <Animator>();
         lineRenderer               = GetComponent <LineRenderer>();
         lineRenderer.positionCount = 2;
         currentMoveSpeed           = walkSpeed;
         aimDirection               = launcher.transform.forward;
         isAirborne                 = false;
     }
     else
     {
         if (startingPowerUp.Equals(PowerUpType.SPLIT))
         {
             launcher.projectileType = ProjectileType.getSpread(0.1f, startingPowerUpStacks);
         }
         else if (startingPowerUp.Equals(PowerUpType.TRACKING))
         {
             launcher.projectileType = ProjectileType.getSpread(0.1f, startingPowerUpStacks);
             launcher.isSeeking      = true;
         }
         else
         {
             launcher.projectileType = ProjectileType.getRegular(0.1f);
         }
         navAgent      = GetComponent <NavMeshAgent>();
         isRunning     = false;
         rb            = GetComponent <Rigidbody>();
         animator      = GetComponent <Animator>();
         isAirborne    = false;
         playerInRange = false;
     }
 }
 public void PowerUp(PowerUpType powerUpType)
 {
     if (powerUpType.Equals(PowerUpType.HEALTH))
     {
         float newHealth = health + 20;
         if (newHealth > maxHealth)
         {
             health = maxHealth;
         }
         else
         {
             health = newHealth;
         }
     }
     else if (powerUp == null || !powerUp.getType().Equals(powerUpType))
     {
         powerUp = new PowerUp(powerUpType);
         if (powerUpType.Equals(PowerUpType.SPLIT))
         {
             launcher.isSeeking      = false;
             launcher.projectileType = ProjectileType.getSpread(0.1f, 1);
         }
         if (powerUpType.Equals(PowerUpType.TRACKING))
         {
             launcher.isSeeking      = true;
             launcher.projectileType = ProjectileType.getSpread(0.1f, 0);
         }
     }
     else
     {
         if (powerUp.getStackCount() < 3)
         {
             if (powerUpType.Equals(PowerUpType.SPLIT))
             {
                 launcher.projectileType = ProjectileType.getSpread(0.1f, ++powerUp.stackCount);
             }
             else if (powerUpType.Equals(PowerUpType.TRACKING))
             {
                 launcher.projectileType = ProjectileType.getSpread(0.1f, ++powerUp.stackCount - 1);
             }
         }
     }
 }