123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- print "===============================".
- print "Ready to orbit ! Liftoff in 15s".
- print "===============================".
- SET wantedTWR TO 1.5.
-
- HUDTEXT("Orbit sequence started. Lift off in 15s", 2, 2, 20, green, false).
- GETVOICE(0):PLAY( NOTE(300, .1) ).wait(0.1).GETVOICE(0):PLAY( NOTE(400, .2) ).
-
- SET GETVOICE(0):wave to "sawtooth".
-
- declare function LocalG {
- // Return local gravity
- return ship:body:mu / ship:body:position:mag ^ 2.
- }
-
- declare function getTwrThrust {
- // Estimate thrust for a given TWR (1.5 by default)
- DECLARE PARAMETER TWR is 1.5.
- set m to ship:mass.
- set w to m * LocalG().
- set p to ship:sensors:pres / 100.
- set t to ship:maxthrustat(p).
- set throt to (TWR * w) / t.
- return throt.
- }
-
- SET ctl TO ship:control.
- WAIT 2.0.
- SET ctl:yaw TO -1.0.
- SET ctl:pitch TO -1.0.
- SET ctl:roll TO -1.0.
- WAIT 1.0.
- SET ctl:yaw TO 1.0.
- SET ctl:pitch TO 1.0.
- SET ctl:roll TO 1.0.
- HUDTEXT("Wanted TWR = " + wantedTWR, 2, 2, 20, green, false).
- WAIT 1.0.
- SET ctl:yaw TO 0.0.
- SET ctl:pitch TO 0.0.
- SET ctl:roll TO 0.0.
- set ctl:MAINTHROTTLE TO 0.0.
- WAIT 1.0.
- lock THROTTLE to 0.0.
-
- DECLARE i TO 10.
- UNTIL i < 1 {
- HUDTEXT(i, 1, 2, 20, green, false).
- print i.
- GETVOICE(0):PLAY( NOTE(300, .2) ).
- wait(1.0).
- SET i TO i - 1.
- if i = 2 {
- // Stage 2s before lift off
- STAGE.
- print "Stage !".
- HUDTEXT("Throttle set to " + round(getTwrThrust(wantedTWR)*100) + "% for TWR " + wantedTWR, 2, 2, 20, green, false).
- print "Throttle set to " + round(getTwrThrust(wantedTWR)*100) + "% for TWR " + wantedTWR.
- }
- }
-
-
-
-
-
- HUDTEXT("Lift off !", 2, 2, 20, green, false).
- GETVOICE(0):PLAY( NOTE(400, .1) ).wait(0.1).GETVOICE(0):PLAY( NOTE(300, .2) ).
-
-
- print "Lift off !".
- lock THROTTLE to getTwrThrust(wantedTWR).
-
-
-
- UNTIL SHIP:VERTICALSPEED > 20 {
- WAIT 0.1.
- }
-
- HUDTEXT("Rotation 0", 2, 2, 20, green, false).
- GETVOICE(0):PLAY( NOTE(400, .1) ).wait(0.1).GETVOICE(0):PLAY( NOTE(400, .1) ).
- lock STEERING to HEADING(90,90).
-
- UNTIL SHIP:VERTICALSPEED > 50 {
- WAIT 0.1.
- }
-
- HUDTEXT("Rotation 1", 2, 2, 20, green, false).
- GETVOICE(0):PLAY( NOTE(400, .1) ).wait(0.1).GETVOICE(0):PLAY( NOTE(300, .2) ).
- print "Next rotation at speed 600".
-
- lock STEERING to HEADING(90,70).
-
- UNTIL SHIP:GROUNDSPEED + SHIP:VERTICALSPEED > 600 {
- WAIT 0.1.
- }
-
- HUDTEXT("Rotation 2", 2, 2, 20, green, false).
- GETVOICE(0):PLAY( NOTE(400, .1) ).wait(0.1).GETVOICE(0):PLAY( NOTE(300, .2) ).
-
- declare function endrot {
- set spd to SHIP:GROUNDSPEED + SHIP:VERTICALSPEED.
- return 60 - ((spd - 600) * 60 / 1000)
- }
- lock STEERING to HEADING(90,endrot()).
-
- UNTIL SHIP:GROUNDSPEED + SHIP:VERTICALSPEED > 1000 {
- WAIT 0.1.
- }
- lock STEERING to HEADING(90,0).
-
- HUDTEXT("Rotation 3", 2, 2, 20, green, false).
- GETVOICE(0):PLAY( NOTE(400, .1) ).wait(0.1).GETVOICE(0):PLAY( NOTE(300, .2) ).
- lock steering to HEADING(90,30).
- print "Waiting for AP to reach 80km".
-
- UNTIL SHIP:ORBIT:APOAPSIS > 80000 {
- WAIT 0.1.
- }
-
- HUDTEXT("Apoapsis 100km reached", 5, 2, 20, green, false).
- GETVOICE(0):PLAY( NOTE(300, .1) ).wait(0.1).GETVOICE(0):PLAY( NOTE(400, .2) ).
-
- lock THROTTLE to 0.0.
- set ctl:MAINTHROTTLE TO 0.0.
- print "Waiting for AP".
- print ETA:APOAPSIS.
-
- UNTIL ETA:APOAPSIS < 50 {
- print "Time to apoapsis : ".
- HUDTEXT("Time to apoapsis", 5, 2, 20, green, false).
- HUDTEXT(ETA:APOASPSIS, 5, 2, 20, green, false).
- print ETA:APOAPSIS.
- WAIT 10.0.
- }
-
-
- HUDTEXT("Preparing insertion", 5, 2, 20, green, false).
- GETVOICE(0):PLAY( NOTE(300, .1) ).wait(0.1).GETVOICE(0):PLAY( NOTE(400, .2) ).
-
- LOCK steering TO ship:prograde.
-
- UNTIL ETA:APOAPSIS < 30 {
- print "Time to apoapsis : ".
- print ETA:APOAPSIS.
- WAIT 1.0.
- }
-
-
- DECLARE prev_ETA to ETA:APOAPSIS.
- SET aETA TO ETA:APOAPSIS.
-
- SET SHIP:CONTROL:PILOTMAINTHROTTLE TO 1.0.
- SET throt TO SHIP:CONTROL:PILOTMAINTHROTTLE.
-
- UNTIL SHIP:ORBIT:PERIAPSIS > 80000 {
- if aETA - prev_ETA < 0 {
- if throt = 1.0 {
- print "Failing ! Node approach, notenough thrust !!".
- } else {
- LOCK throttle TO throt + 0.1.
- GETVOICE(0):PLAY( NOTE(300, .1) ).
- }
- }
- if aETA - prev_ETA > 0 {
- if throt = 0.0 {
- print "Failing ! Node escape, WTF !!".
- } else {
- LOCK throttle TO throt - 0.1.
- GETVOICE(0):PLAY( NOTE(400, .1) ).
- }
- }
- WAIT 0.1.
- }
-
- HUDTEXT("Orbiting :D", 5, 2, 20, green, false).
- GETVOICE(0):PLAY( NOTE(300, .1) ).wait(0.1).
- GETVOICE(0):PLAY( NOTE(300, .1) ).wait(0.1).
- GETVOICE(0):PLAY( NOTE(400, .2) ).
-
- unlock STEERING.
- set ctl:MAINTHROTTLE TO 0.0.
- unlock THROTTLE.
|