SHOW:
|
|
- or go back to the newest paste.
1 | function info { | |
2 | parameter message. | |
3 | print char(7). | |
4 | set logmessage to round(missionTime,1):tostring():padleft(6) + ": " + message. | |
5 | print logmessage. | |
6 | } | |
7 | ||
8 | for rap in ship:partsdubbedpattern("rapier") turbos:add(rap). | |
9 | for m in ship:modulesnamed("WBIModuleGeneratorFX") if m:hasevent("activate fusion power") m:doevent("activate fusion power"). | |
10 | set steeringmanager:rollcontrolanglerange to 180. | |
11 | set proprad to 5.8. | |
12 | set complete to false. | |
13 | set chaseSpeed to 350. | |
14 | set turboSpeed to 300. | |
15 | set rotormods to ship:modulesnamed("ModuleRoboticServoRotor"). | |
16 | set rotors to list(). | |
17 | for rm in rotormods { | |
18 | local rotor to lexicon(). | |
19 | if(rm:getfield("motor") <> "Unpowered") | |
20 | { | |
21 | set rotor["part"] to rm:part. | |
22 | set rotor["mod"] to rm. | |
23 | if rotor:part:parent:name:contains("bay") { | |
24 | set baymod to rotor:part:parent:getmodule("ModuleAnimateGeneric"). | |
25 | if baymod:hasevent("open") baymod:doevent("open"). | |
26 | } | |
27 | ||
28 | set rotor["blades"] to list(). | |
29 | for bm in rm:part:ModulesNamed("ModuleControlSurface") { | |
30 | local b to bm:part. | |
31 | ||
32 | local blade to lexicon(). | |
33 | set blade["mod"] to bm. | |
34 | set blade["offset"] to vdot(-b:Facing:starvector, b:position - b:parent:position). | |
35 | set blade["proprad"] to proprad. | |
36 | ||
37 | bm:setfield("deploy", true). | |
38 | ||
39 | rotor["blades"]:add(blade). | |
40 | } | |
41 | ||
42 | rotors:add(rotor). | |
43 | if rm:hasfield("torque limit(%)") rm:setfield("torque limit(%)", 100). | |
44 | } | |
45 | } | |
46 | lock rpmtarget to min(459,max(0, throttle * 460)). | |
47 | ||
48 | set props to true. | |
49 | ||
50 | on round(time:seconds * 20) { | |
51 | if props { | |
52 | set rpmcopy to rpmtarget. | |
53 | for rotor in rotors { | |
54 | ||
55 | rotor:mod:setfield("rpm limit", rpmcopy ). | |
56 | set calcAirspeed to (2 * constant:pi * (rotor:blades[0]:proprad + rotor:blades[0]:offset) * rpmcopy/60). | |
57 | set deploycopy to max(3, 4.5 + arctan2(airspeed, calcAirspeed)). | |
58 | for blade in rotor:blades { | |
59 | blade:mod:setfield("deploy angle", deploycopy). | |
60 | } | |
61 | } | |
62 | } | |
63 | ||
64 | return props. | |
65 | } | |
66 | - | set x to choose 90 if vang(heading(90,0):vector,ship:facing:vector) < 45 else 0. |
66 | + | set x to 90. lock p to 0. |
67 | - | lock p to 0. |
67 | + | |
68 | brakes on. | |
69 | bays on. | |
70 | wait 4. | |
71 | brakes off. | |
72 | lock throttle to 1. | |
73 | SetAngle(15). | |
74 | startup(vectors). | |
75 | startup(turbos). | |
76 | when airspeed > 90 then { | |
77 | info("takeoff"). | |
78 | set p to 10. | |
79 | } | |
80 | when airspeed > 110 then { | |
81 | info("climb"). | |
82 | set p to 20. | |
83 | setangle(25). | |
84 | } | |
85 | when airspeed > 150 then { | |
86 | - | when airspeed > 150 and apoapsis < 2000 then { |
86 | + | |
87 | setangle(90). | |
88 | set p to 40. | |
89 | gear off. | |
90 | } | |
91 | ||
92 | ||
93 | ||
94 | when apoapsis > 900 then { | |
95 | - | when apoapsis > 2000 then { |
95 | + | |
96 | lock p to max(10,vang(srfprograde:vector,heading(90,0):vector)). | |
97 | - | lock p to max(10,vang(srfprograde:vector,heading(x,0):vector)). |
97 | + | |
98 | ||
99 | when airspeed > 300 then { | |
100 | info("put away props"). | |
101 | set props to false. | |
102 | ||
103 | for rotor in rotors { | |
104 | rotor:mod:setfield("torque limit(%)", 0). | |
105 | rotor:mod:setfield("rpm limit", 0 ). | |
106 | ||
107 | for blade in rotor:blades { | |
108 | blade:mod:setfield("deploy angle", 90). | |
109 | } | |
110 | } | |
111 | ||
112 | for m in ship:modulesnamed("WBIModuleGeneratorFX") if m:hasevent("deactivate fusion power") m:doevent("deactivate fusion power"). | |
113 | wait 0. | |
114 | bays off. | |
115 | } | |
116 | ||
117 | when airspeed > turboSpeed then { | |
118 | info("Resume Airbreathing Flight"). | |
119 | shutoff(vectors). | |
120 | set vlimit to 100. | |
121 | set angletarget to 90. | |
122 | ||
123 | autoVectoring off. | |
124 | } | |
125 |