Ejemplo n.º 1
0
        private void btnUsePotion_Click_1(object sender, EventArgs e)
        {
            HealingPotion potion = (HealingPotion)cboPotions.SelectedItem;

            player.CurrentHP = (player.CurrentHP + potion.AmountToHeal);

            if (player.CurrentHP > player.MaxHP)
            {
                player.CurrentHP = player.MaxHP;
            }

            //remove from inventory
            foreach (InventoryItem ii in player.Inventory)
            {
                if (ii.Details.ID == potion.ID)
                {
                    ii.Quantity--;
                    break;
                }
            }

            rtbMessages.Text += "you drank a " + potion.Name + Environment.NewLine;

            //monster get attack turn

            int damageToPlayer = RandomNumber.NumbeBetween(0, currentMonster.MaxDamage);

            rtbMessages.Text += "The " + currentMonster.Name + "did" + damageToPlayer.ToString() + " points of damage" + Environment.NewLine;

            //subtract from players HP
            player.CurrentHP -= damageToPlayer;

            if (player.CurrentHP <= 0)
            {
                rtbMessages.Text += "The " + currentMonster.Name + " killed you" + Environment.NewLine;

                MoveTo(World.LocationbyID(World.idHome));
            }
            //refesh player data at UI
            lblHitPoints.Text = player.CurrentHP.ToString();
            UpdateInventoryListInUI();
            UpdatePotionsListInUI();
        }
Ejemplo n.º 2
0
        //put weapon button here
        private void btnUseWeapon_Click(object sender, EventArgs e)
        {
            //get the currently selectged weapon from teh cbo weapn
            Weapon currentWeapon = (Weapon)cboWeapons.SelectedItem;

            //determin the amount of damamage
            int damageMonster = RandomNumber.NumbeBetween(currentWeapon.MinDamage, currentWeapon.MaxDamage);

            //applu the damage to teh monsters current HItPoints
            currentMonster.CurrentHP -= damageMonster;

            //display message
            rtbMessages.Text += "Yout hit " + currentMonster.Name + "for" + damageMonster.ToString() + " damage" + Environment.NewLine;

            //check if monster dead
            if (currentMonster.CurrentHP <= 0)
            {
                //monster is dead
                rtbMessages.Text += Environment.NewLine;
                rtbMessages.Text += "You defeated " + currentMonster.Name + Environment.NewLine;

                //give player EXP
                player.ExperiencePoints += currentMonster.RewardEXP;
                rtbMessages.Text        += "You recieved " + currentMonster.RewardEXP.ToString() + " EXP" + Environment.NewLine;

                //give player gold
                player.Gold      += currentMonster.RewardGold;
                rtbMessages.Text += "You recieved " + currentMonster.RewardGold.ToString() + " pieces of gold" + Environment.NewLine;

                //get random loot
                //create a new list
                List <InventoryItem> lootedItems = new List <InventoryItem>();

                //add loot to looted items list (foreace)/if
                foreach (LootItem lootItem in currentMonster.LootTable)
                {
                    if (RandomNumber.NumbeBetween(1, 100) <= lootItem.DropPercentage)
                    {
                        lootedItems.Add(new InventoryItem(lootItem.Details, 1));
                    }
                }
                //if no items were andomly selected add default look item
                if (lootedItems.Count == 0)
                {
                    foreach (LootItem lootItem in currentMonster.LootTable)
                    {
                        if (lootItem.DefaultItem)
                        {
                            lootedItems.Add(new InventoryItem(lootItem.Details, 1));
                        }
                    }
                }

                //add looted items to player inventory (for each)
                foreach (InventoryItem invetItem in lootedItems)
                {
                    player.AddItemToInventory(invetItem.Details);
                    if (invetItem.Quantity == 1)
                    {
                        rtbMessages.Text += "You looted " + invetItem.Quantity.ToString() + " " + invetItem.Details.Name + Environment.NewLine;
                    }
                    else
                    {
                        rtbMessages.Text += "You looted " + invetItem.Quantity.ToString() + " " + invetItem.Details.PluralName + Environment.NewLine;
                    }
                }
                //refresh players inventory and information
                lblHitPoints.Text  = player.CurrentHP.ToString();
                lblGold.Text       = player.Gold.ToString();
                lblLevel.Text      = player.Level.ToString();
                lblExperience.Text = player.ExperiencePoints.ToString();

                UpdateInventoryListInUI();
                UpdatePotionsListInUI();
                UpdatePotionsListInUI();

                //add blank line to teh message box
                rtbMessages.Text += Environment.NewLine;

                //put player back in current location to heal player and create new monster
                MoveTo(player.CurrentLocation);
            }

            else
            {
                // Monster is still alive
                //Determine the amount of damage the monster does to the player
                int damageToPlayer = RandomNumber.NumbeBetween(0, currentMonster.MaxDamage);

                //Display message
                rtbMessages.Text += "The " + currentMonster.Name + " did " + damageToPlayer.ToString() + " damage to you!" + Environment.NewLine;

                //Subtract damage from player’s CurrentHitPoints
                player.CurrentHP -= damageToPlayer;

                //Refresh player data in UI
                lblHitPoints.Text = player.CurrentHP.ToString();

                //If player is dead (zero hit points remaining)
                if (player.CurrentHP <= 0)
                {                   //Display message
                    rtbMessages.Text += "The " + currentMonster.Name + " killed you!" + Environment.NewLine;

                    //Move player to “Home” location
                    MoveTo(World.LocationbyID(World.idHome));
                }
            }
        }