/// <summary> /// Currently this only calculates the change in velocity from 0 to planet radius +* 0.33333. /// TODO: add gravity drag and atmosphere drag, and tech improvements for such. /// </summary> /// <param name="planetEntity"></param> /// <param name="payload"></param> /// <returns></returns> public static double FuelCostToLowOrbit(Entity planetEntity, double payload) { var lowOrbit = LowOrbitRadius(planetEntity); var exaustVelocity = 275; var sgp = OrbitMath.CalculateStandardGravityParameter(payload, planetEntity.GetDataBlob <MassVolumeDB>().Mass); Vector3 pos = new Vector3(lowOrbit, 0, 0); var vel = OrbitMath.ObjectLocalVelocityPolar(sgp, pos, lowOrbit, 0, 0, 0); var fuelCost = OrbitMath.TsiolkovskyFuelCost(payload, exaustVelocity, vel.speed); return(fuelCost); }