using CodeStage.AntiCheat.ObscuredTypes; using Newtonsoft.Json; using System.Collections.Generic; public class TreasureBoxConfigTableData : TableDataBase { ObscuredInt _TreasureID; public int n_TreasureID { get { return _TreasureID; } set { _TreasureID = value; _TreasureID.RandomizeCryptoKey(); } } public int n_TreasureGrade; ObscuredInt _AppearRate; public int n_AppearRate { get { return _AppearRate; } set { _AppearRate = value; _AppearRate.RandomizeCryptoKey(); } } public string s_TreasureImg; ObscuredFloat _LockRate; public float f_LockRate { get { return _LockRate; } set { _LockRate = value; _LockRate.RandomizeCryptoKey(); } } ObscuredFloat _TreasureMimicRate; public float f_TreasureMimicRate { get { return _TreasureMimicRate; } set { _TreasureMimicRate = value; _TreasureMimicRate.RandomizeCryptoKey(); } } ObscuredInt _BattleMonsterID; public int n_BattleMonsterID { get { return _BattleMonsterID; } set { _BattleMonsterID = value; _BattleMonsterID.RandomizeCryptoKey(); } } ObscuredInt _TreasureRewardID; public int n_TreasureRewardID { get { return _TreasureRewardID; } set { _TreasureRewardID = value; _TreasureRewardID.RandomizeCryptoKey(); } } ObscuredInt _DestroyRewardID; public int n_DestroyRewardID { get { return _DestroyRewardID; } set { _DestroyRewardID = value; _DestroyRewardID.RandomizeCryptoKey(); } } } public class table_TreasureBoxConfig : table_base { public static table_TreasureBoxConfig Ins; List tableDatas; protected override void Awake() { Ins = this; base.Awake(); } protected override void Start() { tableDatas = JsonConvert.DeserializeObject>(json_last); for (int i = 0; i < tableDatas.Count; i++) { tableDatas[i].f_LockRate *= 0.01f; tableDatas[i].f_TreasureMimicRate *= 0.01f; } base.Start(); } public List Get_DataList() { return tableDatas; } public TreasureBoxConfigTableData Get_Data(int id) { return tableDatas.Find(f => f.n_TreasureID == id); } public TreasureBoxConfigTableData Get_RandomData(int grade) { var list = tableDatas.FindAll(x => x.n_TreasureGrade == grade); return DSUtil.WeightedPick(list, x => x.n_AppearRate); } public TreasureBoxConfigTableData Get_RandomData() { return DSUtil.WeightedPick(tableDatas, x => x.n_AppearRate); } }