private double calculateDamage(CharacterInstance c, bool canCrit, bool forceCrit, out bool critted)
        {
            double num  = c.DamagePerHit(true);
            float  num2 = UnityEngine.Random.Range(-ConfigGameplay.GLOBAL_MELEE_DAMAGE_VARIATION_PCT, ConfigGameplay.GLOBAL_MELEE_DAMAGE_VARIATION_PCT);
            double num3 = MathUtil.Clamp(num + (num * num2), 1.0, double.MaxValue);

            if (canCrit || forceCrit)
            {
                critted = (UnityEngine.Random.Range((float)0f, (float)1f) <= c.CriticalHitChancePct(true)) || forceCrit;
                if (critted)
                {
                    num3 *= c.CriticalHitMultiplier(true);
                }
                return(num3);
            }
            critted = false;
            return(num3);
        }