using System; using System.Linq; using UnityEngine; [System.Serializable] public class EquippableItemData : ItemData { [SerializeField] public int strengthBonus; [SerializeField] public int enduranceBonus; [SerializeField] public int inteligenceBonus; [SerializeField] public int vitalityBonus; [SerializeField] public int speedBonus; [SerializeField] public bool isStackable; [SerializeField] public EquipmentTypeEnum equipmentType; public EquippableItemData(EquippableItem equippableItem) : base(equippableItem) { strengthBonus = equippableItem.StrengthBonus; enduranceBonus = equippableItem.EnduranceBonus; inteligenceBonus = equippableItem.InteligenceBonus; vitalityBonus = equippableItem.VitalityBonus; speedBonus = equippableItem.SpeedBonus; isStackable = equippableItem.isStackable; equipmentType = equippableItem.EquipmentType; } public EquippableItemData(Item item) : base(item) { strengthBonus = 0; enduranceBonus = 0; inteligenceBonus = 0; vitalityBonus = 0; speedBonus = 0; isStackable = true; equipmentType = EquipmentTypeEnum.Other; } public override Item MapDataToObject(string prefarbAssetName) { /* Debug.Log(MODEL_LOCALIZATION + prefarbAssetName + ".asset"); */ return TryFindResource(prefarbAssetName); /// // DONT OVERWRITE PROPERTIES BECOUSE ITS EDIT MAIN OBJECT IN ASSET/ /// // equippableItem.StrengthBonus = strengthBonus; // equippableItem.EnduranceBonus = enduranceBonus; // equippableItem.InteligenceBonus = inteligenceBonus; // equippableItem.VitalityBonus = vitalityBonus; // equippableItem.isStackable = isStackable; // equippableItem.EquipmentTypeEnum = equipmentType; // Item item = base.MapDataToItem(prefarbAssetName); // equippableItem.Name = item.Name; // equippableItem.Description = item.Description; // equippableItem.Level = item.Level; // equippableItem.ItemModel = item.ItemModel; // equippableItem.Image = item.Image; } public override Item MapDataToObject() { return TryFindResource(modelName); } protected override Item TryFindResource(string modelName) { /* Debug.Log(MODEL_LOCALIZATION + modelName); */ var resource = Resources.Load(MODEL_LOCALIZATION + modelName); if (resource == null) { string trimmed = String.Concat(modelName.Where(c => !Char.IsWhiteSpace(c))); resource = Resources.Load(MODEL_LOCALIZATION + trimmed); if(resource == null) throw new System.Exception($"Resource {modelName} not found!!"); } return resource; } }