private void LevelNumericUpDown_ValueChanged(object sender, EventArgs e)
        {
            if (!_loaded)
            {
                return;
            }

            try
            {
                var prevLvl = Convert.ToInt32(((UpDownBase)sender).Text);
                var level   = Convert.ToInt32(((NumericUpDown)sender).Value);
                var xp      = PlayerLevel.GetLevelMinXP(level);
                xpTextBox.Text = string.Format("{0}", (xp + 1));

                var dif    = level - prevLvl;
                var attr   = dif * PlayerLevel.AtrributePointsPerLevel;
                var skills = dif * PlayerLevel.SkillPointsPerLevel;

                var newAttr = attributeNumericUpDown.Value + attr;

                if (newAttr <= Convert.ToInt32(attributeNumericUpDown.Maximum) &&
                    newAttr >= Convert.ToInt32(attributeNumericUpDown.Minimum)
                    )
                {
                    attributeNumericUpDown.Value = newAttr;
                }

                var newSkills = skillPointsNumericUpDown.Value + skills;

                if (newSkills <= Convert.ToInt32(skillPointsNumericUpDown.Maximum) &&
                    newSkills >= Convert.ToInt32(skillPointsNumericUpDown.Minimum))
                {
                    skillPointsNumericUpDown.Value = newSkills;
                }
            }
            catch (Exception ex)
            {
                Log.ErrorException(ex);
            }
        }