Skip to content

Commit

Permalink
Showing 4 changed files with 29 additions and 1 deletion.
6 changes: 6 additions & 0 deletions GameData/RP-0/Parts/RFProcTanks.cfg
Original file line number Diff line number Diff line change
@@ -59,6 +59,7 @@
toolingType = Tank-II
untooledMultiplier = 50
finalToolingCostMultiplier = 0.5
costReducers = Tank-I
}
}

@@ -91,6 +92,7 @@
toolingType = Tank-III
untooledMultiplier = 50
finalToolingCostMultiplier = 1
costReducers = Tank-I,SM-I
}
}

@@ -123,6 +125,7 @@
toolingType = Tank-IV
untooledMultiplier = 50
finalToolingCostMultiplier = 1.5
costReducers = Tank-III,Tank-III-Balloon
}
}

@@ -219,6 +222,7 @@
toolingType = SM-II
untooledMultiplier = 20
finalToolingCostMultiplier = 2
costReducers = SM-I
}
}

@@ -251,6 +255,7 @@
toolingType = SM-III
untooledMultiplier = 20
finalToolingCostMultiplier = 2.25
costReducers = SM-II
}
}

@@ -283,6 +288,7 @@
toolingType = SM-IV
untooledMultiplier = 20
finalToolingCostMultiplier = 2.5
costReducers = SM-III
}
}

Binary file modified GameData/RP-0/Plugins/RP0.dll
Binary file not shown.
11 changes: 11 additions & 0 deletions Source/Tooling/ModuleTooling.cs
Original file line number Diff line number Diff line change
@@ -12,6 +12,14 @@ public abstract class ModuleTooling : PartModule, IPartCostModifier
[KSPField]
public string toolingType = "TankStarting";

[KSPField]
public string costReducers = string.Empty;

[KSPField]
public float costReductionMult = 0.5f;

public List<string> reducers = new List<string>();

[KSPField]
public string toolingName = "Tool Tank";

@@ -101,6 +109,9 @@ public override void OnLoad(ConfigNode node)

tEvent.guiActiveEditor = IsUnlocked();
tEvent.guiName = toolingName;

if (!string.IsNullOrEmpty(costReducers))
reducers = new List<string>(costReducers.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries));
}

public virtual float GetModuleCost(float defaultCost, ModifierStagingSituation sit)
13 changes: 12 additions & 1 deletion Source/Tooling/ModuleToolingDiamLen.cs
Original file line number Diff line number Diff line change
@@ -17,7 +17,18 @@ public override float GetToolingCost()
GetDimensions(out d, out l);
float cost = lengthToolingCost.x * d * d + lengthToolingCost.y * d + lengthToolingCost.z * l + lengthToolingCost.w;
if (ToolingDatabase.HasTooling(toolingType, d, l) == ToolingDatabase.ToolingLevel.None)
cost += diameterToolingCost.x * d * d + diameterToolingCost.y * d + diameterToolingCost.z;
{
float mult = 1f;
foreach (string s in reducers)
{
if (ToolingDatabase.HasTooling(s, d, l) > ToolingDatabase.ToolingLevel.None)
{
mult = costReductionMult;
break;
}
}
cost += mult * (diameterToolingCost.x * d * d + diameterToolingCost.y * d + diameterToolingCost.z);
}

return cost * finalToolingCostMultiplier;
}

0 comments on commit 86e2303

Please sign in to comment.