using CodeStage.AntiCheat.ObscuredTypes; using Newtonsoft.Json; using System; using System.Collections.Generic; using Random = UnityEngine.Random; [Serializable] public class GachaRandomBagTableData : TableDataBase { ObscuredInt _ID; public int n_ID { get { return _ID; } set { _ID = value; _ID.RandomizeCryptoKey(); } } // 랜덤백 고유 ID ObscuredInt _Grade; public int n_Grade { get { return _Grade; } set { _Grade = value; _Grade.RandomizeCryptoKey(); } } // 아이템 등급 ObscuredInt _RewardID; public int n_RewardID { get { return _RewardID; } set { _RewardID = value; _RewardID.RandomizeCryptoKey(); } } } public class table_gacharandombag : table_missionbase { public static table_gacharandombag Ins; List tableDatas; // (n_ID, n_Grade) Dictionary<(int, int), List> dic_ItemData = new Dictionary<(int, int), List>(); // (n_ID, n_Grade) Dictionary<(int, int), List> dic_bagData = new Dictionary<(int, int), List>(); 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]; if (!dic_ItemData.ContainsKey((temp.n_ID, temp.n_Grade))) dic_ItemData.Add((temp.n_ID, temp.n_Grade), new List()); dic_ItemData[(temp.n_ID, temp.n_Grade)].Add(new ItemSimpleData { itemid = temp.n_RewardID, amount = 1 }); if (!dic_bagData.ContainsKey((temp.n_ID, temp.n_Grade))) dic_bagData.Add((temp.n_ID, temp.n_Grade), new List()); dic_bagData[(temp.n_ID, temp.n_Grade)].Add(temp); } base.Start(); } public ItemSimpleData Get_RandomItemData(int index, int grade) { return dic_ItemData[(index, grade)][Random.Range(0, dic_ItemData[(index, grade)].Count)]; } public List Get_DataList() { return tableDatas; } public List Get_DataList(int index, int grade) { return dic_bagData[(index, grade)]; } }