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 skills = new List(); [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 listItem; public List items; public override void TableLoad() { string[] strLine = FileLoadWithLineSplit(path == string.Empty ? "CSV/Item" : path); string[] spl; listItem = new Dictionary(); 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(listItem.Values); } public override void LoadedCheck() { if (listItem == null) TableLoad(); } public List ListGet() { LoadedCheck(); return items; } public ItemData Search(string idx) { LoadedCheck(); if (listItem.ContainsKey(idx)) return listItem[idx]; //return ItemData.Copy(listItem[idx]); return null; } }