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