private bool TryGetWarpFactor(out float warpFactor) { var maximumWarp = IsDamaged ? 0.2f : 8; if (_io.TryReadNumberInRange("Warp Factor", 0, maximumWarp, out warpFactor)) { return(warpFactor > 0); } _io.WriteLine( IsDamaged && warpFactor > maximumWarp ? "Warp engines are damaged. Maximum speed = warp 0.2" : $" Chief Engineer Scott reports, 'The engines won't take warp {warpFactor} !'"); return(false); }