Project_WL/Assets/Script/Table/Equipment/table_enchantgradeconfig.cs

69 lines
2.0 KiB
C#

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using UnityEngine;
using Random = UnityEngine.Random;
[Serializable]
public class EnchantGradeConfigTableData : TableDataBase
{
public int n_EnchantGrade; // 인첸트 등급
public int n_OptionLevelMin; // 최소 옵션 레벨
public int n_OptionLevelMax; // 최대 옵션 레벨
public string s_Color;
public Color GradeColor;
}
public class table_enchantgradeconfig : table_missionbase
{
public static table_enchantgradeconfig Ins;
List<EnchantGradeConfigTableData> tableDatas;
Dictionary<int, EnchantGradeConfigTableData> dic_Data = new Dictionary<int, EnchantGradeConfigTableData>();
protected override void Awake()
{
base.Awake();
Ins = this;
}
protected override void Start()
{
tableDatas = JsonConvert.DeserializeObject<List<EnchantGradeConfigTableData>>(json_last);
for (int i = 0; i < Get_DataList().Count; i++)
{
var temp = Get_DataList()[i];
ColorUtility.TryParseHtmlString(temp.s_Color, out temp.GradeColor);
dic_Data.Add(temp.n_EnchantGrade, temp);
}
base.Start();
}
public int Get_Lv(int grade)
{
var Tdata = Get_Data(grade);
return Random.Range(Tdata.n_OptionLevelMin, Tdata.n_OptionLevelMax + 1);
}
public EnchantGradeConfigTableData Get_Data(int grade) { return dic_Data[grade]; }
public EnchantGradeConfigTableData Get_Data_bylv(int lv)
{
var lst = Get_DataList();
for (int i = 0; i < lst.Count; i++)
{
if (lst[i].n_OptionLevelMax > lv)
return lst[i];
}
return lst[0];
}
public List<EnchantGradeConfigTableData> Get_DataList() { return tableDatas; }
public Color Get_Color(int lv)
{
for (int i = 0; i < Get_DataList().Count; i++)
{
if (Get_DataList()[i].n_OptionLevelMax > lv)
return Get_DataList()[i].GradeColor;
}
return Color.black;
}
}