Build database for item.
Hello Guys, Let me ask something.
I am trying to build Database System for my Inventory system + Item now. And i don't want to use all attributes item in one class, i want separate detail information via Inherited class.
For example, My items have 3 main type like Equipment, useable, Materials. and equipment has 2 types like armor and weapon. Equipment item has durability properties(variable) which is weapon and armor has too.
And Weapons have damage properties, but armor has armor properties.
my question is how could i make list for all item in to single list? I made Item_Data format what i need which is in below
/// Data_Item
[System.Serializable]
public class Data_Item
{
public int ID;
public ItemMainType itemType;
public Data_Item(Data_Item data_Item)
{
this.ID = data_Item.ID;
this.itemType = data_Item.itemType;
}
public Data_Item(int ID, ItemMainType itemType)
{
this.ID = ID;
this.itemType = itemType;
}
}
[System.Serializable]
public class Data_Item_Equip : Data_Item
{
public int durability;
public Data_Item_Equip(Data_Item_Equip data_Item) : base(data_Item)
{
this.ID = data_Item.ID;
this.itemType = data_Item.itemType;
this.durability = data_Item.durability;
}
public Data_Item_Equip(Data_Item data_Item) : base(data_Item)
{
this.ID = data_Item.ID;
this.itemType = data_Item.itemType;
//this.durability = 10;
}
public Data_Item_Equip(int ID, ItemMainType itemType, int durability) : base(ID, itemType)
{
this.ID = ID;
this.itemType = itemType;
this.durability = durability;
}
}
[System.Serializable]
public class Data_Item_Use : Data_Item
{
public ItemEffect itemEffect;
public int amount;
public Data_Item_Use(Data_Item_Use data_Item) : base(data_Item)
{
this.ID = data_Item.ID;
this.itemType = data_Item.itemType;
this.amount = data_Item.amount;
}
public Data_Item_Use(int ID, ItemMainType itemType, int amount) : base(ID, itemType)
{
this.ID = ID;
this.itemType = itemType;
this.amount = amount;
}
}
[System.Serializable]
public class Data_Item_Equip_Weapon : Data_Item_Equip
{
public int damage;
public Data_Item_Equip_Weapon(Data_Item_Equip_Weapon data_Item) : base(data_Item)
{
this.ID = data_Item.ID;
this.itemType = data_Item.itemType;
this.durability = data_Item.durability;
this.damage = data_Item.damage;
}
public Data_Item_Equip_Weapon(int ID, ItemMainType itemType, int durability, int damage) : base(ID, itemType, durability)
{
this.ID = ID;
this.itemType = itemType;
this.durability = durability;
this.damage = damage;
}
}
[System.Serializable]
public class Data_Item_Equip_Armor : Data_Item_Equip
{
public int armor;
public Data_Item_Equip_Armor(Data_Item_Equip_Armor data_Item) : base(data_Item)
{
this.armor = data_Item.armor;
}
public Data_Item_Equip_Armor(int ID, ItemMainType itemType, int durability, int armor) : base(ID, itemType, durability)
{
this.armor = armor;
}
}
/// Data storage
public class DataBase : MonoBehaviour
{
public List<Item_Data> callme;
}
Your answer
![](https://koobas.hobune.stream/wayback/20220612225158im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Microsoft Access Database Unity 0 Answers
Scroll-view Database 0 Answers
Storing levels data 1 Answer
If there arent Data tables then how?? 0 Answers