using System.Collections.Generic; using CodeStage.AntiCheat.ObscuredTypes; using Newtonsoft.Json; public class SkillAwakenConfigTableData : TableDataBase { // 각성 스킬의 인덱스 ObscuredInt _SkillID; public int n_SkillID { get { return _SkillID; } set { _SkillID = value; _SkillID.RandomizeCryptoKey(); } } // 각성 단계 ObscuredInt _AwakenStep; public int n_AwakenStep { get { return _AwakenStep; } set { _AwakenStep = value; _AwakenStep.RandomizeCryptoKey(); } } // 적용할 특성 값1 ObscuredFloat _ExtraValue1; public float f_ExtraValue1 { get { return _ExtraValue1; } set { _ExtraValue1 = value; _ExtraValue1.RandomizeCryptoKey(); } } // 적용할 특성 값2 ObscuredFloat _ExtraValue2; public float f_ExtraValue2 { get { return _ExtraValue2; } set { _ExtraValue2 = value; _ExtraValue2.RandomizeCryptoKey(); } } // 적용할 특성 값3 ObscuredFloat _ExtraValue3; public float f_ExtraValue3 { get { return _ExtraValue3; } set { _ExtraValue3 = value; _ExtraValue3.RandomizeCryptoKey(); } } // 각성 단계 별 효과 설명 ObscuredInt _AwakenDesc; public int n_AwakenDesc { get { return _AwakenDesc; } set { _AwakenDesc = value; _AwakenDesc.RandomizeCryptoKey(); } } 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; } }