From e19bcaa7ced9d17f7dae4672ae0c41710e178a60 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期四, 09 十月 2025 09:53:15 +0800
Subject: [PATCH] 218 子 【付费内容】首充 / 【付费内容】首充-客户端

---
 Main/System/Main/HomeWin.cs |   54 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 51 insertions(+), 3 deletions(-)

diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index 20c62b6..e3d2826 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -1,3 +1,4 @@
+using System;
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
@@ -53,6 +54,7 @@
 
     //鍏朵粬鍔熻兘鍏ュ彛
     [SerializeField] Button monthCardBtn;
+    [SerializeField] Button FirstChargeBtn;
 
     /// <summary>
     /// 鍒濆鍖栫粍浠�
@@ -83,6 +85,11 @@
             InvestModel.Instance.BuyInvest(InvestModel.monthCardType);
         });
 
+        FirstChargeBtn.AddListener(() =>
+        {
+            UIManager.Instance.OpenWindow<FirstChargeWin>();
+        });
+
         blessLVBtn.AddListener(() =>
         {
             UIManager.Instance.OpenWindow<BlessLVWin>();
@@ -92,7 +99,7 @@
         {
             UIManager.Instance.OpenWindow<MailWin>();
         });
-        
+
         officialUpBtn.AddListener(() =>
         {
             if (RealmConfig.GetKeys().Count <= PlayerDatas.Instance.baseData.realmLevel)
@@ -128,7 +135,12 @@
         AutoFightModel.Instance.OnFightEvent += ChangeMode;
         TeamManager.Instance.OnTeamChange += DisplayCard;
         UIManager.Instance.OnCloseWindow += OnCloseWindow;
+        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChange;
+        FirstChargeManager.Instance.OnUpdateFirstChargeInfo += OnUpdateFirstChargeInfo;
+        GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
         Display();
+        DisplayFirstChargeBtn();
+
         // var battleWin = UIManager.Instance.OpenWindow<BattleWin>();
         // battleWin.SetBattleField(BattleManager.Instance.storyBattleField);
     }
@@ -144,6 +156,9 @@
         AutoFightModel.Instance.OnFightEvent -= ChangeMode;
         TeamManager.Instance.OnTeamChange -= DisplayCard;
         UIManager.Instance.OnCloseWindow -= OnCloseWindow;
+        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChange;
+        FirstChargeManager.Instance.OnUpdateFirstChargeInfo -= OnUpdateFirstChargeInfo;
+        GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
 
         //  鍏抽棴鐨勬椂鍊欐妸鎴樻枟鐣岄潰涔熺粰鍏充簡 铏界劧鏄湪澶栭潰寮�鐨�
         UIManager.Instance.CloseWindow<BattleWin>();
@@ -174,7 +189,7 @@
                 break;
             case PlayerDataType.LV:
                 if (lastLV != PlayerDatas.Instance.baseData.LV)
-                { 
+                {
                     lastLV = PlayerDatas.Instance.baseData.LV;
                     lvUPEffect.Play();
                 }
@@ -375,11 +390,44 @@
     }
 
     void GotoRest()
-    { 
+    {
         if (BattleManager.Instance.storyBattleField != null &&
             BattleManager.Instance.storyBattleField.GetBattleMode() != BattleMode.Stop)
         {
             BattleManager.Instance.storyBattleField.HaveRest();
         }
     }
+
+    private void DisplayFirstChargeBtn()
+    {
+        bool isFirstChargeFuncOpen = FuncOpen.Instance.IsFuncOpen(FirstChargeManager.FuncID);
+        if (FirstChargeManager.Instance.IsAllFirstChargeRewardsClaimed() &&
+        FirstChargeManager.Instance.IsNextDayAfterAllClaimed())
+        {
+            FirstChargeBtn.SetActive(false);
+        }
+        else
+        {
+            FirstChargeBtn.SetActive(isFirstChargeFuncOpen);
+        }
+
+    }
+
+    private void OnFuncStateChange(int funcId)
+    {
+        if (funcId == FirstChargeManager.FuncID)
+        {
+            DisplayFirstChargeBtn();
+        }
+    }
+
+    private void OnUpdateFirstChargeInfo()
+    {
+        DisplayFirstChargeBtn();
+    }
+
+    private void OnSecondEvent()
+    {
+        DisplayFirstChargeBtn();
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0