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<Data> _mainClassDataList = new List<Data>();

	private readonly List<Data> _subClassDataList = new List<Data>();

	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<Data> list = ((classType == ClassType.MainClass) ? _mainClassDataList : _subClassDataList);
		int num = list.FindIndex((Data data) => data.BaseCardId == baseCardId);
		if (num >= 0)
		{
			return list[num].Count;
		}
		return defaultCount;
	}
}
