Skip to content

Commit

Permalink
Showing 2 changed files with 62 additions and 5 deletions.
18 changes: 13 additions & 5 deletions TestFlightFailure_IgnitionFail.cs
Original file line number Diff line number Diff line change
@@ -37,6 +37,9 @@ public override void OnStart(StartState state)
core = TestFlightUtil.GetCore(this.part, Configuration);
if (core != null)
Startup();

// Get the in-game setting for Launch Pad Ignition Failures
preLaunchFailures = HighLogic.CurrentGame.Parameters.CustomParams<TestFlightGameSettings>().preLaunchFailures;
}
public override void Startup()
{
@@ -72,9 +75,15 @@ public override void OnUpdate()
double initialFlightData = core.GetInitialFlightData();
float ignitionChance = 1f;
float multiplier = 1f;
ignitionChance = baseIgnitionChance.Evaluate((float)initialFlightData);
if (ignitionChance <= 0)
ignitionChance = 1f;

// Check to see if the vessel has not launched and if the player disabled pad failures
if (this.vessel.situation == Vessel.Situations.PRELAUNCH && preLaunchFailures) {
ignitionChance = 1.0f;
} else {
ignitionChance = baseIgnitionChance.Evaluate((float)initialFlightData);
if (ignitionChance <= 0)
ignitionChance = 1f;
}

multiplier = pressureCurve.Evaluate((float)(part.dynamicPressurekPa * 1000d));
if (multiplier <= 0f)
@@ -83,8 +92,7 @@ public override void OnUpdate()
float minValue, maxValue = -1f;
baseIgnitionChance.FindMinMaxValue(out minValue, out maxValue);
Log(String.Format("TestFlightFailure_IgnitionFail: IgnitionChance Curve, Min Value {0:F2}:{1:F6}, Max Value {2:F2}:{3:F6}", baseIgnitionChance.minTime, minValue, baseIgnitionChance.maxTime, maxValue));



if (this.vessel.situation != Vessel.Situations.PRELAUNCH)
ignitionChance = ignitionChance * multiplier * ignitionUseMultiplier.Evaluate(numIgnitions);

49 changes: 49 additions & 0 deletions TestFlightSettings.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;

using UnityEngine;

using TestFlightAPI;

namespace TestFlight {
public class TestFlightGameSettings : GameParameters.CustomParameterNode {
public override string Title { get { return "TestFlight Options"; } }
public override GameParameters.GameMode GameMode { get { return GameParameters.GameMode.ANY; } }
public override string Section { get { return "TestFlight"; } }
public override string DisplaySection { get { return Section; } }
public override int SelectionOrder { get { return 1; } }
public override bool HasPresets { get { return true; } }

[GameParameters.CustomParameterUI("Pre-Launch Ignition Failures Enabled?", toolTip = "Set to enable ignition failures on the Launch Pad.")]
public bool preLaunchFailures = true;

public override void SetDifficultyPreset(GameParameters.Preset preset) {
Debug.Log("Setting difficulty preset");
switch (preset)
{
case GameParameters.Preset.Easy:
preLaunchFailures = true;
break;
case GameParameters.Preset.Normal:
preLaunchFailures = true;
break;
case GameParameters.Preset.Moderate:
preLaunchFailures = true;
break;
case GameParameters.Preset.Hard:
preLaunchFailures = true;
break;
case GameParameters.Preset.Custom:
preLaunchFailures = true;
break;
default:
preLaunchFailures = true;
break;
}
}
}
}

0 comments on commit 5bdee46

Please sign in to comment.