private int GetOverheat()
        {
            var stat = statCollection.OverheatLevel();

            stat.Create();
            return(MechDefStatisticModifier.ModifyStatistic(stat, mechDef));
        }
        private int GetHeatSinkCapacity()
        {
            var stat = statCollection.HeatSinkCapacity();

            stat.Create();
            return(MechDefStatisticModifier.ModifyStatistic(stat, mechDef));
        }
        private float GetJumpJetMaxCountMultiplier()
        {
            var stat = statCollection.JumpJetCountMultiplier();

            stat.Create();
            return(MechDefStatisticModifier.ModifyStatistic(stat, mechDef));
        }
        private int GetMaxHeat()
        {
            var stat = statCollection.MaxHeat();

            stat.Create();
            return(MechDefStatisticModifier.ModifyStatistic(stat, mechDef));
        }
        private float GetWeaponHeatMultiplier()
        {
            var stat = statCollection.WeaponHeatMultiplier();

            stat.Create();
            return(MechDefStatisticModifier.ModifyStatistic(stat, mechDef));
        }
        private float GetRunSpeed()
        {
            var stat = statCollection.RunSpeed();

            stat.CreateWithDefault(movement.RunSpeed);
            return(MechDefStatisticModifier.ModifyStatistic(stat, mechDef));
        }
        private float GetJumpCapacity()
        {
            var stat = statCollection.JumpCapacity();

            stat.Create();
            return(MechDefStatisticModifier.ModifyStatistic(stat, mechDef));
        }
            private float GetAccuracyModifier(float baseValue)
            {
                var stat = statCollection.AccuracyModifier(baseValue);

                stat.Create();
                return(MechDefStatisticModifier.ModifyWeaponStatistic(stat, mechDef, weaponDef));
            }
            private float GetInstability(float baseValue)
            {
                var stat = statCollection.Instability(baseValue);

                stat.Create();
                return(MechDefStatisticModifier.ModifyWeaponStatistic(stat, mechDef, weaponDef));
            }
            private float GetStructureDamage(float baseValue)
            {
                var stat = statCollection.StructureDamagePerShot(baseValue);

                stat.Create();
                return(MechDefStatisticModifier.ModifyWeaponStatistic(stat, mechDef, weaponDef));
            }
            private float GetShotsWhenFired(int baseValue)
            {
                var stat = statCollection.ShotsWhenFired(baseValue);

                stat.Create();
                return(MechDefStatisticModifier.ModifyWeaponStatistic(stat, mechDef, weaponDef));
            }
        private int GetJumpHeat()
        {
            var stat = statCollection.JumpHeat();

            stat.Create();
            MechDefStatisticModifier.ModifyStatistic(stat, mechDef);
            return(statCollection.GetJumpHeat(1));
        }
        private int GetHeatGenerated()
        {
            var defaultValue = mechDef.Inventory
                               .Where(x => x.IsFunctionalORInstalling())
                               .Select(x => x.Def as WeaponDef)
                               .Where(x => x != null)
                               .Sum(x => x.HeatGenerated);

            var stat = statCollection.HeatGenerated();

            stat.CreateWithDefault(defaultValue);
            var value = MechDefStatisticModifier.ModifyStatistic(stat, mechDef);

            return(PrecisionUtils.RoundUpToInt(value));
        }
        private int GetHeatGenerated()
        {
            var defaultValue = mechDef.Inventory
                               .Where(x => x.IsFunctionalORInstalling())
                               .Select(x => x.Def as WeaponDef)
                               .Where(x => x != null)
                               .Sum(x => x.HeatGenerated);

            // TODO HeatDivisor support or not? nah we just don't support COIL, who needs that anyway...

            var stat = statCollection.HeatGenerated();

            stat.CreateWithDefault(defaultValue);
            var value = MechDefStatisticModifier.ModifyStatistic(stat, mechDef);

            return(PrecisionUtils.RoundUpToInt(value));
        }