using Newtonsoft.Json; using System; using System.Collections.Generic; [Serializable] public class BreakingLimitTableData : TableDataBase { public int n_LimitLv; // 초월(한계 돌파) 달성 레벨 public int n_RequireTotalStat; // 초월에 필요한 스텟 총 요구량 public int n_RequireLevel; // 초월에 필요한 레벨 요구량 public int n_MaxAbilityPoint; // 최대 특성 보유량 public int n_Equip_Upgrade_Limit; // 장비 강화 최대 레벨 public float f_Monster_DMG_Multiplier; // 일반 몬스터 피해 증가량 public float f_Boss_DMG_Multiplier; // 보스 피해량 증가량 public float f_ALL_STAT_Multiplier; // 모든 스텟 증가량 public int n_limitSlotMagic; // 최대 마법부여 슬롯 (슬롯 개방 레벨은 n_LimitLv을 참조) public float Get_StatValue(eStat stat) { switch (stat) { case eStat.Monster_DMG_Multiplier: return f_Monster_DMG_Multiplier; case eStat.BOSS_DMG_Multiplier: return f_Monster_DMG_Multiplier; case eStat.ALL_STAT_Multiplier: return f_ALL_STAT_Multiplier; } return 0f; } } public class table_breakinglimit : table_missionbase { public static table_breakinglimit Ins; List tableDatas; Dictionary dic_Data = new Dictionary(); // 슬롯, 레벨 Dictionary dic_SlotOpenData = 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]; dic_Data.Add(temp.n_LimitLv, temp); if (temp.n_limitSlotMagic > 0) { if (!dic_SlotOpenData.ContainsKey(temp.n_limitSlotMagic)) dic_SlotOpenData.Add(temp.n_limitSlotMagic, temp.n_LimitLv); } } base.Start(); } public BreakingLimitTableData Get_Data_orNull(int lv) { return dic_Data.ContainsKey(lv) ? dic_Data[lv] : null; } public List Get_DataList() { return tableDatas; } public int Get_SlotOpenLv(int slot) { return dic_SlotOpenData[slot]; } }