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

57 lines
2.1 KiB
C#

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<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;
}
}