using CodeStage.AntiCheat.ObscuredTypes; using MiniJSON; using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; public class KettleCombineData { public ObscuredInt FoodID, FoodNeedAmount; } public class KettleTableData : TableDataBase { public eItem Item; // 포션, 유물 public string Name, Icon, Desc; public eRole m_Role; public eStat Stat; public ObscuredFloat Value; public ObscuredInt MaxLv; public List list_CombineData = new List(); } public class table_kettle : MonoBehaviour { public static table_kettle Ins; public TextAsset m_json; private List list_Data = new List(); private void Awake() { Ins = this; Dictionary jsonData = Json.Deserialize(m_json.text) as Dictionary; // ["items"]은 items.txt 안의 items를 가리킨다. 툴 우측 하단 파일 종류란에서 설정 가능. List obj = jsonData[GetType().Name] as List; foreach (object objt in obj) { var temp = new KettleTableData(); Dictionary json = objt as Dictionary; temp.ID = int.Parse(json["ID"].ToString()); temp.Item = DSUtil.StringToEnum(json["Item"].ToString()); temp.Name = json["Name"].ToString(); temp.Icon = json["Icon"].ToString(); temp.Desc = json["Desc"].ToString(); temp.m_Role = DSUtil.StringToEnum(json["Role"].ToString()); temp.Stat = DSUtil.StringToEnum(json["Stat"].ToString()); temp.Value = float.Parse(json["Value"].ToString()); temp.MaxLv = int.Parse(json["MaxLV"].ToString()); for (int i = 1; i <= 4; i++) { var split = json[DSUtil.Format("Combine{0}", i)].ToString().Split(','); var id = int.Parse(split[0]); if (id > 100) { temp.list_CombineData.Add(new KettleCombineData { FoodID = id, FoodNeedAmount = int.Parse(split[1]) }); //if (dic_matamount.ContainsKey(id)) // dic_matamount[id]++; //else // dic_matamount.Add(id, 1); } } list_Data.Add(temp); } //var keys = dic_matamount.Keys.ToList(); //keys.Sort(); //foreach (var key in keys) // Debug.Log(key + " " + dic_matamount[key]); } //Dictionary dic_matamount = new Dictionary(); public KettleTableData Get_Data(int _id) { return list_Data.Find(f => f.ID == _id) as KettleTableData; } public List Get_DataList() { return list_Data; } public List Get_DataList(eItem _item) { return list_Data.FindAll(f => (f as KettleTableData).Item == _item); } public List Get_DataList(eRole _role) { return list_Data.FindAll(f => (f as KettleTableData).m_Role == _role); } }