Esempio n. 1
0
        private float GetAvionicsToolingCost(float diameter, float length)
        {
            var toolingLevel = ToolingDatabase.GetToolingLevel(ToolingType, ControllableMass, diameter, length);
            var toolingCosts = GetPerLevelToolingCosts(diameter, length);

            return(GetToolingCost(toolingLevel, toolingCosts));
        }
Esempio n. 2
0
        public override bool IsUnlocked()
        {
            GetDimensions(out var d, out var l);
            if (d < minDiameter)
            {
                return(true);
            }

            return(ToolingDatabase.GetToolingLevel(ToolingType, d, l) == 2);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        private float GetCostReductionFactor(float d, float l)
        {
            foreach (string s in CostReducers)
            {
                if (ToolingDatabase.GetToolingLevel(s, d, l) > 0)
                {
                    return(costReductionMult);
                }
            }

            return(1);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
 private bool IsAvionicsTooled(float diameter, float length) => ToolingDatabase.GetToolingLevel(ToolingType, ControllableMass, diameter, length) == 3;