void Update() { // Cheap AI Control core.SetThrottle(1f); Vector3 firstDir = (player.transform.position - transform.position).normalized; firstDir = Quaternion.Euler(0f, -shipPivot.transform.eulerAngles.y, 0f) * firstDir; Vector3 orbitOffset; if (firstDir.x > 0f) { orbitOffset = Quaternion.Euler(0f, -90f, 0f) * (player.transform.position - transform.position).normalized; } else { orbitOffset = Quaternion.Euler(0f, 90f, 0f) * (player.transform.position - transform.position).normalized; } Vector3 targetDir = (player.transform.position + orbitOffset * targetOrbitDistance - transform.position).normalized; targetDir = Quaternion.Euler(0f, -shipPivot.transform.eulerAngles.y, 0f) * targetDir; if (targetDir.x > 0f) { core.SetRudder(1f); } else { core.SetRudder(-1f); } turret.UpdateAim(player.transform.position + Quaternion.Euler(0f, player.transform.Find("Ship Pivot").eulerAngles.y, 0f) * new Vector3(0f, 0.25f, -0.65f), player.GetComponent <ShipCore>().GetVelocity()); if (turret.IfOnTarget()) { turret.FireCannon(playerMask); } if (core.GetHealth() == 0f) { //player.GetComponent<PlayerShipController>().IncreaseScore(); //gameMaster.EnemyDestroyed(); Destroy(gameObject); } }