public override bool IsUnlocked() { float d, l; GetDimensions(out d, out l); if (d < minDiameter) { return(true); } return(ToolingDatabase.HasTooling(toolingType, d, l) == ToolingDatabase.ToolingLevel.Full); }
public override float GetToolingCost() { float d, l; 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) { 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); }