Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function info {
- parameter message.
- set logmessage to round(missionTime,1) + ": " + message.
- print logmessage.
- }
- list engines in es. for e in es e:shutdown().
- set takeoffspeed to 60.
- set targetOrbitAltitude to 101e3.
- set takeoffalt to altitude + 8.
- set vectors to ship:partsdubbedpattern("vector").
- for v in vectors set v:thrustlimit to 0.
- set servos to ship:modulesnamed("ModuleRoboticRotationServo").
- lock p to choose 0 if airspeed < takeoffspeed else min(20,max(0,groundspeed/10)).
- lock steering to heading(90,p).
- for v in vectors v:activate().
- lock throttle to targetOrbitAltitude-apoapsis.
- when altitude > 72 then {
- info("engage dynamic servo").
- lock angletarget to max(0, min(35,100 - ((-verticalspeed + (80-altitude)/1.5)*100))).
- }
- toggle ag1.
- info("initialize vtols").
- lock vlimit to (-verticalspeed + (takeoffalt-altitude))*100.
- lock angletarget to 0.
- until vlimit < 0 {
- set vlimitcopy to vlimit.
- set anglecopy to angletarget.
- for v in vectors set v:thrustlimit to vlimitcopy.
- for s in servos if s:hasfield("target angle") s:setfield("target angle", anglecopy).
- print " v thrust: " + vlimitcopy at (0,0).
- print "servo angle: " + anglecopy at (0,1).
- wait 0.
- }
- info("store vtols").
- toggle ag2.
- for s in servos if s:hasfield("target angle") s:setfield("target angle", 90).
- print " v thrust: " + vlimitcopy at (0,0).
- print "servo angle: " + anglecopy at (0,1).
- bays off.
- info("gain speed").
- lock p to 9.6.
- when airspeed > 400 then {
- info("climb").
- lock p to 12.
- }
- when altitude > 8000 then {
- info("climb faster").
- lock p to 18.
- }
- when altitude > 14000 then {
- info("engage rockets").
- list engines in es. for e in es if e:name:contains("nuc") e:activate().
- toggle ag8.
- wait 2.
- toggle ag2.
- for v in vectors set v:thrustlimit to 100.
- }
- when altitude > 22e3 then {
- set p to 10.
- info("push to orbit").
- }
- when ship:oxidizer < 1 then {
- toggle ag2.
- toggle ag8.
- }
- when apoapsis >= body:atm:height then {
- lock steering to srfPrograde.
- info("lock surface prograde").
- }
- when apoapsis >= targetOrbitAltitude then {
- info("warping to space").
- toggle ag1.
- lock throttle to 0.
- set warpmode to "physics".
- set warp to 3.
- }
- when altitude >= body:atm:height then {
- set warp to 0.
- info("adjusting apoapsis").
- lock throttle to choose (targetOrbitAltitude - apoapsis)/10 if apoapsis - periapsis > 10 else 0.
- }
- when altitude > body:atm:height and apoapsis >= targetOrbitAltitude then {
- lock throttle to 0.
- if(apoapsis - periapsis > 10) {
- info("circularize").
- wait 1.
- run plan_circularize.
- run execute_node_old.
- lock throttle to 0.
- }
- }
- function fuelformun {
- radiators on.
- set isrs to ship:modulesnamed("ModuleResourceConverter").
- for isr in isrs { if isr:hasaction("start isru [ox]") isr:doaction("start isru [ox]",true).}
- set warp to 1. wait 1. set warp to 5.
- wait until ship:oxidizer * 9 / 11 >= ship:liquidfuel.
- isru off.
- for isr in isrs { if isr:hasaction("start isru [lf+ox]") isr:doaction("start isru [lf+ox]",true).}
- lock vectordv to Round(315 * 9.81 * ln(ship:mass / (ship:mass - (ship:liquidfuel * 0.005) - (ship:oxidizer * 0.005))), 5).
- wait until vectordv >= 600.
- isru off.
- for isr in isrs { if isr:hasaction("start isru [lqdfuel]") isr:doaction("start isru [lqdfuel]",true).}
- wait until ship:ore < 1.
- isru off.
- set warp to 0.
- radiators off.
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement