|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
[System.Serializable]
|
|
|
|
|
public class ItemData
|
|
|
|
|
{
|
|
|
|
|
public string idx;
|
|
|
|
|
public bool OVERLAP = true;
|
|
|
|
|
public string type;
|
|
|
|
|
public int tier;
|
|
|
|
|
public int price;
|
|
|
|
|
public string work;
|
|
|
|
|
public float value;
|
|
|
|
|
public List<SkillData> skills = new List<SkillData>();
|
|
|
|
|
|
|
|
|
|
[Space(10)]
|
|
|
|
|
[OnlyRead]
|
|
|
|
|
public int hold = 0;
|
|
|
|
|
public void Add(int value)
|
|
|
|
|
{
|
|
|
|
|
this.hold += value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string time;
|
|
|
|
|
static public ItemData Create(string[] spl)
|
|
|
|
|
{
|
|
|
|
|
int i = 0;
|
|
|
|
|
ItemData item = new ItemData();
|
|
|
|
|
|
|
|
|
|
item.idx = spl[i++];
|
|
|
|
|
i++;
|
|
|
|
|
item.OVERLAP = bool.Parse(spl[i++]);
|
|
|
|
|
item.type = spl[i++];
|
|
|
|
|
|
|
|
|
|
item.tier = int.Parse(spl[i++]);
|
|
|
|
|
item.price = int.Parse(spl[i++]);
|
|
|
|
|
|
|
|
|
|
item.work = spl[i++];
|
|
|
|
|
item.value = float.Parse(spl[i++]);
|
|
|
|
|
|
|
|
|
|
item.time = $"{System.DateTime.UtcNow}";
|
|
|
|
|
|
|
|
|
|
for (; i < spl.Length; i++)
|
|
|
|
|
{
|
|
|
|
|
if (1 < spl[i].Length)
|
|
|
|
|
item.skills.Add(SkillData.Create(spl[i]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return item;
|
|
|
|
|
}
|
|
|
|
|
static public ItemData Copy(ItemData origin, int value = 0)
|
|
|
|
|
{
|
|
|
|
|
ItemData item = new ItemData();
|
|
|
|
|
|
|
|
|
|
item.idx = origin.idx;
|
|
|
|
|
item.OVERLAP = origin.OVERLAP;
|
|
|
|
|
item.type = origin.type;
|
|
|
|
|
|
|
|
|
|
item.tier = origin.tier;
|
|
|
|
|
item.price = origin.price;
|
|
|
|
|
|
|
|
|
|
item.work = origin.work;
|
|
|
|
|
item.value = origin.value;
|
|
|
|
|
|
|
|
|
|
item.hold = 0;
|
|
|
|
|
item.Add(value);
|
|
|
|
|
|
|
|
|
|
item.time = $"{System.DateTime.UtcNow}";
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < origin.skills.Count; i++)
|
|
|
|
|
item.skills.Add(SkillData.Copy(origin.skills[i]));
|
|
|
|
|
|
|
|
|
|
return item;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[System.Serializable]
|
|
|
|
|
public class DataItem : IData
|
|
|
|
|
{
|
|
|
|
|
Dictionary<string, ItemData> listItem;
|
|
|
|
|
public List<ItemData> items;
|
|
|
|
|
public override void TableLoad()
|
|
|
|
|
{
|
|
|
|
|
string[] strLine = FileLoadWithLineSplit(path == string.Empty ? "CSV/Item" : path);
|
|
|
|
|
string[] spl;
|
|
|
|
|
|
|
|
|
|
listItem = new Dictionary<string, ItemData>();
|
|
|
|
|
for (int i = 1; i < strLine.Length; i++)
|
|
|
|
|
{
|
|
|
|
|
if (1 < strLine[i].Length)
|
|
|
|
|
{
|
|
|
|
|
spl = strLine[i].Split(',');
|
|
|
|
|
|
|
|
|
|
if (bool.Parse(spl[1]))
|
|
|
|
|
{
|
|
|
|
|
ItemData item = ItemData.Create(spl);
|
|
|
|
|
listItem.Add(item.idx, item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
items = new List<ItemData>(listItem.Values);
|
|
|
|
|
}
|
|
|
|
|
public override void LoadedCheck()
|
|
|
|
|
{
|
|
|
|
|
if (listItem == null)
|
|
|
|
|
TableLoad();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<ItemData> ListGet()
|
|
|
|
|
{
|
|
|
|
|
LoadedCheck();
|
|
|
|
|
|
|
|
|
|
return items;
|
|
|
|
|
}
|
|
|
|
|
public ItemData Search(string idx)
|
|
|
|
|
{
|
|
|
|
|
LoadedCheck();
|
|
|
|
|
|
|
|
|
|
if (listItem.ContainsKey(idx)) return listItem[idx];
|
|
|
|
|
//return ItemData.Copy(listItem[idx]);
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|