Beispiel #1
0
        private void Unequip(Item.Equip slot)
        {
            // Check if slot contains an item.
            if (_player.equipment[(int)slot] != null)
            {
                // Set item to the equipped item.
                Item item = _player.equipment[(int)slot];

                // Find the first empty slot in the inventory.
                for (int i = 0; i < _player.inventory.Length; i++)
                {
                    if (_player.inventory[i] == null)
                    {
                        // Unequip item and put it in inventory.
                        _player.inventory[i]         = item;
                        _player.equipment[(int)slot] = null;

                        // Increase available inventory slots.
                        _player.inventorySlotsUsed++;

                        // Show item on screen.
                        _mainForm.UpdateText();
                        break;
                    }
                }
            }
        }
Beispiel #2
0
        private void EquipItem(Item.Equip slot)
        {
            // Initialise itemEquip variable. Holds the item we'll attempt to equip.
            Item itemEquip = null;
            // Initialise the equipped variable. Holds the item (if there is) we currently have equipped.
            Item equipped = null;

            // NullReferenceException catcher.
            if (lbInventory.SelectedItem != null)
            {
                // Check all used slots to find the selected item.
                for (int i = 0; i < _player.inventory.Length; i++)
                {
                    // Store selected item in itemEquip.
                    if (_player.inventory[i] != null && _player.inventory[i] == (lbInventory.SelectedItem as Item))
                    {
                        itemEquip = _player.inventory[i];
                    }
                }

                // If player meets lvl/str/int/dex requirements and item is of correct equip slot, equip item.
                if (itemEquip != null && itemEquip.equipSlot.Equals(slot) && _player.level >= itemEquip.levelRequirement && _player.attributes[(int)PlayerStat.Attribute.Strength].Final() >= itemEquip.strengthRequirement && _player.attributes[(int)PlayerStat.Attribute.Intelligence].Final() >= itemEquip.intelligenceRequirement && _player.attributes[(int)PlayerStat.Attribute.Dexterity].Final() >= itemEquip.dexterityRequirement)
                {
                    if (_player.equipment[(int)slot] != null)
                    {
                        equipped = _player.equipment[(int)slot];
                    }

                    // Equip item.
                    _player.equipment[(int)slot] = itemEquip;

                    // Remove from inventory.
                    for (int i = 0; i < _player.inventory.Length; i++)
                    {
                        if (_player.inventory[i] != null && _player.inventory[i] == (lbInventory.SelectedItem as Item))
                        {
                            _player.inventory[i] = null;
                        }
                    }

                    // Decrease available inventory slots.
                    _player.inventorySlotsUsed--;

                    // If we had an item equipped.
                    if (equipped != null)
                    {
                        // Find the first empty slot in the inventory.
                        for (int i = 0; i < _player.inventory.Length; i++)
                        {
                            if (_player.inventory[i] == null)
                            {
                                // Put it in inventory.
                                _player.inventory[i] = equipped;

                                // Increase available inventory slots.
                                _player.inventorySlotsUsed++;

                                // Show item on screen.
                                _mainForm.UpdateText();

                                // Job done, exist for-loop.
                                break;
                            }
                        }
                    }
                }
                // Otherwise, show dialog box telling player cannot equip item.
                else
                {
                    DialogResult notYetDialog = MessageBox.Show($"You do not meet the requirements to equip this item. \n" +
                                                                $"\t\t Player - Item \n" +
                                                                $"Slot:\t\t {Enum.GetName(typeof(Item.Equip), slot)} - {Enum.GetName(typeof(Item.Equip), itemEquip.equipSlot)} \n" +
                                                                $"Level:\t\t {_player.level} - {itemEquip.levelRequirement} \n" +
                                                                $"Strength:\t {_player.attributes[(int)PlayerStat.Attribute.Strength].Final()} - {itemEquip.strengthRequirement} \n" +
                                                                $"Intelligence:\t {_player.attributes[(int)PlayerStat.Attribute.Intelligence].Final()} - {itemEquip.intelligenceRequirement} \n" +
                                                                $"Dexterity:\t {_player.attributes[(int)PlayerStat.Attribute.Dexterity].Final()} - {itemEquip.dexterityRequirement}", "Not Yet", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }

            _mainForm.UpdateText();
        }