Example #1
0
    public bool EquipWeapon(InventoryItemObject inventoryItemObject)
    {
        // ensure the stat requirements are met
        foreach (Attributes.Stat stat in (inventoryItemObject.GetItem() as Weapon).GetStatRequirements())
        {
            if (_attributes.GetStat(stat.statType).value < stat.value)
            {
                Debug.Log("Stat requirements not met -- " + stat.statType);
                return(false);
            }
        }

        // level requirements
        if (inventoryItemObject.GetItem().GetLevelRequirement() > _level)
        {
            Debug.Log($"Requires level {inventoryItemObject.GetItem().GetLevelRequirement()}, you are level {_level}");
            return(false);
        }

        // actually equip the item
        _equipment.Equip(inventoryItemObject, ref _attributes);

        // place weapon on characters back/hip as appropriate


        // update stats
        UpdateStatDisplay();

        return(true);
    }
Example #2
0
    public bool EquipArmor(InventoryItemObject inventoryItemObject) // right click equip
    {
        // ensure the stat requirements are met
        foreach (Attributes.Stat stat in (inventoryItemObject.GetItem() as Armor).GetStatRequirements())
        {
            if (_attributes.GetStat(stat.statType).value < stat.value)
            {
                Debug.Log("Stat requirements not met -- " + stat.statType);
                return(false);
            }
        }

        // level requirements
        if (inventoryItemObject.GetItem().GetLevelRequirement() > _level)
        {
            Debug.Log($"Requires level {inventoryItemObject.GetItem().GetLevelRequirement()}, you are level {_level}");
            return(false);
        }


        // actually equip the item
        _equipment.Equip(inventoryItemObject, ref _attributes);


        // place item in applicable location on character

        UpdateStatDisplay();

        return(true);
    }
Example #3
0
    public void SetParentAndSize(InventoryItemObject item)
    {
        item.transform.SetParent(transform);

        // set size of image
        int wid = item.GetItem().GetItemSize()._width;
        int hig = item.GetItem().GetItemSize()._height;

        item.GetComponent <Image>().rectTransform.localScale = Vector3.one;
        item.SetSize(localSizeOfTile * wid, localSizeOfTile * hig);

        /*
         * item.GetImage().rectTransform.localScale = Vector3.one;
         * item.GetImage().rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, localSizeOfTile * wid);
         * item.GetImage().rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, localSizeOfTile * hig);
         */
    }
    public void SetItem(InventoryItemObject item)
    {
        _item = item.GetItem();
        item.transform.SetParent(transform.parent);

        Image image = GetComponent <Image>();

        item.SetScale(image.rectTransform.localScale, image.rectTransform.sizeDelta);
        item.transform.position = image.transform.position;

        _inventoryItem = item;
    }
Example #5
0
    public void AddExistingItem(InventoryItemObject itemObject)
    {
        Image img = itemObject.GetComponent <Image>();

        // add to first available
        for (int r = 0; r < _height; r++)
        {
            for (int c = 0; c < _width; c++)
            {
                Index nx = new Index(c, r);
                if (TryFit(itemObject.GetItem(), nx))
                {
                    AddToSlot(itemObject.GetItem(), nx);

                    img.transform.SetParent(transform);

                    Item item = itemObject.GetItem();
                    img.GetComponent <InventoryItemObject>().init(item, nx);

                    // set size of image
                    int wid = item.GetItemSize()._width;
                    int hig = item.GetItemSize()._height;
                    img.rectTransform.localScale = Vector3.one;
                    itemObject.SetSize(localSizeOfTile * wid, localSizeOfTile * hig);

                    /*
                     * img.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, localSizeOfTile * wid);
                     * img.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, localSizeOfTile * hig);
                     */

                    // set position of image
                    img.rectTransform.localPosition = PositionAtIndex(nx._x, nx._y) - HalfTile();

                    return;
                }
            }
        }
    }
Example #6
0
    public void Equip(InventoryItemObject item, ref Attributes playerAttributes)
    {
        Item.EquipmentSlot eSlot;
        Item newItem = item.GetItem();

        if (newItem is Weapon)
        {
            eSlot = Item.EquipmentSlot.Weapon;
        }
        else
        {
            eSlot = ((Armor)item.GetItem()).GetEquipmentSlot();
        }

        int slot = Convert.ToInt32(eSlot);

        InventoryItemObject oldItem = Unequip(eSlot, ref playerAttributes);

        // add the new stats
        if (item.GetItem()?.GetItemType() == Item.ItemType.Weapon)
        {
            foreach (Weapon.Stat stat in (item.GetItem() as Weapon).GetStats())
            {
                if (stat._isBasicStat)
                {
                    string enumString             = stat._stat.ToString();
                    Attributes.StatTypes statType = (Attributes.StatTypes)Enum.Parse(typeof(Attributes.StatTypes), enumString);
                    playerAttributes.IncrementStat(new Attributes.Stat(statType, (int)stat._value));
                }
                else
                {
                    Weapon.Stat weapStat = playerAttributes.GetWeaponStats().Find(x => x._stat == stat._stat);
                    if (stat._flatValue)
                    {
                        weapStat += stat;
                    }
                    else
                    {
                        weapStat *= (1 + (stat._value / 100f));
                    }

                    playerAttributes.SetWeaponStat(weapStat);
                }
            }
        }
        else if (item.GetItem()?.GetItemType() == Item.ItemType.Armor)
        {
            foreach (Armor.Stat stat in (item.GetItem() as Armor).GetStats())
            {
                if (stat._isBasicStat)
                {
                    string enumString             = stat._stat.ToString();
                    Attributes.StatTypes statType = (Attributes.StatTypes)Enum.Parse(typeof(Attributes.StatTypes), enumString);
                    playerAttributes.IncrementStat(new Attributes.Stat(statType, (int)stat._value));
                }
                else
                {
                    Armor.Stat armorStat = playerAttributes.GetArmorStats().Find(x => x._stat == stat._stat);
                    if (stat._flatValue)
                    {
                        armorStat += stat;
                    }
                    else
                    {
                        armorStat *= (1 + (stat._value / 100f));
                    }

                    playerAttributes.SetArmorStat(armorStat);
                }
            }
        }

        // equip it
        _equipmentSlots[slot].SetItem(item);
        item.SetEquipped(true);

        if (oldItem != null)
        {
            oldItem.SetEquipped(false);
            _player.GetInventory().AddExistingItem(oldItem); // put the old item back into the inventory
        }
    }