Super Knight : Enter the Dungeon
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

125 lines
2.8 KiB

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;
}
}