118 lines
2.6 KiB
C#
118 lines
2.6 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
using UnityEngine.UI;
|
|
|
|
[System.Serializable]
|
|
[CreateAssetMenu(fileName = "New Item", menuName = "Inventory/Items")]
|
|
public class Item : ScriptableObject
|
|
{
|
|
public int id;
|
|
public int Id
|
|
{
|
|
get { return id; }
|
|
set { id = value; }
|
|
}
|
|
|
|
public string name;
|
|
public string Name
|
|
{
|
|
get { return name; }
|
|
set { name = value; }
|
|
}
|
|
|
|
public string description;
|
|
public string Description
|
|
{
|
|
get { return description; }
|
|
set { description = value; }
|
|
}
|
|
|
|
public int level;
|
|
public int Level
|
|
{
|
|
get { return level; }
|
|
set { level = value; }
|
|
}
|
|
|
|
public int value;
|
|
public int Value
|
|
{
|
|
get { return value; }
|
|
set { this.value = value; }
|
|
}
|
|
|
|
public Sprite image;
|
|
public Sprite Image
|
|
{
|
|
get { return image; }
|
|
set { image = value; }
|
|
}
|
|
|
|
// to handle object created on scene for example after removing from inventory
|
|
public GameObject itemModel;
|
|
public GameObject ItemModel
|
|
{
|
|
get { return itemModel; }
|
|
set { itemModel = value; }
|
|
}
|
|
|
|
public int price;
|
|
public int Price
|
|
{
|
|
get { return price; }
|
|
set { price = value; }
|
|
}
|
|
|
|
|
|
public UnityEvent useEffect = new UnityEvent();
|
|
public Item() {}
|
|
|
|
public Item(Item _item)
|
|
{
|
|
this.Name = _item.Name;
|
|
this.Description = _item.Description;
|
|
this.Level = _item.Level;
|
|
this.Value = _item.Value;
|
|
this.Price = _item.price;
|
|
this.ItemModel = _item.ItemModel;
|
|
this.Image = _item.Image;
|
|
}
|
|
|
|
public Item(string _name, string _description, int _level, int _value, GameObject _itemModel, Sprite _image)
|
|
{
|
|
this.Name = _name;
|
|
this.Description = _description;
|
|
this.Level = _level;
|
|
this.Value = _value;
|
|
this.ItemModel = _itemModel;
|
|
this.Image = _image;
|
|
}
|
|
|
|
public Item(string _name, string _description, int _level, int _value, int _price, GameObject _itemModel, Sprite _image)
|
|
{
|
|
this.Name = _name;
|
|
this.Description = _description;
|
|
this.Level = _level;
|
|
this.Value = _value;
|
|
this.Price = _price;
|
|
this.ItemModel = _itemModel;
|
|
this.Image = _image;
|
|
}
|
|
|
|
|
|
public void InvokeEffectAction()
|
|
{
|
|
Debug.Log($"Use {name} effect");
|
|
useEffect.Invoke();
|
|
}
|
|
|
|
public void InvokeEffectAction(int slotNumber)
|
|
{
|
|
Debug.Log($"Use {name} effect");
|
|
useEffect.Invoke();
|
|
}
|
|
}
|