Project_WL/Assets/Script/Table/Skill/table_skillawakenconfig.cs

99 lines
3.0 KiB
C#

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<SkillAwakenConfigTableData> tableDatas;
Dictionary<int, List<SkillAwakenConfigTableData>> dic_datas = new Dictionary<int, List<SkillAwakenConfigTableData>>();
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<List<SkillAwakenConfigTableData>>(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<SkillAwakenConfigTableData>());
dic_datas[temp.n_SkillID].Add(temp);
dic_Data.Add((temp.n_SkillID, temp.n_AwakenStep), temp);
}
base.Start();
}
public List<SkillAwakenConfigTableData> Get_DataList() { return tableDatas; }
public List<SkillAwakenConfigTableData> 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;
}
}