KSP-RO / TestFlight

KSP Mod that provides a part research and reliability system
42 stars 31 forks source link

Determine how to display new engine cycle data to the player #224

Open jwvanderbeck opened 3 years ago

jwvanderbeck commented 3 years ago

Bug introduced in 2.1, with the new continuous run time. Both curves are used for actual calculations but only the original one is currently used to display info to the user in the VAB.

jwvanderbeck commented 3 years ago

@NathanKell I'm actually unclear on what this should show.

There are two different "info" sections that TF generates. The main one, the one that should be all good, is the middle click info that is displayed. This is all the detailed information and in here it shows but the continuous and cumulative run times.

The second is the small blurb that get's added to the right click info on the part in the catalog list on the left. This currently shows something like: Rated burn time: 47s 100% failure at: 123s

That is obviously only capturing the original (cumulative) rated runtime and curve. The second value is simply displaying what the value is on the last key in the curve.

I'm assuming it is this part catalog info block you are concerned with, but not 100% sure what it should show.

NathanKell commented 3 years ago

Yeah, tbh I am also not certain. Here's the thing: we're trying to use two curves to handle three scenarios.

The simplest case is the old case: a single rated burn time (which is hooked up to the cycle curve), and since it is generated by the configger, it is guaranteed to have the last value in the curve be 100. (Note that that is not necessarily 100%, since failure chances can be well below 1% in the reliability curve....whee!)

The next case is what you originally designed for: a separation between total rated burn time and rated continuous burn time. Here I am not at all sure what should be displayed to the user, because consider an engine with a rated burn time of 5 minutes and a continuous burn time of 1 minute. It's wrong to say "failure is 100x at 7.5 minutes" as it currently would, because that makes you think you can burn it considerably longer than a minute. But it's also wrong to multiply the curves together, or to display only the continuous value.

The third case was Kirk's attempt to provide more tunable overburning by using the two curve system. However I think the actual solution goinig forward (rather than my quick hackjob of a hotfix that introduced testedBurnTime to the cfg) is to boil those numbers into a single curve rather than multiplying two curves together, since really it's used to handle a singular burn in most cases.

This is a royal mess, and I think we first need to figure out what we actually want out of the system, second what UI is useful to players, and only third implement it in TF and cfg.