using System; using System.Collections.Generic; public class WarlordPavilionTabHandler : BaseChallengeTabHandler { protected override int GetIndex() => 4; protected override int GetOpenState() => 0; // 0=FuncID protected override int GetFuncId() => (int)FuncOpenEnum.WarlordPavilion; protected override int GetRedpointId() => MainRedDot.WarlordPavilionRepoint; protected override string GetCountInfo() { WarlordPavilionManager.Instance.TryGetShowLayerNumAndLevelNum(out int layerNum, out int levelNum); return UIHelper.AppendColor(TextColType.Green, Language.Get("WarlordPavilion29", Language.Get("Arena15", layerNum, levelNum))); } protected override Action GetOnClickAction() { return HandleBoneFieldNavigation; } private void HandleBoneFieldNavigation() { if (!FuncOpen.Instance.IsFuncOpen(GetFuncId(), true)) return; UIManager.Instance.CloseWindow(); BattleField battleField = BattleManager.Instance.GetBattleFieldByMapID(WarlordPavilionManager.Instance.DataMapID); if (battleField != null) { WarlordPavilionBattleWin battleWin; if (!UIManager.Instance.IsOpened()) { battleWin = UIManager.Instance.OpenWindow(); } else { battleWin = UIManager.Instance.GetUI(); } battleWin.SetBattleField(battleField as WarlordPavilionBattleField); } else { UIManager.Instance.OpenWindow(); } } protected override void SubscribeToSpecificEvents() { WarlordPavilionManager.Instance.OnUpdateDingjungeInfoEvent += OnUpdateDingjungeInfoEvent; } protected override void UnsubscribeFromSpecificEvents() { WarlordPavilionManager.Instance.OnUpdateDingjungeInfoEvent -= OnUpdateDingjungeInfoEvent; } private void OnUpdateDingjungeInfoEvent(List indexs) { Refresh(); } }