Advertisement
Guest User

Untitled

a guest
Jul 8th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 2.30 KB | None | 0 0
  1. FUNCTION PRINT_AT {
  2.     PARAMETER DESCRIPTION.
  3.     PARAMETER TEXT.
  4.     PARAMETER STRING_NUM.
  5.  
  6.     PRINT DESCRIPTION AT(0,STRING_NUM) + "          " + TEXT AT(0,STRING_NUM).
  7. }.
  8.  
  9.  
  10. FUNCTION CIRCLING_FROM_PERIAPSIS {
  11.     //At this point, our apoapsis is above 100km and our main loop has ended. Next
  12.     //we'll make sure our throttle is zero and that we're pointed prograde
  13.     PRINT "Disable engine".
  14.     LOCK THROTTLE TO 0.
  15.  
  16.     PRINT "Waiting to rich APOAPSIS".
  17.  
  18.     UNTIL (ETA:APOAPSIS < 30) {
  19.         SET MYSTEER TO HEADING(90,0).
  20.         PRINT "Pitching to 0 degrees" AT(0,15).
  21.         PRINT_AT("APOAPSIS",ROUND(SHIP:APOAPSIS,0),16).
  22.         PRINT_AT("ALTITUDE",ROUND(SHIP:ALTITUDE,0),17).
  23.         PRINT_AT("ETA:APOAPSIS",ETA:APOAPSIS,18).
  24.     }.
  25.  
  26.     PRINT "Pitching to 0 degrees".
  27.     SET MYSTEER TO HEADING(90,0).
  28.     LOCK THROTTLE TO 1.0.
  29.  
  30.     UNTIL (ABS((SHIP:APOAPSIS - SHIP:PERIAPSIS)/SHIP:PERIAPSIS) < 0.05 ) {
  31.         PRINT_AT("SHIP:APOAPSIS",SHIP:APOAPSIS,15).
  32.         PRINT_AT("SHIP:PERIAPSIS",SHIP:PERIAPSIS,17).        
  33.         PRINT_AT("ABS(SHIP:APOAPSIS - SHIP:PERIAPSIS)",ABS(SHIP:APOAPSIS - SHIP:PERIAPSIS),23).
  34.  
  35.  
  36.         IF ETA:APOAPSIS  { BREAK. }
  37.     }.
  38.  
  39.     LOCK THROTTLE TO 0.
  40. }.
  41.  
  42.  
  43. CLEARSCREEN.
  44.  
  45.  
  46. LOCK THROTTLE TO 1.0.  
  47.  
  48.  
  49. WHEN MAXTHRUST = 0 THEN {
  50.     PRINT "Staging".
  51.     STAGE.
  52.     PRESERVE.
  53. }.
  54.  
  55.  
  56. SET MYSTEER TO HEADING(90,90).
  57. LOCK STEERING TO MYSTEER.
  58. UNTIL SHIP:APOAPSIS > 100000 {
  59.  
  60.     IF SHIP:VELOCITY:SURFACE:MAG < 100 {
  61.         SET MYSTEER TO HEADING(90,90).
  62.  
  63.  
  64.     } ELSE IF SHIP:VELOCITY:SURFACE:MAG >= 100 AND SHIP:VELOCITY:SURFACE:MAG < 800 {
  65.         SET PITCH_ANG TO (SHIP:ALTITUDE - 24033)/(-282).
  66.         SET MYSTEER TO HEADING(90,ROUND(PITCH_ANG,0)).
  67.         PRINT "Pitching to " + PITCH_ANG + " degrees" AT(0,15).
  68.         PRINT_AT("APOAPSIS",ROUND(SHIP:APOAPSIS,0),16).
  69.  
  70.     } ELSE IF SHIP:VELOCITY:SURFACE:MAG >= 800 {
  71.         SET MYSTEER TO HEADING(90,10).
  72.         PRINT "Pitching to 10 degrees" AT(0,15).
  73.         PRINT_AT("APOAPSIS",ROUND(SHIP:APOAPSIS,0),16).
  74.         PRINT_AT("ALTITUDE",ROUND(SHIP:ALTITUDE,0),18).
  75.     }.
  76.  
  77. }.
  78.  
  79. CLEARSCREEN.
  80.  
  81. PRINT "100 km apoapsis reached, cutting throttle".
  82.  
  83. SET MYSTEER TO HEADING(90,0).
  84. PRINT "Pitching to 0 degrees".
  85.  
  86. CIRCLING_FROM_PERIAPSIS()
  87.  
  88. SET SHIP:CONTROL:PILOTMAINTHROTTLE TO 0.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement