using Newtonsoft.Json; using System; using System.Collections.Generic; public class SkillAwakenConfigTableData : TableDataBase { public int n_SkillID; // 각성 스킬의 인덱스 public int n_AwakenStep; // 각성 단계 public float f_ExtraValue1; // 적용할 특성 값1 public float f_ExtraValue2; // 적용할 특성 값2 public float f_ExtraValue3; // 적용할 특성 값3 public int n_AwakenDesc; // 각성 단계 별 효과 설명 public string Get_Desc() { return table_localtext.Ins.Get_Text(n_AwakenDesc); } } public class table_skillawakenconfig : table_missionbase { public static table_skillawakenconfig Ins; List tableDatas; Dictionary> dic_datas = new Dictionary>(); Dictionary<(int, int), SkillAwakenConfigTableData> dic_Data = new Dictionary<(int, int), SkillAwakenConfigTableData>(); protected override void Awake() { base.Awake(); Ins = this; } protected override void Start() { tableDatas = JsonConvert.DeserializeObject>(json_last); for (int i = 0; i < Get_DataList().Count; i++) { var temp = Get_DataList()[i]; if (!dic_datas.ContainsKey(temp.n_SkillID)) dic_datas.Add(temp.n_SkillID, new List()); dic_datas[temp.n_SkillID].Add(temp); dic_Data.Add((temp.n_SkillID, temp.n_AwakenStep), temp); } base.Start(); } public List Get_DataList() { return tableDatas; } public List Get_DataList(int skillid) { return dic_datas[skillid]; } public SkillAwakenConfigTableData Get_Data_orNull(int skillid, int step) { var key = (skillid, step); return dic_Data.ContainsKey(key) ? dic_Data[key] : null; } public float Get_AwakenValue(int skillid, int step) { var data = Get_Data_orNull(skillid, step); return DSUtil.CheckNull(data) ? 0f : data.f_ExtraValue1; } }