//Monster Attack private void MonsterAttack() { //Determine amount of damage the monster does to the player int damageToPlayer = RNG.NumberBetween(0, _currentMonster.MaximumDamage); //display message rtbMessages.Text += _currentMonster.Name + " deals " + damageToPlayer.ToString() + " damage!" + Environment.NewLine; ScrollToBottomOfMessages(); //Subtract Damage from player _player.CurrentHitPoints -= damageToPlayer; //Refresh player data in UI lblHitPoints.Text = _player.CurrentHitPoints.ToString(); if (_player.CurrentHitPoints <= 0) { //display message rtbLocation.Text += "The " + _currentMonster.Name + " killed you." + Environment.NewLine; ScrollToBottomOfMessages(); //Move player to "Home" MoveTo(World.LocationByID(World.LOCATION_ID_HOME)); } //refresh player data in UI UpdatePlayerStats(); UpdateInventoryListInUI(); UpdatePotionListInUI(); }
public Form1() { InitializeComponent(); _player = new Player(10, 10, 20, 0, 1); MoveTo(World.LocationByID(World.LOCATION_ID_HOME)); _player.Inventory.Add(new InventoryItem(World.ItemByID(World.ITEM_ID_RUSTY_SWORD), 1)); }
private void btnUsePotion_Click(object sender, EventArgs e) { //Get the currently selected potion from the combobox HealingPotion potion = (HealingPotion)cboPotions.SelectedItem; //Add healing amount to the player's to the player's current hit points _player.CurrentHitPoints = (_player.CurrentHitPoints + potion.AmountToHeal); //CurrentHitPoints cannot exceed player's MaximumHitPoints if (_player.CurrentHitPoints > _player.MaximumHitPoints) { _player.CurrentHitPoints = _player.MaximumHitPoints; } //Remove the potion from the player's inventory foreach (InventoryItem ii in _player.Inventory) { if (ii.Details.ID == potion.ID) { ii.Quantity--; break; } } //Display message rtbMessages.Text += "You drink a " + potion.Name + Environment.NewLine; //Monster gets their turn to attack //Determine the amount of damage the monster does to the player int damageToPlayer = RandomNumberGenerator.NumberBetween(0, _currentMonster.MaximumDamage); //Display message rtbMessages.Text += "The " + _currentMonster.Name + "did " + damageToPlayer.ToString() + " points of damage." + Environment.NewLine; //Subtract damage from player _player.CurrentHitPoints -= damageToPlayer; if (_player.CurrentHitPoints <= 0) { //Display message rtbMessages.Text += "The " + _currentMonster.Name + " killed you." + Environment.NewLine; //Move player to "Home" MoveTo(World.LocationByID(World.LOCATION_ID_HOME)); } //Refresh player data in UI lblHitPoints.Text = _player.CurrentHitPoints.ToString(); UpdateInventoryListInUI(); UpdatePotionListInUI(); }
private void btnUsePotion_Click(object sender, EventArgs e) { // Get the currently selected potion from the combobox HealingPotion potion = (HealingPotion)cboPotions.SelectedItem; // Add healing amount to the player's current hit points player.CurrentHP = (player.CurrentHP + potion.AmountToHeal); // CurrentHP cannot exceed player's MaxHP if (player.CurrentHP > player.MaxHP) { player.CurrentHP = player.MaxHP; } // Remove the potion from the player's inventory foreach (InventoryItem ii in player.Inventory) { if (ii.Details.ID == potion.ID) { ii.Quantity--; break; } } // Display message rtbMessages.Text += "Vypil si " + potion.Name + Environment.NewLine; ScrollToBottomOfMessages(); // Monster gets their turn to attack // Determine the amount of damage the monster does to the player int damageToPlayer = RNG.Numberbetween(0, currentMob.MaxDmg); // Display message rtbMessages.Text += currentMob.Name + " ti udělil" + damageToPlayer.ToString() + " poškození." + Environment.NewLine; ScrollToBottomOfMessages(); // Subtract damage from player player.CurrentHP -= damageToPlayer; if (player.CurrentHP <= 0) { // Display message rtbMessages.Text += currentMob.Name + " tě zabil." + Environment.NewLine; ScrollToBottomOfMessages(); // Move player to "Home" MoveTo(World.LocationByID(World.LOCATION_ID_HOME)); } UpdateInventoryListInUI(); UpdatePotionListInUI(); }
public AdventureTime() { InitializeComponent(); _player = new Player(10, 10, 20, 0); MoveTo(World.LocationByID(World.LOCATION_ID_HOME)); _player.Inventory.Add(new InventoryItem( World.ItemByID(World.ITEM_ID_RUSTY_SWORD), 1)); lblHitPoints.Text = _player.CurrentHitPoints.ToString(); lblGold.Text = _player.Gold.ToString(); lblExperience.Text = _player.ExperiencePoints.ToString(); lblLevel.Text = _player.Level.ToString(); }
public SuperAdventure() { InitializeComponent(); player.URL = "Dragon Quest III Symphonic Suite - Adventure.mp3"; _player = new Player(10, 10, 20, 0, 1); MoveTo(World.LocationByID(World.LOCATION_ID_HOME)); _player.Inventory.Add(new InventoryItem( World.ItemByID(World.ITEM_ID_RUSTY_SWORD), 1)); lblHitPoints.Text = _player.CurrentHitPoints.ToString(); lblGold.Text = _player.Gold.ToString(); lblExperience.Text = _player.ExperiencePoints.ToString(); lblLevel.Text = _player.Level.ToString(); }
private void btnUseWeapon_Click(object sender, EventArgs e) { // Get the currently selected weapon from the cboWeapons ComboBox Weapon currentWeapon = (Weapon)cboWeapons.SelectedItem; // Determine the amount of damage to do to the monster int damageToMob = RNG.Numberbetween(currentWeapon.MinDmg, currentWeapon.MaxDmg); // Apply the damage to the monster's CurrentHP currentMob.CurrentHP -= damageToMob; // Display message rtbMessages.Text += "Udeřil si " + currentMob.Name + " za " + damageToMob.ToString() + " poškození." + Environment.NewLine; ScrollToBottomOfMessages(); // Check if the monster is dead if (currentMob.CurrentHP <= 0) { // Monster is dead rtbMessages.Text += Environment.NewLine; rtbMessages.Text += "Zabil si " + currentMob.Name + Environment.NewLine; ScrollToBottomOfMessages(); // Give player experience points for killing the monster player.XP += currentMob.XPReward; rtbMessages.Text += "Získáváš " + currentMob.XPReward.ToString() + " XP" + Environment.NewLine; ScrollToBottomOfMessages(); // Give player gold for killing the monster player.Gold += currentMob.GoldReward; rtbMessages.Text += "Získáváš " + currentMob.GoldReward.ToString() + " zlatých" + Environment.NewLine; ScrollToBottomOfMessages(); // Get random loot items from the monster List <InventoryItem> lootedItems = new List <InventoryItem>(); // Number of times, we killed the mob player.y[currentMob.ID]++; //rtbMessages.Text+="FUnguje to"+player.y[currentMob.ID]; // Add items to the lootedItems list, comparing a random number to the drop percentage foreach (LootItem lootItem in currentMob.LootTable) { if (RNG.Numberbetween(1, 100) <= lootItem.DropPercentage) { lootedItems.Add(new InventoryItem(lootItem.Details, 1)); } } // If no items were randomly selected, then add the default loot item(s). if (lootedItems.Count == 0) { foreach (LootItem lootItem in currentMob.LootTable) { if (lootItem.IsDefaultItem) { lootedItems.Add(new InventoryItem(lootItem.Details, 1)); } } } // Add the looted items to the player's inventory foreach (InventoryItem inventoryItem in lootedItems) { player.AddItemToInventory(inventoryItem.Details); if (inventoryItem.Quantity == 1) { rtbMessages.Text += "Našel si " + inventoryItem.Quantity.ToString() + " " + inventoryItem.Details.Name + Environment.NewLine; ScrollToBottomOfMessages(); } else { rtbMessages.Text += "Našel si " + inventoryItem.Quantity.ToString() + " " + inventoryItem.Details.NamePlural + Environment.NewLine; ScrollToBottomOfMessages(); } } // Refresh player information and inventory controls int lastlevel = player.Level; player.Level = player.LevelUp(player.XP, player.Level); levelUp(lastlevel); UpdateInventoryListInUI(); UpdateWeaponListInUI(); UpdatePotionListInUI(); // Add a blank line to the messages box, just for appearance. rtbMessages.Text += Environment.NewLine; ScrollToBottomOfMessages(); // Move player to current location (to heal player and create a new monster to fight) MoveTo(player.CurrentLocation); } else { // Mob is still alive // Determine the amount of damage the monster does to the player int damageToPlayer = RNG.Numberbetween(0, currentMob.MaxDmg); // Display message rtbMessages.Text += currentMob.Name + " ti udělil " + damageToPlayer.ToString() + " poškození." + Environment.NewLine; ScrollToBottomOfMessages(); // Subtract damage from player player.CurrentHP -= damageToPlayer; if (player.CurrentHP <= 0) { // Display message rtbMessages.Text += currentMob.Name + " tě zabil." + Environment.NewLine; ScrollToBottomOfMessages(); // Move player to "Home" MoveTo(World.LocationByID(World.LOCATION_ID_HOME)); } } }
private void btnUseWeapon_Click(object sender, EventArgs e) { // Get the currently selected weapon from the cboWeapons ComboBox Weapon currentWeapon = (Weapon)cboWeapons.SelectedItem; // Determine the amount of damage to do to the monster int damageToMonster = RandomNumberGenerator.NumberBetween(currentWeapon.MinimumDamage, currentWeapon.MaximumDamage); // Apply the damage to the monster's CurrentHitPoints _currentMonster.CurrentHitPoints -= damageToMonster; // Display message rtbMessages.Text += "You hit the " + _currentMonster.Name + " for " + damageToMonster.ToString() + " points." + Environment.NewLine; // Check if the monster is dead if (_currentMonster.CurrentHitPoints <= 0) { // Monster is dead rtbMessages.Text += Environment.NewLine; rtbMessages.Text += "You defeated the " + _currentMonster.Name + Environment.NewLine; // Give player experience points for killing the monster _player.ExperiencePoints += _currentMonster.RewardExperiencePoints; rtbMessages.Text += "You receive " + _currentMonster.RewardExperiencePoints.ToString() + " experience points" + Environment.NewLine; // Give player gold for killing the monster _player.Gold += _currentMonster.RewardGold; rtbMessages.Text += "You receive " + _currentMonster.RewardGold.ToString() + " gold" + Environment.NewLine; // Get random loot items from the monster List <InventoryItem> lootedItems = new List <InventoryItem>(); // Add items to the lootedItems list, comparing a random number to the drop percentage foreach (LootItem lootItem in _currentMonster.LootTable) { if (RandomNumberGenerator.NumberBetween(1, 100) <= lootItem.DropPercentage) { lootedItems.Add(new InventoryItem(lootItem.Details, 1)); } } // If no items were randomly selected, then add the default loot item(s). if (lootedItems.Count == 0) { foreach (LootItem lootItem in _currentMonster.LootTable) { if (lootItem.IsDefaultItem) { lootedItems.Add(new InventoryItem(lootItem.Details, 1)); } } } // Add the looted items to the player's inventory foreach (InventoryItem inventoryItem in lootedItems) { _player.AddItemToInventory(inventoryItem.Details); if (inventoryItem.Quantity == 1) { rtbMessages.Text += "You loot " + inventoryItem.Quantity.ToString() + " " + inventoryItem.Details.Name + Environment.NewLine; } else { rtbMessages.Text += "You loot " + inventoryItem.Quantity.ToString() + " " + inventoryItem.Details.NamePlural + Environment.NewLine; } } // Refresh player information and inventory controls lblHitPoints.Text = _player.CurrentHitPoints.ToString(); lblGold.Text = _player.Gold.ToString(); lblExp.Text = _player.ExperiencePoints.ToString(); lblLevel.Text = _player.Level.ToString(); UpdateInventoryListInUI(); UpdateWeaponListInUI(); UpdatePotionListInUI(); // Add a blank line to the messages box, just for appearance. rtbMessages.Text += Environment.NewLine; // Move player to current location (to heal player and create a new monster to fight) MoveTo(_player.CurrentLocation); } else { // Monster is still alive // Determine the amount of damage the monster does to the player int damageToPlayer = RandomNumberGenerator.NumberBetween(0, _currentMonster.MaximumDamage); // Display message rtbMessages.Text += "The " + _currentMonster.Name + " did " + damageToPlayer.ToString() + " points of damage." + Environment.NewLine; // Subtract damage from player _player.CurrentHitPoints -= damageToPlayer; // Refresh player data in UI lblHitPoints.Text = _player.CurrentHitPoints.ToString(); if (_player.CurrentHitPoints <= 0) { // Display message rtbMessages.Text += "The " + _currentMonster.Name + " killed you." + Environment.NewLine; // Move player to "Home" MoveTo(World.LocationByID(World.LOCATION_ID_HOME)); } } }