using System.Collections.Generic; using LitJson; namespace Wizard; public class CrossoverRestrictedCard { public class Data { public readonly int BaseCardId; public readonly int Count; public Data(int baseCardId, int count) { BaseCardId = baseCardId; Count = count; } } private readonly List _mainClassDataList = new List(); private readonly List _subClassDataList = new List(); public void Parse(JsonData jsonData) { if (jsonData.TryGetValue("main_class", out var value) && value.IsObject) { foreach (string key in value.Keys) { if (int.TryParse(key, out var result)) { _mainClassDataList.Add(new Data(result, value[key].ToInt())); } } } if (!jsonData.TryGetValue("sub_class", out var value2) || !value2.IsObject) { return; } foreach (string key2 in value2.Keys) { if (int.TryParse(key2, out var result2)) { _subClassDataList.Add(new Data(result2, value2[key2].ToInt())); } } } public int GetRestrictedCountOrDefault(int baseCardId, ClassType classType, int defaultCount) { List list = ((classType == ClassType.MainClass) ? _mainClassDataList : _subClassDataList); int num = list.FindIndex((Data data) => data.BaseCardId == baseCardId); if (num >= 0) { return list[num].Count; } return defaultCount; } }