using Cyber.Entities.SyncBases;
namespace Cyber.Items {
///
/// An item, containing itemmy information.
///
public class Item {
///
/// Delegate for actions that items can do.
///
public delegate void ItemAction(Character host);
///
/// ID of the item, used in .
///
public readonly int ID;
///
/// Model ID of this item.
///
public int ModelID;
///
/// Name of the item.
///
public string Name;
///
/// Description of the item.
///
public string Description;
///
/// The weight of the item (in kg).
///
public float Weight;
///
/// The slot in which the item can be equipped to.
///
public EquipSlot Slot;
///
/// The function that is ran when the item is used.
///
public ItemAction Action;
///
/// Creates an item. This should technically be only called by ItemDB, but it's public because of "reasons".
///
/// ID of the item.
/// ModelID of the item, see ModelDB.
/// The name if the item.
/// The Weight of the item.
/// The equip slot of the item.
/// The description of the item.
/// The action which is ran when the item is used.
public Item(int id, int modelId, string name, float weight, EquipSlot slot, string description, ItemAction action = null) {
ID = id;
ModelID = modelId;
Name = name;
Weight = weight;
Slot = slot;
Description = description;
Action = action;
}
///
/// Clones the item, used mostly for .
///
///
public Item Clone() {
return new Item(ID, ModelID, Name, Weight, Slot, Description, Action);
}
}
}