Skip to content

Commit

Permalink
Showing 5 changed files with 16 additions and 22 deletions.
Binary file modified GameData/RP-0/Plugins/RP0.dll
Binary file not shown.
Binary file modified GameData/RP-0/Plugins/RP0KCTBinder.dll
Binary file not shown.
2 changes: 1 addition & 1 deletion Source/Maintenance/MaintenanceGUI.cs
Original file line number Diff line number Diff line change
@@ -191,7 +191,7 @@ public void integrationTab()
GUILayout.BeginHorizontal();
try {
GUILayout.Label(site, HighLogic.Skin.label, GUILayout.Width(160));
GUILayout.Label((rate * MaintenanceHandler.Instance.kctBPMult * perFactor).ToString(perFormat), rightLabel, GUILayout.Width(160));
GUILayout.Label((rate * MaintenanceHandler.Instance.settings.kctBPMult * perFactor).ToString(perFormat), rightLabel, GUILayout.Width(160));
} finally {
GUILayout.EndHorizontal();
}
30 changes: 12 additions & 18 deletions Source/Maintenance/MaintenanceHandler.cs
Original file line number Diff line number Diff line change
@@ -32,12 +32,6 @@ public class MaintenanceHandler : ScenarioModule
public const int padLevels = 10;
public int[] kctPadCounts = new int[padLevels];

public double facilityLevelCostMult = 0.0000005d;
public double kctBPMult = 20d;
protected double kctResearchMult = 100d * 86400d;
protected double nautYearlyUpkeepAdd = 5000d;
protected double nautYearlyUpkeepBase = 500d;

protected Dictionary<SpaceCenterFacility, Upgradeables.UpgradeableFacility.UpgradeLevel[]> facilityLevels = new Dictionary<SpaceCenterFacility, Upgradeables.UpgradeableFacility.UpgradeLevel[]>();
public Dictionary<string, double> kctBuildRates = new Dictionary<string, double>();

@@ -74,7 +68,7 @@ public double integrationUpkeep { get {
double tmp = 0d;
foreach (double d in kctBuildRates.Values)
tmp += d;
return tmp * kctBPMult;
return tmp * settings.kctBPMult;
}}
public double researchUpkeep = 0d;
public double nautYearlyUpkeep = 0d;
@@ -119,48 +113,48 @@ public void updateUpkeep()
{
padCosts[i] = 0d;
if (i < lC)
padCosts[i] = facilityLevelCostMult * kctPadCounts[i] * levels[i].levelCost;
padCosts[i] = settings.facilityLevelCostMult * kctPadCounts[i] * levels[i].levelCost;
}
padCost = 0;
for (int i = padLevels; i-- > 0;)
padCost += padCosts[i];
}
else
padCost = facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.LaunchPad) * (levels.Length + 0.05f))].levelCost;
padCost = settings.facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.LaunchPad) * (levels.Length + 0.05f))].levelCost;
}

// Runway
if (facilityLevels.TryGetValue(SpaceCenterFacility.Runway, out levels))
runwayCost = facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.Runway) * (levels.Length + 0.05f))].levelCost;
runwayCost = settings.facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.Runway) * (levels.Length + 0.05f))].levelCost;

//VAB
if (facilityLevels.TryGetValue(SpaceCenterFacility.VehicleAssemblyBuilding, out levels))
vabCost = facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.VehicleAssemblyBuilding) * (levels.Length + 0.05f))].levelCost;
vabCost = settings.facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.VehicleAssemblyBuilding) * (levels.Length + 0.05f))].levelCost;

//SPH
if (facilityLevels.TryGetValue(SpaceCenterFacility.SpaceplaneHangar, out levels))
sphCost = facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.SpaceplaneHangar) * (levels.Length + 0.05f))].levelCost;
sphCost = settings.facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.SpaceplaneHangar) * (levels.Length + 0.05f))].levelCost;

//RnD
if (facilityLevels.TryGetValue(SpaceCenterFacility.ResearchAndDevelopment, out levels))
rndCost = facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.ResearchAndDevelopment) * (levels.Length + 0.05f))].levelCost;
rndCost = settings.facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.ResearchAndDevelopment) * (levels.Length + 0.05f))].levelCost;

// MC
if (facilityLevels.TryGetValue(SpaceCenterFacility.MissionControl, out levels))
mcCost = facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.MissionControl) * (levels.Length + 0.05f))].levelCost;
mcCost = settings.facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.MissionControl) * (levels.Length + 0.05f))].levelCost;

// TS
if (facilityLevels.TryGetValue(SpaceCenterFacility.TrackingStation, out levels))
tsCost = facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.TrackingStation) * (levels.Length + 0.05f))].levelCost;
tsCost = settings.facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.TrackingStation) * (levels.Length + 0.05f))].levelCost;

// AC
if (facilityLevels.TryGetValue(SpaceCenterFacility.AstronautComplex, out levels))
acCost = facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.AstronautComplex) * (levels.Length + 0.05f))].levelCost;
acCost = settings.facilityLevelCostMult * levels[(int)(ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.AstronautComplex) * (levels.Length + 0.05f))].levelCost;

nautYearlyUpkeep = nautYearlyUpkeepBase + ((double)ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.AstronautComplex) * nautYearlyUpkeepAdd);
nautYearlyUpkeep = settings.nautYearlyUpkeepBase + ((double)ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.AstronautComplex) * settings.nautYearlyUpkeepAdd);
nautUpkeep = HighLogic.CurrentGame.CrewRoster.GetActiveCrewCount() * nautYearlyUpkeep * (1d / 365d);

researchUpkeep = kctResearchRate * kctResearchMult;
researchUpkeep = kctResearchRate * settings.kctResearchMult;

totalUpkeep = facilityUpkeep + integrationUpkeep + researchUpkeep + nautUpkeep;
}
6 changes: 3 additions & 3 deletions Source/Maintenance/MaintenanceSettings.cs
Original file line number Diff line number Diff line change
@@ -16,13 +16,13 @@ public class MaintenanceSettings : IConfigNode
public double kctBPMult = 20d;

[Persistent]
protected double kctResearchMult = 100d * 86400d;
public double kctResearchMult = 100d * 86400d;

[Persistent]
protected double nautYearlyUpkeepAdd = 5000d;
public double nautYearlyUpkeepAdd = 5000d;

[Persistent]
protected double nautYearlyUpkeepBase = 500d;
public double nautYearlyUpkeepBase = 500d;

public void Load(ConfigNode node)
{

0 comments on commit b35c74d

Please sign in to comment.