Beispiel #1
0
        //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();
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
        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();
        }
Beispiel #5
0
        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();
        }
Beispiel #6
0
        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();
        }
Beispiel #7
0
        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));
                }
            }
        }
Beispiel #8
0
        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));
                }
            }
        }