private float GetAvionicsToolingCost(float diameter, float length) { var toolingLevel = ToolingDatabase.GetToolingLevel(ToolingType, ControllableMass, diameter, length); var toolingCosts = GetPerLevelToolingCosts(diameter, length); return(GetToolingCost(toolingLevel, toolingCosts)); }
public override bool IsUnlocked() { GetDimensions(out var d, out var l); if (d < minDiameter) { return(true); } return(ToolingDatabase.GetToolingLevel(ToolingType, d, l) == 2); }
private bool IsInternalTankTooled(float diameter, float length) { if (_procAvionics.InternalTanksVolume == 0) { return(true); } var internalTankDiameter = GetInternalTankDiameter(diameter, length); return(ToolingDatabase.GetToolingLevel(TankToolingType, internalTankDiameter, internalTankDiameter) == 2); }
private float GetCostReductionFactor(float d, float l) { foreach (string s in CostReducers) { if (ToolingDatabase.GetToolingLevel(s, d, l) > 0) { return(costReductionMult); } } return(1); }
public override float GetToolingCost() { GetDimensions(out var d, out var l); float cost = GetLengthToolingCost(d, l); if (ToolingDatabase.GetToolingLevel(ToolingType, d, l) == 0) { var reductionFactor = GetCostReductionFactor(d, l); cost += reductionFactor * GetDiameterToolingCost(d); } return(cost * finalToolingCostMultiplier); }
private float GetInternalTankToolingCost(float externalDiameter, float length) { if (_procAvionics.InternalTanksVolume == 0) { return(0); } var internalTankDiameter = GetInternalTankDiameter(externalDiameter, length); var level = ToolingDatabase.GetToolingLevel(TankToolingType, internalTankDiameter, internalTankDiameter); var perLevelCosts = new[] { GetDiameterToolingCost(internalTankDiameter), GetLengthToolingCost(internalTankDiameter, internalTankDiameter) }; var costMult = TankToolingDefinition?.finalToolingCostMultiplier ?? 0f; return(GetToolingCost(level, perLevelCosts) * costMult); }
private bool IsAvionicsTooled(float diameter, float length) => ToolingDatabase.GetToolingLevel(ToolingType, ControllableMass, diameter, length) == 3;