-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbase.ks
88 lines (68 loc) · 1.75 KB
/
base.ks
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// BASE LIB
// by bonk
function launch {
parameter clamp is true.
parameter thr is 0.8.
PRINT "LAUNCH!".
STAGE.
FROM {local tr is 0.3.} until tr >= thr step { set tr to tr + 0.01.} do {
LOCK THROTTLE TO tr.
wait 0.05.
}
if clamp {
PRINT "CLAMP".
STAGE. //CLAMPS
}
wait 0.5.
LOCK STEERING TO UP.
UNTIL AIRSPEED > 100 {
SET NEWTHROTTLE TO THROTTLE + 0.01.
LOCK THROTTLE TO NEWTHROTTLE.
WAIT 0.2.
}
}
function throttle10k {
UNTIL ALTITUDE > 10000 {
SET VRSF TO SHIP:VELOCITY:SURFACE.
IF SHIP:AIRSPEED < 240.0 OR SHIP:SENSORS:ACC:MAG < 1.1 {
SET NEWTHROTTLE TO THROTTLE + 0.01.
}ELSE{
SET NEWTHROTTLE TO THROTTLE - 0.01.
}
IF NEWTHROTTLE > 1 { SET NEWTHROTTLE TO 1.0. }
IF NEWTHROTTLE < 0.4 { SET NEWTHROTTLE TO 0.4. }
LOCK THROTTLE TO NEWTHROTTLE.
print SHIP:Q.
print SHIP:SENSORS:ACC.
WAIT 0.2.
}
PRINT "10.000 reached".
}
function ascent {
parameter apo is 100000.
parameter myheading is 90.
parameter staging is false.
parameter onTickFunction is {}.
LOCK STEERING TO HEADING(myheading,80).
UNTIL SHIP:OBT:APOAPSIS > apo {
//Cruise by temp
IF (SHIP:SENSORS:TEMP < 450 OR SHIP:SENSORS:ACC:MAG < 1.1) { //AND SHIP:SENSORS:ACC:Y < 5 ) { //10m0°C or 5 G
SET NEWTHROTTLE TO THROTTLE + 0.1.
}ELSE {
SET NEWTHROTTLE TO THROTTLE - 0.1.
}
IF NEWTHROTTLE > 1 { SET NEWTHROTTLE TO 1.0. }
IF NEWTHROTTLE < 0 { SET NEWTHROTTLE TO 0.0. }
LOCK THROTTLE TO NEWTHROTTLE.
SET hori TO (1.0 - (SHIP:OBT:APOAPSIS / apo)) * 90.0.
LOCK STEERING TO HEADING(myHeading, hori).
PRINT SHIP:OBT:APOAPSIS.
PRINT hori.
PRINT SHIP:Q.
print ship:sensors:acc:mag.
onTickFunction().
WAIT 0.25.
}
LOCK THROTTLE TO 0.0.
PRINT "COASTING!".
}