574
edits
m (→Background: minor edit) |
(→How to install the current system on an aircraft: Updated to new version.) |
||
Line 24: | Line 24: | ||
# | # | ||
# | # | ||
# Version 0. | # Version 0.16 | ||
# | # | ||
# License: | # License: | ||
Line 290: | Line 290: | ||
var lon = me.input.lon.getValue(); | var lon = me.input.lon.getValue(); | ||
var info = geodinfo(lat, lon); | var info = geodinfo(lat, lon); | ||
var solid = info == nil ? TRUE : (info[1] == nil ? TRUE : info[1].solid); | var solid = info == nil?TRUE:(info[1] == nil?TRUE:info[1].solid); | ||
var speed = me._calcGroundSpeed(); | var speed = me._calcGroundSpeed(); | ||
Line 296: | Line 296: | ||
var failure_modes = FailureMgr._failmgr.failure_modes; | var failure_modes = FailureMgr._failmgr.failure_modes; | ||
var mode_list = keys(failure_modes); | var mode_list = keys(failure_modes); | ||
var probability = speed / | var probability = (speed * speed) / 40000.0;# 200kt will fail everything, 0kt will fail nothing. | ||
var hitStr = "something"; | var hitStr = "something"; | ||
if(info != nil and info[1] != nil) { | if(info != nil and info[1] != nil) { | ||
hitStr = info[1].names == nil ? "something" : info[1].names[0]; | hitStr = info[1].names == nil?"something":info[1].names[0]; | ||
foreach(infoStr; info[1].names) { | foreach(infoStr; info[1].names) { | ||
if(find('_', infoStr) == -1) { | if(find('_', infoStr) == -1) { | ||
Line 309: | Line 309: | ||
} | } | ||
# test for explosion | # test for explosion | ||
if(probability > | if(probability > 0.766 and me.fdm.input.fuel.getValue() > 2500) { | ||
# | # 175kt+ and fuel in tanks will explode the aircraft on impact. | ||
me.input.simCrashed.setBoolValue(TRUE); | |||
me._explodeBegin("Aircraft hit "~hitStr~"."); | |||
return; | return; | ||
} | } | ||
Line 322: | Line 322: | ||
} | } | ||
var str = "Aircraft hit " ~ hitStr ~ "."; | var str = "Aircraft hit "~hitStr~"."; | ||
me._output(str); | me._output(str); | ||
} elsif (solid == TRUE) { | } elsif (solid == TRUE) { | ||
Line 373: | Line 373: | ||
}, | }, | ||
_stressDamage: func (str) { | _stressDamage: func (str) { | ||
me._output("Aircraft damaged: Wings broke off, due to " ~ str ~ " G forces."); | me._output("Aircraft damaged: Wings broke off, due to "~str~" G forces."); | ||
me.input.detachOn.setBoolValue(TRUE); | me.input.detachOn.setBoolValue(TRUE); | ||
Line 402: | Line 402: | ||
var lon = me.input.lon.getValue(); | var lon = me.input.lon.getValue(); | ||
var info = geodinfo(lat, lon); | var info = geodinfo(lat, lon); | ||
var solid = info == nil ? TRUE : (info[1] == nil ? TRUE : info[1].solid); | var solid = info==nil?TRUE:(info[1] == nil?TRUE:info[1].solid); | ||
if(solid == FALSE) { | if(solid == FALSE) { | ||
me._impactDamage(); | me._impactDamage(); | ||
Line 410: | Line 410: | ||
_testStress: func () { | _testStress: func () { | ||
if (me._isRunning() == TRUE and me.wingsAttached == TRUE) { | if (me._isRunning() == TRUE and me.wingsAttached == TRUE) { | ||
var gForce = me.fdm.input.Nz.getValue() == nil ? 1 : me.fdm.input.Nz.getValue(); | var gForce = me.fdm.input.Nz.getValue() == nil?1:me.fdm.input.Nz.getValue(); | ||
var weight = me.fdm.input.weight.getValue(); | var weight = me.fdm.input.weight.getValue(); | ||
var wingload = gForce * weight; | var wingload = gForce * weight; |
edits