public void updateIspEngineParams()
        {
            // recaculate ISP based on power and core temp available
            FloatCurve newISP = new FloatCurve();
            FloatCurve vCurve = new FloatCurve();

            maxISP = (float)(Math.Sqrt((double)myAttachedReactor.getCoreTemp()) * isp_temp_rat * ispMultiplier);
            if (!currentpropellant_is_jet)
            {
                minISP = maxISP * 0.4f;
                newISP.Add(0, maxISP, 0, 0);
                newISP.Add(1, minISP, 0, 0);
                myAttachedEngine.useVelocityCurve      = false;
                myAttachedEngine.useEngineResponseTime = false;
            }
            else
            {
                if (myAttachedReactor.shouldScaleDownJetISP())
                {
                    maxISP = maxISP * 2.0f / 3.0f;
                    if (maxISP > 300)
                    {
                        maxISP = maxISP / 2.5f;
                    }
                }
                newISP.Add(0, maxISP * 4.5f / 5.0f);
                newISP.Add(0.10f, maxISP);
                newISP.Add(0.3f, maxISP * 4.0f / 5.0f);
                newISP.Add(1, maxISP * 2.0f / 3.0f);
                vCurve.Add(0, 1.0f);
                vCurve.Add((float)(maxISP * g0 * 1.0 / 3.0), 1.0f);
                vCurve.Add((float)(maxISP * g0), 1.0f);
                vCurve.Add((float)(maxISP * g0 * 4.0 / 3.0), 0);
                myAttachedEngine.useVelocityCurve      = true;
                myAttachedEngine.useEngineResponseTime = true;
                myAttachedEngine.ignitionThreshold     = 0.01f;
            }

            myAttachedEngine.atmosphereCurve = newISP;
            myAttachedEngine.velocityCurve   = vCurve;
            assThermalPower = myAttachedReactor.getThermalPower();
            if (myAttachedReactor is FNFusionReactor)
            {
                assThermalPower = assThermalPower * 0.95f;
            }
        }