using System;
|
using UnityEngine;
|
using Cysharp.Threading.Tasks;
|
|
public class HeroTrialTabHandler : BaseChallengeTabHandler
|
{
|
protected override string GetIconKey() => "ChallengeTab7";
|
protected override string GetNameText() => Language.Get("ChallengeTab7");
|
protected override int GetOpenState() => 0; // 0=FuncID
|
protected override int GetFuncId() => (int)FuncOpenEnum.HeroTrial;
|
protected override int GetRedpointId() => MainRedDot.HeroTrialRepoint;
|
|
protected override string GetCountInfo()
|
{
|
return HeroTrialManager.Instance.HasAnyChallengeableLevel() ? Language.Get("HeroTrial06") : string.Empty;
|
}
|
|
protected override Action GetOnClickAction()
|
{
|
return HandleHeroTrialNavigation;
|
}
|
|
private async void HandleHeroTrialNavigation()
|
{
|
if (!FuncOpen.Instance.IsFuncOpen(GetFuncId(), true))
|
return;
|
UIManager.Instance.CloseWindow<ChallengeTabWin>();
|
BattleField battleField = BattleManager.Instance.GetBattleFieldByMapID(HeroTrialManager.Instance.DataMapID);
|
if (battleField != null)
|
{
|
HeroTrialBattleWin battleWin;
|
if (!UIManager.Instance.IsOpened<HeroTrialBattleWin>())
|
{
|
battleWin = UIManager.Instance.OpenWindow<HeroTrialBattleWin>();
|
}
|
else
|
{
|
battleWin = UIManager.Instance.GetUI<HeroTrialBattleWin>();
|
}
|
battleWin.SetBattleField(battleField as HeroTrialBattleField);
|
}
|
else
|
{
|
UIManager.Instance.OpenWindow<TowerBaseWin>(1);
|
}
|
}
|
|
protected override void SubscribeToSpecificEvents()
|
{
|
HeroTrialManager.Instance.OnUpdateHeroTrialInfoEvent += Refresh;
|
}
|
|
protected override void UnsubscribeFromSpecificEvents()
|
{
|
HeroTrialManager.Instance.OnUpdateHeroTrialInfoEvent -= Refresh;
|
}
|
}
|