-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpolar.ks
156 lines (147 loc) · 3.11 KB
/
polar.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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
// SCRIPT TO LAUNCH AND CIRCULARIZE FROM KERBIN
//VARIABLES
SET launch_count TO 3.
SET v_throttle TO 1.
SET angle_of_the_dangle TO 90.
SET let_em_fly TO 0.
SET cut_it_out TO 0.
//FUNCTIONS
FUNCTION drop_it_like_it_is_hot {
IF (MAXTHRUST = 0 AND let_em_fly = 1 AND STAGE:NUMBER > 0) {
STAGE.
PRINT "JETTISONED SPENT STAGE".
PRINT " ".
}
}
FUNCTION steer_it {
IF SHIP:ALTITUDE < 15000 {
SET angle_of_the_dangle TO (90 * (0.9 - SHIP:ALTITUDE / 25000)).
LOCK STEERING TO HEADING (350,angle_of_the_dangle).
}
IF (SHIP:ALTITUDE > 15000 AND SHIP:ALTITUDE < 30000 ){
SET angle_of_the_dangle TO 35.
LOCK STEERING TO HEADING (350,angle_of_the_dangle).
}
IF SHIP:ALTITUDE > 30000 {
SET angle_of_the_dangle TO 30.
LOCK STEERING TO HEADING (350,angle_of_the_dangle).
}
}
FUNCTION throttle_it {
PARAMETER howfast.
IF SHIP:SURFACESPEED > howfast {
LOCK THROTTLE TO 0.5.
}
IF SHIP:SURFACESPEED < howfast {
LOCK THROTTLE TO 1.
}
}
FUNCTION fly_this_thang {
IF SHIP:ALTITUDE < 45000 {
SET cut_it_out TO ((400 + (SHIP:ALTITUDE / 10)) / 3).
//**
throttle_it(cut_it_out - (cut_it_out * 0.1)).
//**
WAIT 1.5.
steer_it().
drop_it_like_it_is_hot().
WAIT 0.2.
}
IF SHIP:ALTITUDE > 45000 {
LOCK THROTTLE TO 1.
}
steer_it().
drop_it_like_it_is_hot().
WAIT 0.2.
}
//FAKE PRE-FLIGHT CHECK OUTPUT
CLEARSCREEN.
SET SHIP:CONTROL:PILOTMAINTHROTTLE TO 0.
WAIT 1.
PRINT "=========================".
PRINT "STARTING LAUNCH SEQUENCE".
PRINT "=========================".
PRINT " ".
WAIT 1.5.
PRINT "CHECKING SYSTEMS...".
PRINT " ".
WAIT 2.
PRINT "STATUS IS SLIGHTLY BETTER THAN OK".
PRINT " ".
WAIT 0.5.
PRINT SHIP:NAME + " IS READY FOR LAUNCH...".
PRINT " ".
WAIT 1.
//COUNTDOWN & LAUNCH
UNTIL launch_count = 0 {
PRINT "T-" + launch_count + "...".
PRINT " ".
SET launch_count TO launch_count -1.
IF launch_count = 1 {
}
WAIT 1.
}
PRINT "START ENGINES AND RELEASE STABALIZERS".
PRINT " ".
LOCK THROTTLE TO 1.
STAGE.
SET let_em_fly TO 1.
PRINT SHIP:NAME + " IS AWAY".
PRINT " ".
//MOVIN' ON UP
WAIT UNTIL SHIP:ALTITUDE > 100.
PRINT "STARTING TURN".
PRINT " ".
WAIT 0.5.
LOCK STEERING TO HEADING (0,90).
WAIT UNTIL SHIP:ALTITUDE > 500.
UNTIL SHIP:APOAPSIS > 80000 {
fly_this_thang().
}
LOCK THROTTLE TO 0.
PRINT "COASTING TO APOAPSIS".
PRINT " ".
WAIT 3.
SET WARPMODE TO "PHYSICS".
SET WARP TO 2.
//CIRCULARIZE
WAIT UNTIL SHIP:ALTITUDE > 65000.
SET WARP TO 0.
WAIT UNTIL SHIP:ALTITUDE > 70000.
PRINT "LEAVING " + BODY:NAME + " ATMOSPHERE".
PRINT " ".
LOCK STEERING TO HEADING (0,0).
WAIT 3.
LOCK THROTTLE TO 1.
PRINT "INITIATE BURN TO KEO".
PRINT " ".
WAIT 3.
UNTIL SHIP:APOAPSIS > 1500000 {
drop_it_like_it_is_hot().
WAIT 0.2.
}
LOCK THROTTLE TO 0.
WAIT 3.
SET WARPMODE TO "RAILS".
SET WARP TO 4.
WAIT UNTIL ETA:APOAPSIS < 120.
SET WARP TO 0.
PRINT "PREPARING FOR CIRCULARIZATION BURN".
PRINT " ".
LOCK STEERING TO HEADING (180,0).
WAIT UNTIL ETA:APOAPSIS < 8.
LOCK THROTTLE TO 1.
UNTIL SHIP:PERIAPSIS > 1450000 {
drop_it_like_it_is_hot().
WAIT 0.2.
}
LOCK THROTTLE TO 0.
SET let_em_fly TO 0.
PRINT "YOU ARE NOW ORBITING KERBIN".
PRINT " ".
PRINT "EXTENDING SOLAR PANELS AND POWERING LIGHTS".
PRINT " ".
WAIT 2.
BRAKES ON.
WAIT 2.
ABORT ON.