using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;

namespace Wizard;

public class SelectCardPurchaseConfirmDialog : MonoBehaviour
{
	private const int SKIN_WARNING_LINE_BOTTOM_ANCHOR_ABSOLUTE = -43;

	private const int SKIN_WARNING_LINE_TOP_ANCHOR_ABSOLUTE = -35;

	[SerializeField]
	private UIScrollView _scrollView;

	[SerializeField]
	private PurchaseConfirm _objPurchaseConfirm;

	[SerializeField]
	private UILabel _listHeaderLabel;

	[SerializeField]
	private UILabel _labelSelectCardList;

	[SerializeField]
	private UILabel _labelAcquiredSkinWarning;

	[SerializeField]
	private UISprite _spriteLine;

	private DialogBase _dialog;

	public static void Create(PackConfig packConfig, PackChildGachaInfo gachaInfo, int buyPackNum, List<int> selectCardIdList, Action onDecide, bool isAcquireSkinCardPack, bool hasTargetSkin = false)
	{
		DialogBase dialog = UIManager.GetInstance().CreateDialogClose();
		(UnityEngine.Object.Instantiate(Resources.Load("UI/layoutParts/Dialog/SelectCardPurchaseConfirmDialog")) as GameObject).GetComponent<SelectCardPurchaseConfirmDialog>().Initialize(dialog, packConfig, gachaInfo, buyPackNum, selectCardIdList, onDecide, isAcquireSkinCardPack, hasTargetSkin);
	}

	private void Initialize(DialogBase dialog, PackConfig packConfig, PackChildGachaInfo gachaInfo, int buyPackNum, List<int> selectCardIdList, Action onDecide, bool isAcquireSkinCardPack, bool hasTargetSkin)
	{
		_dialog = dialog;
		InitDialog(onDecide);
		SetPurchaseConfirm(packConfig, gachaInfo, buyPackNum);
		string key = (isAcquireSkinCardPack ? "Shop_0259" : "Shop_0199");
		_listHeaderLabel.text = Data.SystemText.Get(key);
		SetSelectCardList(selectCardIdList, hasTargetSkin);
		_scrollView.ResetPosition();
	}

	private void InitDialog(Action onDecide)
	{
		_dialog.SetSize(DialogBase.Size.M);
		_dialog.SetButtonLayout(DialogBase.ButtonLayout.BlueBtn_CancelBtn);
		_dialog.SetButtonText(Data.SystemText.Get("Shop_0082"));
		_dialog.ClickSe_Btn1 = Se.TYPE.SYS_BTN_DECIDE_TRANS;
		_dialog.SetButtonDelegate(delegate
		{
			onDecide();
		});
		_dialog.SetPanelDepth(100);
		_dialog.SetObj(base.gameObject);
	}

	private void SetPurchaseConfirm(PackConfig packConfig, PackChildGachaInfo gachaInfo, int buyPackNum)
	{
		_dialog.SetTitleLabel(packConfig.Title);
		int useItemNum = gachaInfo.Cost * buyPackNum;
		string purchaseText = Data.SystemText.Get("Shop_0101", packConfig.Title);
		_objPurchaseConfirm.SetClystalConfirmDialog(useItemNum, purchaseText, PlayerStaticData.UserCrystalCount, packConfig.ExpirtyInfo);
		if (packConfig.GachaPointData != null)
		{
			GachaPointData gachaPointData = packConfig.GachaPointData;
			int num = gachaPointData.IncreaseGachaPoint;
			if (gachaInfo.OverrideIncreaseGachaPoint > 0)
			{
				num = gachaInfo.OverrideIncreaseGachaPoint;
			}
			int num2 = (packConfig.IsSpecialCardPack ? num : (num * buyPackNum));
			StartCoroutine(_objPurchaseConfirm.SetCardPackPoint(gachaPointData.GachaPoint, gachaPointData.GachaPoint + num2));
		}
	}

	private void SetSelectCardList(List<int> selectCardIdList, bool hasTargetSkin)
	{
		if (selectCardIdList.Count == 0)
		{
			_labelSelectCardList.gameObject.SetActive(value: false);
		}
		_labelSelectCardList.gameObject.SetActive(value: true);
		StringBuilder stringBuilder = new StringBuilder();
		for (int i = 0; i < selectCardIdList.Count; i++)
		{
			if (i > 0)
			{
				stringBuilder.Append("\n");
			}
			stringBuilder.Append(UserGoods.getUserGoodsName(UserGoods.Type.Card, selectCardIdList[i]));
		}
		_labelSelectCardList.text = stringBuilder.ToString();
		if (hasTargetSkin)
		{
			_labelAcquiredSkinWarning.gameObject.SetActive(value: true);
			_labelAcquiredSkinWarning.text = Data.SystemText.Get("Shop_0166");
			_spriteLine.bottomAnchor.absolute = -43;
			_spriteLine.topAnchor.absolute = -35;
		}
	}
}
