private void buttonLevelUp_Click(object sender, EventArgs e) { frmLevelUp LevelUp = new frmLevelUp(player); LevelUp.Show(); if (LevelUp.DialogResult == DialogResult.OK) { UpdateCharacterInfo(); } }
private void button3_Click(object sender, EventArgs e) { int levelcount = 0; int remainingXP = 0; int backupXP = player.XP; int backupLvl = player.Level; List <Perk> backupPerks = new List <Perk>(); foreach (Perk i in player.Playerperks) { backupPerks.Add(i); } if (player.XP + addXP.Value < player.XpToNextLevel) { player.XP += (int)addXP.Value; } else { for (int i = (int)addXP.Value + player.XP; i >= player.XpToNextLevel; i -= player.XpToNextLevel) { levelcount++; remainingXP = i; } DialogResult result = MessageBox.Show("Adding this amount of XP will increase your level " + levelcount + " time(s). Are you sure you want to level up?", "", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { while (levelcount > 0) { frmLevelUp frmlvl = new frmLevelUp(player); frmlvl.ShowDialog(); if (frmlvl.DialogResult == DialogResult.OK) { levelcount--; } else { MessageBox.Show("Changes will be rolled back."); remainingXP = backupXP; player.Level = backupLvl; levelcount = 0; player.Playerperks = new List <Perk>(); foreach (Perk i in backupPerks) { player.Playerperks.Add(i); } } } //TODO: if option reset xp on level is not checked player.XP = (int)(remainingXP); } } addXP.Value = 0; UpdateCharacterInfo(); }