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); }