lcy
6 天以前 1d7a9569f0d2275ada39ba30f8c0f38b6a4baa2f
638 VIP专属客服 增加红点,调整文案,入口显示在主界面

# Conflicts:
# Main/System/Main/RightFuncInHome.cs
5个文件已修改
73 ■■■■ 已修改文件
Main/System/Main/HomeWin.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Main/RightFuncInHome.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Redpoint/MainRedDot.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/SuperVIP/SuperVIPWin.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/SuperVIP/SuperVipManager.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Main/HomeWin.cs
@@ -76,6 +76,7 @@
    [SerializeField] HeroReturnCell heroReturnCell;
    [SerializeField] HeroSkinFlashSaleCell heroSkinFlashSaleCell;
    [SerializeField] Button festivalActivityBtn;
    [SerializeField] Button superVIPBtn;
    //坐骑
    [SerializeField] Image horseBGImg;
@@ -238,6 +239,10 @@
        {
            UIManager.Instance.OpenWindow<FestivalActivityWin>();
        });
        superVIPBtn.AddListener(() =>
       {
           UIManager.Instance.OpenWindow<SuperVIPWin>();
       });
    }
@@ -294,6 +299,7 @@
        TimingGiftManager.Instance.OnShowGiftIdListAddEvent += OnShowGiftIdListAddEvent;
        OpenServerActivityCenter.Instance.openServerActivityStateChange += OpenServerActivityStateChange;
        OperationTimeHepler.Instance.operationTimeUpdateEvent += OnOperationTimeUpdateEvent;
        RechargeManager.Instance.rechargeChangeEvent += OnRechargeChangeEvent;
        TryPlayAutoFightBoss();
        Display();
        DisplayFirstChargeBtn();
@@ -305,6 +311,7 @@
        DisplayHeroReturn();
        DisplayHeroSkinFlash();
        DisplayFestivalActivity();
        DisplaySuperVipBtn();
        DelayPlayMusic().Forget();
    }
@@ -335,6 +342,7 @@
        TimingGiftManager.Instance.OnShowGiftIdListAddEvent -= OnShowGiftIdListAddEvent;
        OpenServerActivityCenter.Instance.openServerActivityStateChange -= OpenServerActivityStateChange;
        OperationTimeHepler.Instance.operationTimeUpdateEvent -= OnOperationTimeUpdateEvent;
        RechargeManager.Instance.rechargeChangeEvent -= OnRechargeChangeEvent;
        //  关闭的时候把战斗界面也给关了 虽然是在外面开的
        UIManager.Instance.CloseWindow<BattleWin>();
    }
@@ -389,6 +397,11 @@
        {
            DisplayChatShow();
        }
    }
    private void OnRechargeChangeEvent()
    {
        DisplaySuperVipBtn();
    }
    private void DisplayChatShow()
@@ -998,6 +1011,13 @@
        bool isOpen = FestivalActivityManager.Instance.IsFestivalActivityOpen();
        festivalActivityBtn.SetActive(isOpen);
    }
    void DisplaySuperVipBtn()
    {
        bool isOpen = SuperVipManager.Instance.IsEntryOpen();
        superVIPBtn.SetActive(isOpen);
        SuperVipManager.Instance.UpdateRedpoint();
    }
}
Main/System/Main/RightFuncInHome.cs
@@ -19,7 +19,6 @@
    [SerializeField] Button signBtn;
    [SerializeField] Button previewBtn;
    [SerializeField] Button reviewBtn; //好评
    [SerializeField] Button superVIPBtn;
    static string listenWindowName = "";   //监听关闭时再显示
@@ -94,10 +93,6 @@
        {
            UIManager.Instance.OpenWindow<GoodReviewWin>();
        });
        superVIPBtn.AddListener(() =>
        {
            UIManager.Instance.OpenWindow<SuperVIPWin>();
        });
    }
    void OnDestroy()
@@ -116,15 +111,8 @@
        monthCardBtn.SetActive(FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.PrivilegeCard));
        previewBtn.SetActive(FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.FunctionPreview));
        reviewBtn.SetActive(SmallFuncManager.Instance.IsReviewOpen());
        DisplaySuperVipBtn();
    }
    
    void DisplaySuperVipBtn()
    {
        bool isOpen = SuperVipManager.Instance.IsEntryOpen();
        superVIPBtn.SetActive(isOpen);
    }
    //显隐功能栏
    public void ShowFuncCol(bool _isShow)
    {
Main/System/Redpoint/MainRedDot.cs
@@ -158,6 +158,7 @@
    public const int HeroReturnRepoint = 484;   //武将返场
    public const int FestivalActivityRepoint = 485;    //节日活动
    public const int HeroSkinFlashSaleRepoint = 486;
    public const int SuperVIPRepoint = 487;
    public void Register()
    {
Main/System/SuperVIP/SuperVIPWin.cs
@@ -14,6 +14,8 @@
    protected override void OnPreOpen()
    {
        // 进入界面后清除入口红点
        SuperVipManager.Instance.ClearRedpoint();
        DisplayRewards();
    }
Main/System/SuperVIP/SuperVipManager.cs
@@ -9,16 +9,29 @@
    /// <summary>客服领取奖励列表 [[物品ID, 个数], ...]</summary>
    public int[][] customerServiceRewards;
    /// <summary>SuperVIP入口红点</summary>
    public Redpoint superVipRedpoint = new Redpoint(MainRedDot.SuperVIPRepoint);
    public override void Init()
    {
        var config = FuncConfigConfig.Get("SuperVIP");
        channelThresholdDict = JsonMapper.ToObject<Dictionary<string, int>>(config.Numerical1);
        customerServiceRewards = JsonMapper.ToObject<int[][]>(config.Numerical2);
        // 每次重新登录后重置红点(重新上线后显示红点)
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEventOnRelogin;
        RechargeManager.Instance.rechargeChangeEvent += OnRechargeChangeEvent;
    }
    public override void Release()
    {
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitializeEventOnRelogin;
        RechargeManager.Instance.rechargeChangeEvent -= OnRechargeChangeEvent;
    }
    private void OnRechargeChangeEvent()
    {
        UpdateRedpoint();
    }
    /// <summary>
@@ -32,4 +45,29 @@
            return false;
        return RechargeManager.Instance.realRecharge >= thresholdYuan * 100;
    }
    /// <summary>
    /// 重新登录(数据初始化前),先清除红点状态再重新判断显示
    /// </summary>
    void OnBeforePlayerDataInitializeEventOnRelogin()
    {
        superVipRedpoint.state = RedPointState.None;
        UpdateRedpoint();
    }
    /// <summary>
    /// 根据入口开放状态更新红点
    /// </summary>
    public void UpdateRedpoint()
    {
        superVipRedpoint.state = IsEntryOpen() ? RedPointState.Simple : RedPointState.None;
    }
    /// <summary>
    /// 清除红点(进入SuperVIPWin后调用)
    /// </summary>
    public void ClearRedpoint()
    {
        superVipRedpoint.state = RedPointState.None;
    }
}