// Redo properties @PART[*]:HAS[@RESOURCE[SolidFuel]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { @mass *= 4.8 // will multiply by 0.25 later, yielding 1.2x orig mass. With 1.7x resource, // we get decent mass ratios. @MODULE,*:HAS[#name[ModuleEngine*],!PROPELLANT[IntakeAir]] { key0 = temp key1 = temp @key0 = #$atmosphereCurve/key,0$ @key1 = #$atmosphereCurve/key,1$ @key0 ^= :0 :: @key1 ^= :1 :: @key0 *= 1.4 @key1 *= 1.4 @maxThrust *= 3.4 // double the resource multiplier, divided by all-engine multiplier // to keep pace with fuel change alone it'd be 1.0625 x 1.6 = 1.7 @atmosphereCurve { @key,0 = #$../key0$ @key,0 ^= :^:0 : @key,1 = #$../key1$ @key,1 ^= :^:1 : } } @RESOURCE[SolidFuel] { @amount *= 1.7 @maxAmount *= 1.7 } } @PART[*]:HAS[@MODULE[ModuleEngines*]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { @mass *= 0.25 @MODULE,*:HAS[#name[ModuleEngines*]] { @maxThrust *= 1 // was 1.6 } @MODULE[ModuleGimbal] { //@gimbalRange *= 2 // Disabled for now, to avoid MJ twitch } } // Special case engines // Jets @PART[*]:HAS[@MODULE[ModuleEngine*]:HAS[@PROPELLANT[IntakeAir]]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { @mass *= 3.75 @MODULE[ModuleEngine*]:HAS[@PROPELLANT[IntakeAir]] { @maxThrust *= 0.5 @atmosphereCurve { @key ^= :^0 :: @key ^= : 0 0:: @key *= 0.75 @key ^= :^:0 : @key ^= :$: 0 0: } } } // NTR @PART[nuclearEngine]:FOR[zROMini]:NEEDS[!RealismOverhaul] { @mass *= 3 } // Tanks @PART[*]:HAS[@RESOURCE[LiquidFuel]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { //@mass *= 0.2353 // will be done by rescale, uncomment if not rescaling. // Note, if not rescaling, LF and LFO tanks should have 0.83x resources, // same for Ore, and Monoprop should have 1.25x the resources to account for density diff } // Heat shields @PART[*]:HAS[@MODULE[ModuleAblator]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { @MODULE[ModuleAblator] { @lossConst *= 0.1 } } // RESCALE @PART[*]:HAS[#rescaleFactor[*]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { @rescaleFactor *= 1.6 } @PART[*]:HAS[~rescaleFactor[]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { rescaleFactor = 2.0 } @PART[*]:HAS[~scale[]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { scale = 1.0 } // This _should_ work, but scale seems to fail in 1.0.4... //@PART[*]:HAS[@MODEL]:FOR[zROMini]:NEEDS[!RealismOverhaul] //{ // @MODEL,*:HAS[~scale[]] // { // scale = 1, 1, 1 // } // @MODEL,* // { // scaleX = #$scale[0]$ // scaleY = #$scale[1]$ // scaleZ = #$scale[2]$ // @scaleX *= #$../rescaleFactor$ // @scaleY *= #$../rescaleFactor$ // @scaleZ *= #$../rescaleFactor$ // @scale = #$scaleX$,$scaleY$,$scaleZ$ // } //} //@PART[*]:HAS[@MODEL]:FOR[zROMini]:NEEDS[!RealismOverhaul] //{ // @scale *= #$rescaleFactor$ //} //@PART[*]:HAS[@MODEL]:FOR[zROMini]:NEEDS[!RealismOverhaul] //{ // @rescaleFactor = 1.0 //} // Parachutes, special case @PART[*]:HAS[@MODULE[ModuleDragModifier],@MODULE[ModuleParachute]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { @MODULE,*:HAS[#name[ModuleDragModifier]] { @dragModifier *= 0.390625 // 1/1.6^2 } } // Drag cube changes from rescale @PART[*]:HAS[@DRAG_CUBE]:FOR[zROMini]:NEEDS[!RealismOverhaul] { @DRAG_CUBE { @cube,*[1,,] *= 1.6 @cube,*[3,,] *= 1.6 @cube,*[4,,] *= 1.6 @cube,*[6,,] *= 1.6 @cube,*[7,,] *= 1.6 @cube,*[9,,] *= 1.6 @cube,*[10,,] *= 1.6 @cube,*[12,,] *= 1.6 @cube,*[13,,] *= 1.6 @cube,*[15,,] *= 1.6 @cube,*[16,,] *= 1.6 @cube,*[18,,] *= 1.6 @cube,*[19,,] *= 1.6 @cube,*[20,,] *= 1.6 @cube,*[21,,] *= 1.6 @cube,*[22,,] *= 1.6 @cube,*[23,,] *= 1.6 @cube,*[24,,] *= 1.6 } } // Stat changes from rescale // Engines: increase by throat area @PART[*]:HAS[@MODULE[ModuleEngines*]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { @mass *= 2.56 @MODULE,*:HAS[#name[ModuleEngines*]] { @maxThrust *= 2.56 } } // SRBs: Increase from volume increase @PART[*]:HAS[@RESOURCE[SolidFuel]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { @MODULE,*:HAS[#name[ModuleEngines*]] { @maxThrust *= 1.328125 // already a factor of 2.56 from all-engines, above. } @mass *= 1.328125 // ditto @RESOURCE[SolidFuel] { @amount *= 3.4 @maxAmount *= 3.4 } } // Fuel tanks, lower dry mass @PART[*]:HAS[@RESOURCE[LiquidFuel],!MODULE[ModuleCommand],!MODULE[ModuleEngines*]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { @mass *= 0.8 } // Increase volume of all tanks as appropriate @PART[*]:FOR[zROMini]:NEEDS[!RealismOverhaul] { @RESOURCE[Oxidizer] { @amount *= 3.4 @maxAmount *= 3.4 } @RESOURCE[LiquidFuel] { @amount *= 3.4 // should be 4.096 but this is correct for density and MR @maxAmount *= 3.4 } @RESOURCE[MonoPropellant] { @amount *= 1.25 // higher dry fraction // Note: this means that volume utilization will only be 1/3 that of a regular // LFO tank.... @maxAmount *= 1.25 } @RESOURCE[XenonGas] { @amount *= 4 @maxAmount *= 4 } @RESOURCE[Ore] { @amount *= 3.4 @maxAmount *= 3.4 // assume same density as LF/OX } @RESOURCE[IntakeAir] { @amount *= 4 @maxAmount *= 4 } } // decrease resource costs @RESOURCE_DEFINITION[Oxidizer|LiquidFuel|SolidFuel|MonoPropellant|XenonGas] { @unitCost *= 0.1 } // Rescale wings @PART[*]:HAS[@MODULE[*]:HAS[#deflectionLiftCoeff[*]]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { @mass *= 2.56 @MODULE,*:HAS[#deflectionLiftCoeff[*]] { @deflectionLiftCoeff *= 2.56 } } // Catch Mk2 fuselages that have the wing modules... @PART[*]:HAS[@MODULE[*]:HAS[#useInternalDragModel[False]]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { @mass *= 0.390625 // reset mass } // scale up intakes @PART[*]:HAS[@MODULE[ModuleResourceIntake]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { @mass *= 2.56 @MODULE[ModuleResourceIntake] { @area *= 2.56 } } // Handle proc fairings. @PART[*]:HAS[@MODULE[ModuleProceduralFairing]]:FOR[zROMini]:NEEDS[!RealismOverhaul] { %rescaleFactor = 1.0 @MODEL { %scale = 1.6, 1.6, 1.6 } stack_top0 = #$node_stack_top[0]$ stack_top1 = #$node_stack_top[1]$ stack_top2 = #$node_stack_top[2]$ @stack_top0 *= 1.6 @stack_top1 *= 1.6 @stack_top2 *= 1.6 stack_top_new = #$stack_top0$,$stack_top1$,$stack_top2$,$node_stack_top[3]$,$node_stack_top[4]$,$node_stack_top[5]$,$node_stack_top[6]$ @node_stack_top = #$stack_top_new$ !stack_top0 = DEL !stack_top1 = DEL !stack_top2 = DEL !stack_top_new = DEL stack_bottom0 = #$node_stack_bottom[0]$ stack_bottom1 = #$node_stack_bottom[1]$ stack_bottom2 = #$node_stack_bottom[2]$ @stack_bottom0 *= 1.6 @stack_bottom1 *= 1.6 @stack_bottom2 *= 1.6 stack_bottom_new = #$stack_bottom0$,$stack_bottom1$,$stack_bottom2$,$node_stack_bottom[3]$,$node_stack_bottom[4]$,$node_stack_bottom[5]$,$node_stack_bottom[6]$ @node_stack_bottom = #$stack_bottom_new$ !stack_bottom0 = DEL !stack_bottom1 = DEL !stack_bottom2 = DEL !stack_bottom_new = DEL @MODULE[ModuleProceduralFairing] { @baseRadius *= 1.6 @maxRadius *= 1.6 //@capRadius *= 1.6 @snapThreshold *= 1.6 //@xSectionHeightMin = 0.2 @xSectionHeightMax *= 2 //edgeSlide = 0.15 //edgeWarp = 0 //noseTip = 0.7 @UnitAreaMass = 0.0075 @UnitAreaCost = 6 } } // Physics @PHYSICSGLOBALS:FOR[zROMini]:NEEDS[!RealismOverhaul] { // AeroFX @aeroFXScalar = 0.003 @aeroFXDensityExponent = 0.5 @aeroFXStartThermalFX = 2.5 @aeroFXFullThermalFX = 3.5 @aeroFXExponent = 3.5 // CONSTANTS @spaceTemperature = 4 @solarLuminosityAtHome = 1360 @solarInsolationAtHome = 0.15 @standardSpecificHeatCapacity = 800 @internalHeatProductionFactor = 0.025 @aerodynamicHeatProductionFactor = 1.0 // CONVECTION // Convection areas @fullConvectionAreaMin = -0.1 @fullToCrossSectionLerpStart = 0.8 @fullToCrossSectionLerpEnd = 1.5 // Newtonian-To-Hypersonic transition @machConvectionStart = 2 @machConvectionEnd = 4.0 @machConvectionExponent = 3 @convectionFactorSplashed = 5000 // Turbulent convection (total guesses) @turbulentConvectionStart = 100 @turbulentConvectionEnd = 400 @turbulentConvectionMult = 25 // Newtonian Convection @newtonianConvectionFactorBase = 4.0 @newtonianConvectionFactorTotal = 1.0 @newtonianDensityExponent = 0.5 @newtonianVelocityExponent = 1.0 // Hypersonic Convection @convectionDensityExponent = 0.5 @convectionVelocityExponent = 3.0 @convectionFactor = 1.1 @machTemperatureScalar = 7.5 // ~6000 at 7.3km/sec @machTemperatureVelocityExponent = 0.75 // CONDUCTION @conductionFactor = 5 @skinSkinConductionFactor = 0.06 @skinInteralConductionFactor = 0.25 @shieldedConductionFactor = 0.01 // RADIATION @partEmissivityExponent = 4 @radiationFactor = 1 } // ENGINE RADIAL ATTACH @PART[*]:HAS[@MODULE[ModuleEngines*],~node_attach[],#node_stack_top[*]]:FOR[zzzRealismOverhaul] { node_attach = #$node_stack_top$ } @PART[*]:HAS[#node_attach[*],#attachRules[1,0,1,0,0]]:FOR[zzzRealismOverhaul] { @attachRules = 1,1,1,0,0 } @PART[*]:HAS[#node_attach[*],#attachRules[1,0,1,1,0]]:FOR[zzzRealismOverhaul] { @attachRules = 1,1,1,1,0 }