Closed jwvanderbeck closed 8 years ago
The TestFlight R&D System is finally here! It has been teased forever by the nonfunctional R&D tab seen in the TestFlight window in the KSC screen, but now it is finally implemented.
The R&D system is an optional feature that allows you to spend funds and time to increase part reliability without actually flying them and risking bad things happening. Gaining data through flight will still often be quicker, but not as safe. R&D will be safer but slower and cost funds. The choice is yours. Parts do have maximum R&D limits however, so while engineers can get you to a better reliability before flight testing, they won't get you all the way.
R&D can be assigned to any supported part while in the editor constructing your vessel. Simply right click on the part and click the R&D Window
button to toggle the R&D window. Here you can assign one of several teams to begin researching that part. Choose the one that works for you, balancing time and cost.
Every research cycle, which defaults to one day but may be changed by other mods, your part will receive flight data assigned to it by the research team, and funds will be subtracted.
You can stop/pause/resume research at any time either in the editor or as a shortcut by using the R&D tab in the main KSC screen. Research will also auto stop if the part reaches its maximum R&D level.
In addition to the R&D system, I also took this time to redo how TestFlight information is displayed in the editor. The old TF window in the editor is now gone, and is replaced by the new R&D window for assigning research and a new "Info Overlay" window which can give you detailed TestFlight information on any placed part with a simple Middle Click.
Upgrading from 1.5.3.0 release to 1.5.4.0 release should not cause any issues. If you are upgrading from a dev or beta version of 1.5.4.0, it is suggested that you first stop all R&D teams before upgrading.
rndRate
and rndCost
to display in R&D window. Fixes #136 GetTestFlightInfo
which is used to return data the module desires to be displayed in the Editor Info windowupdateFrequency
is a double indicating how often the R&D teams tick. Value is in seconds and the default is 86400 or 1 day.points
indicates the amount of research points (directly mapped to data units) generated by the team per update. Default is 100. costFactor
indicates the cost per point of the research team. Defaults to 1. Added ConfigNodeExtensions from @stupid_chris with license information.ITestFlightCore
to support R&D: rndMaxData
defines the maximum amount of flight data that can be obtain by using engineering teams. This is defined in absolute units and if not present, R&D ill cap out at 75% of the part's maximum dataITestFlightCore
to support R&D: rndRate
defines the speed at which the part is research by engineering teams. This is a multiplier against the number of points generated by a team each cycle and defaults to 1, IE no modification.ITestFlightCore
to support R&D: rndCost
defines the cost at which the part is research by engineering teams. This is a multiplier against the cost of the team each cycle and defaults to 1, IE no modification.TestFlightReliability_EngineCycle
can now optionally modify accumulated burn time based on the actual thrust output of the engine. This is defined as a modifier curve using the FloatCurve thrustModifier
TestFlightReliability_EngineCycle
can now optionally decaythe used burn time on an engine when the engine is turned off. Can bedefined by using the property idleDecayRate
. This value is directlysubtracted from the engine's current burn time each second, so a valueof 1 would be an approximate 1:1 time decay. This can optionally allowengines to have extended usage when shut off during coast periods.Note that this only kicks in if the engine is shut off (not ignited).TestFlightFailure_IgnitionFail
can now apply an additional modifier to the chance of ignition based on the number of previous ignitions used. Use the FloatCurve ingitionUseMultiplier
. This is a straight multiplier and thus values below 1 will lower the chance of the engine igniting and values above 1 will increase the chances.TestFlightFailure_IgnitionFail
can now cause an additionalfailure to occur if the ignition fails. The chance of this occurringcan be set in the property additionalFailChance
and is a value 0-1f,with default of 0. If this additional failure triggers then theengine will receive one of the existing random failures assigned to thepart.Failed
to ITestFlightFailure
interface.ShutdownEngine
failure now also removes all ignitions from the engine. They are restored is the failure is repaired.int GetIgnitionCount()
void AddIgnitions(int numIgnitions)
and void RemoveIgnitions(int numIgnitions)
Passing < 0 to RemoveIgnitions
will remove all ignitions on the engine.
TestFlight Release 1.5.4.0