| | |
| | | [SerializeField] UIEffectPlayer fightEffect; |
| | | [SerializeField] UIEffectPlayer openCloseAnim; |
| | | [SerializeField] FillTween cdTween; |
| | | int index = 0; |
| | | |
| | | public bool isFirstOpen = true; //首次打开 |
| | | public Text hammerText; |
| | | |
| | | public static event Action TabChangeEvent; |
| | | protected override void InitComponent() |
| | | { |
| | | base.InitComponent(); |
| | |
| | | UpdateCurrency(); |
| | | UpdatePlayerInfo(); |
| | | RefreshFightBtn(); |
| | | DisplayTopBar(index); |
| | | } |
| | | |
| | | protected override void OnPreOpen() |
| | |
| | | PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh; |
| | | AutoFightModel.Instance.OnFightEvent += OnSkillCast; |
| | | ChallengeTabWin.OnCloseChallengeTabWin += OnCloseChallengeTabWin; |
| | | BattleManager.Instance.onBattleFieldCreate += OnBattleFieldCreate; |
| | | BattleManager.Instance.onBattleFieldDestroy += OnBattleFieldDestroy; |
| | | base.OnPreOpen(); |
| | | |
| | | // 刷新UI |
| | |
| | | PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh; |
| | | AutoFightModel.Instance.OnFightEvent -= OnSkillCast; |
| | | ChallengeTabWin.OnCloseChallengeTabWin -= OnCloseChallengeTabWin; |
| | | BattleManager.Instance.onBattleFieldCreate -= OnBattleFieldCreate; |
| | | BattleManager.Instance.onBattleFieldDestroy -= OnBattleFieldDestroy; |
| | | base.OnPreClose(); |
| | | } |
| | | |
| | | private void OnBattleFieldCreate(string guid, BattleField battleField) |
| | | { |
| | | Refresh(); |
| | | } |
| | | |
| | | private void OnBattleFieldDestroy(string guid, BattleField battleField) |
| | | { |
| | | Refresh(); |
| | | } |
| | | |
| | | private void OnCloseChallengeTabWin() |
| | |
| | | tabButtons[functionOrder].SelectBtn(); |
| | | } |
| | | |
| | | public void DisplayTopBar(int index) |
| | | { |
| | | bool isOtherBattleInProgress = BattleManager.Instance.IsOtherBattleInProgress(); |
| | | switch (index) |
| | | { |
| | | case 0: |
| | | case 2: |
| | | topBar.SetActive(true); |
| | | break; |
| | | case 1: |
| | | case 4: |
| | | topBar.SetActive(false); |
| | | break; |
| | | case 3: |
| | | topBar.SetActive(!isOtherBattleInProgress); |
| | | break; |
| | | default: |
| | | topBar.SetActive(true); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | protected override void SelectBottomTab(int index) |
| | | { |
| | | bool isOtherBattleInProgress = BattleManager.Instance.IsOtherBattleInProgress(); |
| | | if (isOtherBattleInProgress) |
| | | { |
| | | // 如果正在非主线战斗中,没满足解锁条件则不允许切换 |
| | | } |
| | | DisplayTopBar(index); |
| | | |
| | | if (index == 3) |
| | | { |
| | | //挑战特殊显示逻辑 |
| | |
| | | return; |
| | | } |
| | | |
| | | topBar.SetActive(index == 0 || index == 2); |
| | | |
| | | |
| | | // 如果点击当前已选中的标签,不做处理 |
| | | if (functionOrder == index && currentSubUI != null) |
| | | { |
| | |
| | | |
| | | // 根据选中的标签打开对应的界面 |
| | | OpenSubUIByTabIndex(); |
| | | |
| | | TabChangeEvent?.Invoke(); |
| | | } |
| | | |
| | | //战斗按钮动画 |
| | |
| | | /// </summary> |
| | | protected override void OnTabButtonClicked(int index) |
| | | { |
| | | this.index = index; |
| | | |
| | | |
| | | if (index == 0) |
| | | { |
| | | if (currentSubUI != null && currentSubUI.name == "HomeWin") |
| | |
| | | UIManager.Instance.OpenWindow<GuildJoinWin>(); |
| | | return; |
| | | } |
| | | |
| | | |
| | | SelectBottomTab(index); |
| | | } |
| | | |