// The normal Update() method won't work here, because weapon updates are ignored when in a Ride. public new IEnumerator Update() { while (true) { if (owner.currentWeapon.menuName != menuName) { yield break; } if (jet) { if (jet.rider) { weaponEnergy -= 2f * Time.deltaTime; if (weaponEnergy <= 0.0f) { weaponEnergy = 0.0f; owner.Dismount(); jet.Kill(); } } } yield return(null); } base.Update(); }