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