using Newtonsoft.Json; using System; using System.Collections.Generic; public enum eAwakenUpgradeOptionType { STR_ADD, DEX_ADD, INT_ADD, LUK_ADD, HP_ADD, ATK_ADD, DEF_ADD, GOLD_Multiplier, EXP_Multiplier, ITEM_Multiplier, } [Serializable] public class AwakenConfigTableData : TableDataBase { public eStat e_UpgradeStatType; // 강화할 스텟 타입 public int n_UpgradeOrder; // 강화 순서 (로테이션) public eAwakenUpgradeOptionType e_UpgradeOptionType; // 업그레이드로 증가할 능력치 Enum 값 public int n_DefaultUpgradeValue; // 1레벨의 능력치 기본 값 public float f_LevelPerUpgradeValue; // 레벨당 능력치 증가량 public float f_BalanceConstant; // 밸런스 상수 K값 public float Get_Value(int lv) { return base.Get_Value(lv, f_BalanceConstant, n_DefaultUpgradeValue, f_LevelPerUpgradeValue); } public eStat Get_SlotStat() { switch (e_UpgradeOptionType) { case eAwakenUpgradeOptionType.STR_ADD: return eStat.STR; case eAwakenUpgradeOptionType.DEX_ADD: return eStat.DEX; case eAwakenUpgradeOptionType.INT_ADD: return eStat.INT; case eAwakenUpgradeOptionType.LUK_ADD: return eStat.LUK; case eAwakenUpgradeOptionType.HP_ADD: return eStat.MaxHP; case eAwakenUpgradeOptionType.ATK_ADD: return eStat.ATK; case eAwakenUpgradeOptionType.DEF_ADD: return eStat.DEF; } return eStat.None; } } public class table_awakenconfig : table_missionbase { public static table_awakenconfig Ins; List tableDatas; Dictionary> dic_StatList = new Dictionary>(); 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_StatList.ContainsKey(temp.e_UpgradeStatType)) dic_StatList.Add(temp.e_UpgradeStatType, new List()); dic_StatList[temp.e_UpgradeStatType].Add(temp); } base.Start(); } public AwakenConfigTableData Get_Data(eStat stat, int order) { return Get_DataList(stat).Find(f => f.n_UpgradeOrder == order); } public List Get_DataList() { return tableDatas; } public List Get_DataList(eStat stat) { return dic_StatList[stat]; } }