using System;
using Cute;
using UnityEngine;
using Wizard;

public class NetworkMatchNextSceneSelector : INextSceneSelector
{
	private BattleResultUIController m_battleResultNewControl;

	private bool _movingToMyPage;

	public NetworkMatchNextSceneSelector(BattleResultUIController battleResultControl)
	{
		m_battleResultNewControl = battleResultControl;
		_movingToMyPage = false;
	}

	public void Setup(bool isWin, GameObject gameObject)
	{
		if (m_battleResultNewControl.ResultMsgReportBtnFlag)
		{
			m_battleResultNewControl.ReportBtnObj.labels[0].text = Data.SystemText.Get("Con_Management_001_Button");
			m_battleResultNewControl.ReportBtnObj.gameObject.SetActive(value: true);
			m_battleResultNewControl.ReportBtnObj.buttons[0].onClick.Clear();
			m_battleResultNewControl.ReportBtnObj.buttons[0].onClick.Add(new EventDelegate(delegate
			{
				ConsistencyReportButtonAction.CreateReportConfirmWindow();
			}));
		}
		m_battleResultNewControl.MissionBtnObj.labels[0].text = Data.SystemText.Get("Battle_0200");
		m_battleResultNewControl.MissionBtnObj.buttons[0].onClick.Clear();
		m_battleResultNewControl.MissionBtnObj.buttons[0].onClick.Add(new EventDelegate(delegate
		{
			GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_COMMON_BUTTON);
			UIManager.GetInstance().createInSceneCenterLoading();
			MissionInfoTask missionInfoTask = GameMgr.GetIns().GetMissionInfoTask();
			missionInfoTask.SetParameter();
			m_battleResultNewControl.StartCoroutine(Toolbox.NetworkManager.Connect(missionInfoTask, delegate
			{
				m_battleResultNewControl.CreateMissionList();
			}, BaseTask.OnRequestFailed, BaseTask.OnFailedErrorCode));
		}));
		m_battleResultNewControl.HomeBtnObj.labels[0].text = Data.SystemText.Get("Battle_0202");
		m_battleResultNewControl.HomeBtnObj.buttons[0].onClick.Clear();
		m_battleResultNewControl.HomeBtnObj.buttons[0].onClick.Add(new EventDelegate(delegate
		{
			MoveToMyPage();
		}));
		m_battleResultNewControl.RetryBtnObj.labels[0].text = Data.SystemText.Get("Battle_0204");
		m_battleResultNewControl.RetryBtnObj.buttons[0].onClick.Clear();
		m_battleResultNewControl.RetryBtnObj.buttons[0].onClick.Add(new EventDelegate(delegate
		{
			GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_COMMON_BUTTON);
			DeckInfoTask task = new DeckInfoTask();
			task.SetParameter(Data.CurrentFormat);
			UIManager.GetInstance().StartCoroutine(Toolbox.NetworkManager.Connect(task, delegate
			{
				Action<DeckUI> onUpdateDeckUICustomize = delegate(DeckUI deckUI)
				{
					if (deckUI.Deck.Format == GameMgr.GetIns().GetDataMgr().GetSelectDeckFormat() && deckUI.Deck.GetDeckID() == GameMgr.GetIns().GetDataMgr().GetSelectDeckId())
					{
						deckUI.SetTextAppealLabelLeft(Data.SystemText.Get("Card_0235"));
					}
				};
				DeckSelectUIDialog.Create(DeckSelectUIDialog.GetTitleByBattleType(GameMgr.GetIns().GetDataMgr().m_BattleType), task.DeckGroupListData, Data.CurrentFormat, DeckSelectUIDialog.eFormatChangeUIType.SingleFormat, isVisibleCreateNew: true, delegate(DialogBase dialog, DeckData deckData)
				{
					FreeAndRankMatchDeckSelectConfirmDialog.Create(dialog, deckData, isBattleEnd: true);
				}, new DeckSelectUI.InitOptions
				{
					OnUpdateDeckUICustomize = onUpdateDeckUICustomize
				});
			}));
		}));
	}

	public void Show()
	{
		iTween.MoveTo(m_battleResultNewControl.ButtonGrid.gameObject, iTween.Hash("position", m_battleResultNewControl.DefaultPosDict["ButtonGrid"], "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
	}

	private void MoveToMyPage()
	{
		if (!_movingToMyPage)
		{
			_movingToMyPage = true;
			GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_CANCEL_TRANS);
			GameMgr.GetIns().GetBattleCtrl().BattleEnd(UIManager.ViewScene.MyPage);
		}
	}
}
