Ejemplo n.º 1
0
        private void buttonLevelUp_Click(object sender, EventArgs e)
        {
            frmLevelUp LevelUp = new frmLevelUp(player);

            LevelUp.Show();

            if (LevelUp.DialogResult == DialogResult.OK)
            {
                UpdateCharacterInfo();
            }
        }
Ejemplo n.º 2
0
        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();
        }