Project_WL/Assets/Script/Table/PC/table_breakinglimit.cs

65 lines
2.4 KiB
C#
Raw Normal View History

2024-12-15 01:39:39 +00:00
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<BreakingLimitTableData> tableDatas;
Dictionary<int, BreakingLimitTableData> dic_Data = new Dictionary<int, BreakingLimitTableData>();
// 슬롯, 레벨
Dictionary<int, int> dic_SlotOpenData = new Dictionary<int, int>();
protected override void Awake()
{
base.Awake();
Ins = this;
}
protected override void Start()
{
tableDatas = JsonConvert.DeserializeObject<List<BreakingLimitTableData>>(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<BreakingLimitTableData> Get_DataList() { return tableDatas; }
public int Get_SlotOpenLv(int slot) { return dic_SlotOpenData[slot]; }
}