using CodeStage.AntiCheat.ObscuredTypes; using MiniJSON; using System.Collections; using System.Collections.Generic; using UnityEngine; public class PassTableData : TableDataBase { public eItem FreeReward, PassReward; public ObscuredInt PassType, Chapter, ConditionValue, FreeRewardAmount, PassRewardAmount; } public class table_pass : MonoBehaviour { public static table_pass 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 PassTableData(); Dictionary json = objt as Dictionary; temp.ID = int.Parse(json["Step"].ToString()); temp.PassType = int.Parse(json["PassType"].ToString()); temp.Chapter = int.Parse(json["Chapter"].ToString()); temp.ConditionValue = int.Parse(json["ConditionValue"].ToString()); var split = json["FreeReward"].ToString().Split(','); temp.FreeReward = DSUtil.StringToEnum(split[0]); temp.FreeRewardAmount = int.Parse(split[1]); split = json["PassReward"].ToString().Split(','); temp.PassReward = DSUtil.StringToEnum(split[0]); temp.PassRewardAmount = int.Parse(split[1]); list_Data.Add(temp); } } public List Get_DataList() { return list_Data; } public List Get_DataList(int _pass) { return list_Data.FindAll(f => (f as PassTableData).PassType == _pass); } public Dictionary Get_PassTypes() { var dic = new Dictionary(); for (int i = 0; i < list_Data.Count; i++) { var temp = list_Data[i] as PassTableData; if (!dic.ContainsKey(temp.PassType)) dic.Add(temp.PassType, true); } return dic; } }