using CodeStage.AntiCheat.ObscuredTypes; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using UnityEngine; [Serializable] public class EssenceTableData : TableDataBase { ObscuredInt _EssenceID; public int n_EssenceID { get { return _EssenceID; } set { _EssenceID = value; _EssenceID.RandomizeCryptoKey(); } } // 본질 ID ObscuredFloat _Rate1; public float f_Rate1 { get { return _Rate1; } set { _Rate1 = value; _Rate1.RandomizeCryptoKey(); } } // 비율 1 ObscuredFloat _Rate2; public float f_Rate2 { get { return _Rate2; } set { _Rate2 = value; _Rate2.RandomizeCryptoKey(); } } // 비율 2 ObscuredFloat _Rate3; public float f_Rate3 { get { return _Rate3; } set { _Rate3 = value; _Rate3.RandomizeCryptoKey(); } } // 비율 3 ObscuredFloat _Rate4; public float f_Rate4 { get { return _Rate4; } set { _Rate4 = value; _Rate4.RandomizeCryptoKey(); } } // 비율 4 ObscuredFloat _Rate5; public float f_Rate5 { get { return _Rate5; } set { _Rate5 = value; _Rate5.RandomizeCryptoKey(); } } // 비율 5 ObscuredFloat _Rate6; public float f_Rate6 { get { return _Rate6; } set { _Rate6 = value; _Rate6.RandomizeCryptoKey(); } } // 비율 6 public List list_rate = new List(); public override string Get_Name() { return table_itemlist.Ins.Get_Data(n_EssenceID).Get_Name(); } public string Get_RateText() { string rtn = ""; for (int i = 0; i < list_rate.Count; i++) { if (list_rate[i] > 0f) rtn += $"{DSUtil.Format(3331 + i, list_rate[i] * 100f)}\n"; } return rtn; } } public class table_essence : table_missionbase { public static table_essence Ins; List tableDatas; 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]; temp.list_rate.Add(temp.f_Rate1); temp.list_rate.Add(temp.f_Rate2); temp.list_rate.Add(temp.f_Rate3); temp.list_rate.Add(temp.f_Rate4); temp.list_rate.Add(temp.f_Rate5); temp.list_rate.Add(temp.f_Rate6); #if UNITY_EDITOR if (temp.list_rate.Sum() < 1f) Debug.LogError($"table_essence {temp.n_EssenceID} 의 list_rate 합계가 100%가 안됩니다."); else if (temp.list_rate.Sum() > 1f) Debug.LogError($"table_essence {temp.n_EssenceID} 의 list_rate 합계가 100%가 넘습니다."); #endif } base.Start(); } public EssenceTableData Get_Data(int essenceid) { return Get_DataList().Find(f => f.n_EssenceID == essenceid); } public List Get_DataList() { return tableDatas; } }