using System.Collections.Generic;
using UnityEngine;
using Wizard.Scripts.Network.Data.TaskData.Arena;

namespace Wizard;

public class RewardConfirmDialog : MonoBehaviour
{
	[SerializeField]
	private UILabel _rewardConfirmLabelMainFirst;

	[SerializeField]
	private UILabel _rewardConfirmLabelMainSecond;

	[SerializeField]
	private UILabel _rewardConfirmLabelSub;

	[SerializeField]
	private GameObject _rewardDialogRoot;

	[SerializeField]
	private RewardBase _rewardDialog;

	[SerializeField]
	private RewardBase _pageChangeRewardPrefab;

	[SerializeField]
	private RewardConfirmView _reardConfirmViewFor4;

	public void CreateRewardConfirmDialog(GachaPointExchangeInfo gachaPointExchangeInfo, int dialogInnerDepth, int dialogInnerSortingOrder)
	{
		if (gachaPointExchangeInfo.RewardList.Count >= 5 && !RewardConfirmView.IsSpecialEmblemLayout(gachaPointExchangeInfo.RewardList))
		{
			CreateRewardViewForPageChange(gachaPointExchangeInfo.RewardList, dialogInnerDepth, dialogInnerSortingOrder);
		}
		else if (gachaPointExchangeInfo.RewardList.Count <= 3)
		{
			CreateRewardViewFor3(gachaPointExchangeInfo.RewardList, dialogInnerDepth, dialogInnerSortingOrder);
		}
		else
		{
			CreateRewardViewFor4(gachaPointExchangeInfo.RewardList);
		}
	}

	public void SetText(string mainTextFirst, string mainTextSecond, string subText)
	{
		_rewardConfirmLabelMainFirst.text = mainTextFirst;
		_rewardConfirmLabelMainSecond.text = mainTextSecond;
		_rewardConfirmLabelSub.text = subText;
	}

	private void CreateRewardViewFor3(List<Wizard.Scripts.Network.Data.TaskData.Arena.Reward> rewardList, int dialogInnerDepth, int dialogInnerSortingOrder)
	{
		_reardConfirmViewFor4.gameObject.SetActive(value: false);
		RewardBase component = NGUITools.AddChild(_rewardDialogRoot, _rewardDialog.gameObject).GetComponent<RewardBase>();
		UIPanel component2 = component.gameObject.GetComponent<UIPanel>();
		component2.depth = dialogInnerDepth;
		component2.sortingOrder = dialogInnerSortingOrder;
		component.SetActiveRewardLabel(isShow: false);
		for (int i = 0; i < rewardList.Count; i++)
		{
			component.AddReward(rewardList[i]);
		}
		component.EndCreate();
	}

	private void CreateRewardViewForPageChange(List<Wizard.Scripts.Network.Data.TaskData.Arena.Reward> rewardList, int dialogInnerDepth, int dialogInnerSortingOrder)
	{
		_reardConfirmViewFor4.gameObject.SetActive(value: false);
		RewardBase component = NGUITools.AddChild(_rewardDialogRoot, _pageChangeRewardPrefab.gameObject).GetComponent<RewardBase>();
		UIPanel component2 = component.gameObject.GetComponent<UIPanel>();
		component2.depth = dialogInnerDepth;
		component2.sortingOrder = dialogInnerSortingOrder;
		component.SetActiveRewardLabel(isShow: false);
		for (int i = 0; i < rewardList.Count; i++)
		{
			NguiObjs rewardObj = component.AddReward(rewardList[i]);
			switch (rewardList[i].UserGoodsData.GoodsType)
			{
			case UserGoods.Type.Sleeve:
				component.ChangeRewardTextureSize(rewardObj, 145, 200);
				break;
			case UserGoods.Type.Degree:
			case UserGoods.Type.MyPageBG:
				component.ChangeRewardTextureSize(rewardObj, 145, 145);
				break;
			}
		}
		component.EndCreate();
	}

	private void CreateRewardViewFor4(List<Wizard.Scripts.Network.Data.TaskData.Arena.Reward> rewardList)
	{
		_reardConfirmViewFor4.gameObject.SetActive(value: true);
		_reardConfirmViewFor4.Initialize(rewardList);
	}
}
