diff --git a/TestFlightAPI/TestFlightAPI/TestFlightFailure.cs b/TestFlightAPI/TestFlightAPI/TestFlightFailure.cs index a4819ea..4dd29c5 100644 --- a/TestFlightAPI/TestFlightAPI/TestFlightFailure.cs +++ b/TestFlightAPI/TestFlightAPI/TestFlightFailure.cs @@ -22,6 +22,8 @@ public class TestFlightFailureBase : PartModule, ITestFlightFailure [KSPField] public float duFail = 0f; [KSPField] + public float duSucceed = 0f; + [KSPField] public float duRepair = 0f; [KSPField] public bool oneShot = false; @@ -163,6 +165,7 @@ public virtual void SetActiveConfig(string alias) currentConfig.TryGetValue("weight", ref weight); currentConfig.TryGetValue("failureTitle", ref failureTitle); currentConfig.TryGetValue("duFail", ref duFail); + currentConfig.TryGetValue("duSucceed", ref duSucceed); currentConfig.TryGetValue("duRepair", ref duRepair); currentConfig.TryGetValue("oneShot", ref oneShot); currentConfig.TryGetValue("awardDuInPreLaunch", ref awardDuInPreLaunch); diff --git a/TestFlightFailure_IgnitionFail.cs b/TestFlightFailure_IgnitionFail.cs index 8d1babb..7d984c2 100644 --- a/TestFlightFailure_IgnitionFail.cs +++ b/TestFlightFailure_IgnitionFail.cs @@ -275,6 +275,7 @@ public override void OnUpdate() } else { + OnIgnition(); engineData.hasBeenRun = true; } } @@ -648,6 +649,19 @@ private void ShowRestartWindowPenaltyInfo(string sPenaltyPercent) TestFlightGameSettings tfSettings = HighLogic.CurrentGame.Parameters.CustomParams(); tfSettings.restartWindowPenaltyReminderShown = restartWindowPenaltyReminderShown = true; } + + private void OnIgnition() + { + if (core.GetFlightData() == core.GetInitialFlightData() && (vessel.situation != Vessel.Situations.PRELAUNCH || awardDuInPreLaunch)) //Only award DU on the first ignition of each flight, and only when not attached to launch clamps. + { + float ignitionDU = Mathf.Max(duSucceed, core.GetMaximumData() / 40); + if (verboseDebugging) + { + Log($"IgnitionFail: Awarding successful ignition DU: {ignitionDU:F4}"); + } + core.ModifyFlightData(ignitionDU, true); //Award DU for first successful ignition + } + } } }