using System;
using Cute;
using UnityEngine;

namespace Wizard;

public class StarterPurchaseConfirmationDialog : MonoBehaviour
{
	[SerializeField]
	private UILabel _packPriceLabel;

	[SerializeField]
	private UILabel _packConfirmLabel;

	[SerializeField]
	private UILabel _currentClassLabel;

	[SerializeField]
	private UILabel _labelAfterItemUnit;

	[SerializeField]
	private UILabel _cautionLabel;

	[SerializeField]
	private UILabel _haveCrystalBefore;

	[SerializeField]
	private UILabel _haveCrystalAfter;

	[SerializeField]
	private UILabel _freePackBeforeCountLabel;

	[SerializeField]
	private UILabel _freePackAfterCountLabel;

	[SerializeField]
	private UIButton _jpnLawButton;

	[SerializeField]
	private UILabel _saleTimeLabel;

	[SerializeField]
	private UISprite _jpaLawLine;

	[SerializeField]
	private GameObject _crystalLayoutRoot;

	[SerializeField]
	private UILabel _freePackTitleLabel;

	[SerializeField]
	private GameObject _freeBuyLayoutRoot;

	[SerializeField]
	private CenteringUIWidget _freeCountCenter;

	[SerializeField]
	private UITable _freeCountTable;

	[SerializeField]
	private UIScrollBar _scrollBar;

	[SerializeField]
	private UIScrollView _scrollView;

	public void Init(DialogBase inDialog, int selectedClassId, PackConfig packConfig, PackChildGachaInfo info, Action<PackConfig, PackChildGachaInfo, int, int[], CardBasePrm.ClanType, int?> onPurchase)
	{
		inDialog.SetSize(DialogBase.Size.M);
		inDialog.SetTitleLabel(packConfig.Title);
		inDialog.SetButtonLayout(DialogBase.ButtonLayout.BlueBtn_CancelBtn);
		SetTextAndLabels(inDialog, selectedClassId, packConfig, info);
		inDialog.onPushButton1 = delegate
		{
			onPurchase.Call(packConfig, info, 10, null, (CardBasePrm.ClanType)selectedClassId, null);
		};
		inDialog.ClickSe_Btn1 = Se.TYPE.SYS_BTN_DECIDE_TRANS;
		_jpnLawButton.onClick.Add(new EventDelegate(delegate
		{
			GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_COMMON_BUTTON);
			UIManager.GetInstance().WebViewHelper.OpenWebView(WebViewHelper.WebViewType.LEGALTEXT);
		}));
		_jpaLawLine.gameObject.SetActive(value: true);
		if (packConfig.ExpirtyInfo.IsEnableText)
		{
			_saleTimeLabel.text = packConfig.ExpirtyInfo.GetText();
		}
		else
		{
			_saleTimeLabel.gameObject.SetActive(value: false);
		}
		_crystalLayoutRoot.SetActive(!info.IsFreePack);
		_freeBuyLayoutRoot.SetActive(info.IsFreePack);
		if (info.IsFreePack)
		{
			int num = info.AvailableCount / info.PackCountBuyPer;
			_freePackBeforeCountLabel.text = num.ToString();
			_freePackAfterCountLabel.text = (num - 1).ToString();
			_freePackTitleLabel.text = Data.SystemText.Get("Shop_0224");
			_freePackTitleLabel.ProcessText();
			_freeCountTable.Reposition();
			_freeCountCenter.Reposition();
		}
		_jpnLawButton.gameObject.SetActive(value: false);
		_saleTimeLabel.gameObject.SetActive(value: false);
		_jpaLawLine.gameObject.SetActive(value: false);
		_scrollBar.gameObject.SetActive(value: false);
		_scrollView.enabled = false;
	}

	private void SetTextAndLabels(DialogBase inDialog, int selectedClassId, PackConfig packConfig, PackChildGachaInfo info)
	{
		int num = 10 * info.Cost;
		inDialog.SetButtonText(Data.SystemText.Get("Shop_0082"));
		string clanNameByKey = GameMgr.GetIns().GetDataMgr().GetClanNameByKey(selectedClassId);
		_packPriceLabel.text = Data.SystemText.Get("Shop_0241", num.ToString());
		_packConfirmLabel.text = Data.SystemText.Get("Shop_0242", packConfig.Title);
		_currentClassLabel.text = Data.SystemText.Get("Shop_0243", clanNameByKey);
		_cautionLabel.text = Data.SystemText.Get("Shop_0244", clanNameByKey);
		_labelAfterItemUnit.text = Data.SystemText.Get("Card_0100");
		int userCrystalCount = PlayerStaticData.UserCrystalCount;
		int num2 = userCrystalCount - 10 * info.Cost;
		_haveCrystalBefore.text = userCrystalCount.ToString();
		_haveCrystalAfter.text = num2.ToString();
	}
}
