588 公会攻防战 攻防战激战期开启时:玩家在非公会界面时,公会按钮上方显示气泡:攻防战已开启,切换至公会界面1次后消失

# Conflicts:
# Main/System/Main/MainWin.cs
2个文件已修改
44 ■■■■■ 已修改文件
Main/System/GuildAtkDefBat/GuildAtkDefBatManager.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Main/MainWin.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/GuildAtkDefBat/GuildAtkDefBatManager.cs
@@ -68,6 +68,7 @@
    private void OnBeforePlayerDataInitializeEventOnRelogin()
    {
        hasClosedMainGuildAtkDefBatTip = false;
        ResetBattleData();
    }
@@ -390,6 +391,22 @@
        return MyFamilyMembers.ContainsKey(PlayerDatas.Instance.PlayerId);
    }
    private bool hasClosedMainGuildAtkDefBatTip;
    public bool ShouldShowMainGuildAtkDefBatTip()
    {
        if (hasClosedMainGuildAtkDefBatTip)
            return false;
        if (!IsOpen())
            return false;
        return BatState == 3 && HasFamilyJoinEligibility() && HasMyJoinEligibility();
    }
    public void ClearMainGuildAtkDefBatTip()
    {
        hasClosedMainGuildAtkDefBatTip = true;
    }
    /// <summary>
    /// 获取攻防战的当前显示状态标识
    /// </summary>
Main/System/Main/MainWin.cs
@@ -34,6 +34,7 @@
    [SerializeField] Transform gameTip; //10连
    [SerializeField] Transform mgTip;
    [SerializeField] Transform guildAtkDefBatTip;
    bool isForcePlayFightUIAnim = true; //强制播放战斗锤子框动画
@@ -54,6 +55,7 @@
        UpdateCurrency();
        UpdatePlayerInfo();
        RefreshFightBtn();
        RefreshGuildAtkDefBatTip();
    }
    protected override void OnPreOpen()
@@ -64,6 +66,8 @@
        UIManager.Instance.OnCloseWindow += OnCloseWindow;
        GlobalTimeEvent.Instance.MSEvent += OnMSEvent;
        RedpointCenter.Instance.redpointValueChangeEvent += OnRedpointValueChangeEvent;
        GuildAtkDefBatManager.Instance.OnUpdateAtkDefBatInfoEvent += OnUpdateAtkDefBatInfoEvent;
        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
        var xbInfo = HappyXBModel.Instance.GetXBInfoByType((int)HappXBTitle.HeroCallAdvanced);
        gameTip.SetActive(false);
        if (xbInfo != null && xbInfo.treasureCount < GeneralDefine.herocall10TipLimit)
@@ -74,6 +78,7 @@
        base.OnPreOpen();
        mgTip.SetActive(false);
        guildAtkDefBatTip.SetActive(false);
        // 刷新UI
        Display();
    }
@@ -88,6 +93,8 @@
        GlobalTimeEvent.Instance.fiveSecondEvent -= OnFiveSecondEvent;
        EventBroadcast.Instance.RemoveListener<string>(EventName.BATTLE_START, OnBattleStart);
        RedpointCenter.Instance.redpointValueChangeEvent -= OnRedpointValueChangeEvent;
        GuildAtkDefBatManager.Instance.OnUpdateAtkDefBatInfoEvent -= OnUpdateAtkDefBatInfoEvent;
        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
        base.OnPreClose();
        isForcePlayFightUIAnim = true;
@@ -96,6 +103,17 @@
    private void OnUpdateRenameResultEvent()
    {
        Display();
    }
    private void OnUpdateAtkDefBatInfoEvent()
    {
        RefreshGuildAtkDefBatTip();
    }
    private void OnFuncStateChangeEvent(int funcId)
    {
        if (funcId == (int)FuncOpenEnum.GuildAtkDefBat)
            RefreshGuildAtkDefBatTip();
    }
    void OnRedpointValueChangeEvent(int id)
@@ -129,6 +147,11 @@
    void DisplayTopBar()
    {
        topBar.SetActive(functionOrder == 0 || functionOrder == 2);
    }
    private void RefreshGuildAtkDefBatTip()
    {
        guildAtkDefBatTip.SetActive(GuildAtkDefBatManager.Instance.ShouldShowMainGuildAtkDefBatTip());
    }
    void OnCloseWindow(UIBase _ui)
@@ -335,6 +358,8 @@
            //     break;
            case 4:
                currentSubUI = UIManager.Instance.OpenWindow<GuildBaseWin>();
                GuildAtkDefBatManager.Instance.ClearMainGuildAtkDefBatTip();
                RefreshGuildAtkDefBatTip();
                break;
            default:
                Debug.LogWarning("未知的标签索引: " + functionOrder);
@@ -565,4 +590,4 @@
    #endregion
}
}