using System; using UnityEngine; public class TianziBillboradTabHandler : BaseChallengeTabHandler { protected override int GetIndex() => 3; protected override int GetOpenState() => 0; // 0=FuncID protected override int GetFuncId() => TianziBillboradManager.Instance.funcId; protected override int GetRedpointId() => MainRedDot.TianziBillboradRepoint; protected override string GetCountInfo() { int count = TianziBillboradManager.Instance.GetRemainChallageCount(); return UIHelper.AppendColor(count > 0 ? TextColType.Green : TextColType.Red, Language.Get("Challenge01", count)); } protected override Action GetOnClickAction() { return HandleBoneFieldNavigation; } private void HandleBoneFieldNavigation() { if (!FuncOpen.Instance.IsFuncOpen(GetFuncId(), true)) return; UIManager.Instance.CloseWindow(); BattleField battleField = BattleManager.Instance.GetBattleFieldByMapID(TianziBillboradManager.Instance.DataMapID); if (battleField != null) { TianziBillboradBattleWin battleWin; if (!UIManager.Instance.IsOpened()) { battleWin = UIManager.Instance.OpenWindow(); } else { battleWin = UIManager.Instance.GetUI(); } battleWin.SetBattleField(battleField as TianziBillboradBattleField); } else { UIManager.Instance.OpenWindow(); } } protected override void SubscribeToSpecificEvents() { DungeonManager.Instance.UpdateFBInfoChangeEvent += OnUpdateFBInfoChange; AdsManager.Instance.OnAdsInfoListUpdateEvent += OnAdsInfoListUpdate; } protected override void UnsubscribeFromSpecificEvents() { DungeonManager.Instance.UpdateFBInfoChangeEvent -= OnUpdateFBInfoChange; AdsManager.Instance.OnAdsInfoListUpdateEvent -= OnAdsInfoListUpdate; } private void OnUpdateFBInfoChange(int mapID, bool isADAddCntChange, bool isBuyAddCntChange, bool isItemAddCntChange) { if (mapID == TianziBillboradManager.Instance.DataMapID) { Refresh(); } } private void OnAdsInfoListUpdate(int adID, int mapID) { if (mapID == TianziBillboradManager.Instance.DataMapID) { Refresh(); } } }