evershade/Assets/Data/ScriptableObjects/Items/GameItemSo.cs

112 lines
2.6 KiB
C#

using Types.Items;
using UnityEngine;
namespace Data.ScriptableObjects.Items
{
// [CreateAssetMenu(fileName = "GameItem", menuName = "Game Data/Game Item")]
// public enum ItemType
// {
// Key,
// Weapon,
// Consumable,
// Resource,
// Seed,
// Equipment,
// Crop,
// Tool
// }
//
// public enum ItemRarity
// {
// Common,
// Uncommon,
// Rare,
// Epic,
// Legendary,
// Mythic
// }
public class GameItemSo : ScriptableObject
{
public Sprite icon;
public int id;
public bool isConsumable;
public bool isCraftable;
public bool isDestroyable;
public bool isDroppable;
public bool isEquippable;
public bool isKeyItem;
public bool isQuestItem;
public bool isSellable;
public bool isStackable;
public bool isTradeable;
public bool isUsable;
public string itemName;
public int itemValue;
public int quantity;
public ItemRarity rarity;
public int sellValue;
public string spritePath;
public int stackSize;
public ItemType type;
public GameItem Clone()
{
var clone = new GameItem
{
ID = id,
ItemName = itemName,
Icon = icon,
ItemValue = itemValue,
Rarity = rarity,
Quantity = quantity,
StackSize = stackSize,
SellValue = sellValue,
IsStackable = isStackable,
IsEquippable = isEquippable,
IsConsumable = isConsumable,
IsQuestItem = isQuestItem,
IsKeyItem = isKeyItem,
IsCraftable = isCraftable,
IsTradeable = isTradeable,
IsSellable = isSellable,
IsDroppable = isDroppable,
IsDestroyable = isDestroyable,
IsUsable = isUsable,
SpritePath = spritePath,
Type = type
};
return clone;
}
public int GetId()
{
return id;
}
public string GetItemName()
{
return itemName;
}
public Sprite GetIcon()
{
return icon;
}
public int GetItemValue()
{
return itemValue;
}
public int GetQuantity()
{
return quantity;
}
}
}