-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstats.ks
93 lines (77 loc) · 2.61 KB
/
stats.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
GLOBAL MAXLFUEL IS STAGE:LIQUIDFUEL.
GLOBAL MAXOFUEL IS STAGE:OXIDIZER.
GLOBAL MAXSFUEL IS STAGE:SOLIDFUEL.
GLOBAL MAXEC IS STAGE:ELECTRICCHARGE.
GLOBAL OLDSTAGE IS STAGE:NUMBER.
function update_screen {
IF STAGE:NUMBER < OLDSTAGE {
SET MAXLFUEL TO STAGE:LIQUIDFUEL.
SET MAXOFUEL TO STAGE:OXIDIZER.
SET MAXSFUEL TO STAGE:SOLIDFUEL.
SET OLDSTAGE TO STAGE:NUMBER.
}.
IF SHIP:PERIAPSIS < SHIP:BODY:ATM:HEIGHT {
SET MYPERIAPSIS TO "Sub-orbital".
} ELSE {
SET MYPERIAPSIS TO ROUND(SHIP:PERIAPSIS,0).
}.
IF SHIP:APOAPSIS < 0 {
SET TTA TO "Infinite".
} ELSE {
SET TTA TO ROUND(ETA:APOAPSIS,0).
}.
IF STAGE:LIQUIDFUEL = MAXLFUEL {
SET LFUELPERC TO 100.0.
} ELSE {
SET LFUELPERC TO ROUND(100 * (1 - (MAXLFUEL - STAGE:LIQUIDFUEL) / MAXLFUEL),2).
}.
IF STAGE:OXIDIZER = MAXOFUEL {
SET OFUELPERC TO 100.0.
} ELSE {
SET OFUELPERC TO ROUND(100 * (1 - (MAXOFUEL - STAGE:OXIDIZER) / MAXOFUEL),2).
}.
IF STAGE:SOLIDFUEL = MAXSFUEL {
SET SFUELPERC TO 100.0.
} ELSE {
SET SFUELPERC TO ROUND(100 * (1 - (MAXSFUEL - STAGE:SOLIDFUEL) / MAXSFUEL),2).
}.
IF STAGE:ELECTRICCHARGE = MAXEC {
SET ECPERC TO 100.0.
} ELSE {
SET ECPERC TO ROUND(100 * (1 - (MAXEC - STAGE:ELECTRICCHARGE) / MAXEC),2).
}.
CLEARSCREEN.
PRINT "FLIGHT INFORMATION:" AT (0,0).
PRINT " SOI: " + SHIP:BODY:NAME AT (0,1).
PRINT " LAT/LNG: " + ROUND(SHIP:LATITUDE,4) + "/" + ROUND(SHIP:LONGITUDE,4) AT (0,2).
PRINT " ATM CEILING: " + SHIP:BODY:ATM:HEIGHT AT (0,3).
PRINT " SEA ALTITUDE: " + ROUND(SHIP:ALTITUDE,0) AT (0,4).
PRINT "(" + 100 * ROUND(SHIP:BODY:ATM:ALTITUDEPRESSURE(SHIP:ALTITUDE),8) + " % ATM)" AT (30,4).
PRINT " APOAPSIS: " + ROUND(SHIP:APOAPSIS,0) AT (0,5).
PRINT TTA + " seconds" AT (30,5).
PRINT " PERIAPSIS: " + MYPERIAPSIS AT (0,6).
PRINT ROUND(ETA:PERIAPSIS,0) + " seconds" AT (30,6).
PRINT "FUEL SYSTEM:" AT (0,22).
PRINT " STAGE: " + STAGE:NUMBER AT (0,23).
PRINT " SHIP MASS TONS: " + ROUND(SHIP:MASS,2) AT (0,24).
PRINT " SOLID FUEL: " + ROUND(STAGE:SOLIDFUEL,2) AT (0,25).
IF STAGE:SOLIDFUEL < MAXSFUEL {
PRINT SFUELPERC + "% REMAINING" AT (30,25).
}.
PRINT " LIQUID FUEL: " + ROUND(STAGE:LIQUIDFUEL,2) AT (0,26).
IF STAGE:LIQUIDFUEL < MAXLFUEL {
PRINT LFUELPERC + "% REMAINING" AT (30,26).
}.
PRINT " OXIDIZER: " + ROUND(STAGE:OXIDIZER,2) AT (0,27).
IF STAGE:OXIDIZER < MAXOFUEL {
PRINT OFUELPERC + "% REMAINING" AT (30,27).
}.
PRINT " ELECTRIC CHARGE: " + ROUND(STAGE:ELECTRICCHARGE,2) AT (0,28).
IF STAGE:ELECTRICCHARGE < MAXEC {
PRINT ECPERC + "% REMAINING" AT (30,28).
}.
}.
UNTIL 1 < 0 {
WAIT 0.25.
update_screen().
}.