public void EquipItem(InventorySlot slot) { EquipmentDefinition_SO item_SO = (EquipmentDefinition_SO)slot.item_SO; foreach (var equipmentSlot in equipments_SO.inventory.slots) { foreach (var allowed in equipmentSlot.equipmentAllowed) { if (allowed == item_SO.equipmentType) { equipments_SO.SwapSlot(slot, equipmentSlot); } } } }
public ItemDefinition(ItemDefinition_SO item_SO) { itemID = item_SO.itemID; if (item_SO.itemType == ItemType.Equipment) { EquipmentDefinition_SO equipment_SO = (EquipmentDefinition_SO)item_SO; attributes = new ItemAttribute[equipment_SO.attributes.Length]; for (int i = 0; i < equipment_SO.attributes.Length; i++) { attributes[i] = new ItemAttribute(equipment_SO.attributes[i].attributeType, equipment_SO.attributes[i].minValue, equipment_SO.attributes[i].maxValue); } } }
public void HandleOnSlotBeforeUpdate(InventorySlot slot_) { if (slot_.item_SO == null) { return; } switch (slot_.parentUI.inventory_SO.inventoryType) { case InventoryType.Inventory: break; case InventoryType.Equipment: if (slot_.item_SO.itemType != ItemType.Equipment) { break; } EquipmentDefinition_SO equipDefinition_SO = (EquipmentDefinition_SO)slot_.item_SO; if (slot_.item_SO.itemType != ItemType.Equipment) { break; } for (int i = 0; i < slot_.item.attributes.Length; i++) { for (int j = 0; j < staticAttrbutes.Length; j++) { if (staticAttrbutes[j].staticType == slot_.item.attributes[i].attributeType) { staticAttrbutes[j].value.RemoveModifier(slot_.item.attributes[i]); SetDynamicAttributesMaxValue(); UIManager.Instance.playerStaticStatsUI.UpdateStatsUI(staticAttrbutes); } } } break; default: break; } }