using System; using System.Collections.Generic; public class QunyingTabHandler : BaseChallengeTabHandler { protected override int GetIndex() => 5; protected override int GetOpenState() => 0; // 0=FuncID protected override int GetFuncId() => (int)FuncOpenEnum.Qunying; protected override int GetRedpointId() => MainRedDot.Qunying; protected override string GetCountInfo() { long nowCount = UIHelper.GetMoneyCnt(QunyingManager.challengeMoneyType); return UIHelper.AppendColor(nowCount > 0 ? TextColType.Green : TextColType.Red, Language.Get("Qunying1", nowCount)); } protected override Action GetOnClickAction() { return HandleNavigation; } private void HandleNavigation() { if (!FuncOpen.Instance.IsFuncOpen(GetFuncId(), true)) return; UIManager.Instance.CloseWindow(); BattleField battle = BattleManager.Instance.GetBattleFieldByMapID(QunyingManager.DataMapID); if (battle != null) { QYBattleWin battleWin; if (!UIManager.Instance.IsOpened()) { battleWin = UIManager.Instance.OpenWindow(); } else { battleWin = UIManager.Instance.GetUI(); } battleWin.SetBattleField(battle); } else { QunyingManager.Instance.openQYWinNeedRoll = true; 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.QunyingWDL) { Refresh(); } } }