using System; using UnityEngine; public class ArenaTabHandler : BaseChallengeTabHandler { protected override int GetIndex() => 1; protected override int GetOpenState() => 0; // 0=FuncID protected override int GetFuncId() => ArenaManager.Instance.funcId; protected override int GetRedpointId() => MainRedDot.ArenaRepoint; protected override string GetCountInfo() { long nowCount = UIHelper.GetMoneyCnt(ArenaManager.Instance.ChallengeMoneyType); return UIHelper.AppendColor(nowCount > 0 ? TextColType.Green : TextColType.Red, Language.Get("Challenge03", nowCount)); } protected override Action GetOnClickAction() { return HandleArenaNavigation; } private void HandleArenaNavigation() { if (!FuncOpen.Instance.IsFuncOpen(GetFuncId(), true)) return; UIManager.Instance.CloseWindow(); BattleField arenaBattle = BattleManager.Instance.GetBattleFieldByMapID(3); if (arenaBattle != null) { ArenaBattleWin battleWin; if (!UIManager.Instance.IsOpened()) { battleWin = UIManager.Instance.OpenWindow(); } else { battleWin = UIManager.Instance.GetUI(); } battleWin.SetBattleField(arenaBattle); } else { UIManager.Instance.OpenWindow(); } } protected override void SubscribeToSpecificEvents() { PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataRefresh; } protected override void UnsubscribeFromSpecificEvents() { PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefresh; } private void OnPlayerDataRefresh(PlayerDataType type) { if (type == PlayerDataType.ChallengeVoucher) { Refresh(); } } }