@LAZYGLOBAL OFF. function any_flameout { // // Return true if any of our engines are starved for fuel. Primarily used to determine the need for staging. // local engines_list is LIST(). list ENGINES in engines_list. for engine in engines_list { if engine:ignition and engine:flameout { return true. } } return false. } function should_stage { // // Return true if the rocket needs to stage. // return STATUS = "PRELAUNCH" // e.g. still attached to launch tower or any_flameout() // any engine starved for fuel or SHIP:maxthrustat(0) = 0. // no active engines (e.g. when we have an intermediate stage for decouplers before activating the next engine) } function stage_when_ready { // // Stage when ready. Blocks until staging has been initiated. // wait until STAGE:ready. print "STAGING". STAGE. } function isp_sum { // // Return the sum of vacuum ISP for enabled engines. // local sum is 0. local engines_list is LIST(). list ENGINES in engines_list. for engine in engines_list { if engine:ignition { set sum to sum + engine:vacuumisp. } } return sum. } function unlock_control { // // Ensure that the throttle is 0 and that the player is not locked out of control. // set SHIP:control:pilotmainthrottle to 0. set SHIP:control:neutralize to true. unlock STEERING. unlock THROTTLE. }