From 7e3f0aad03c3be0341ec396dd66ef98b31f14e39 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期五, 23 一月 2026 11:03:43 +0800
Subject: [PATCH] 432 自动挂机优化-客户端

---
 Main/System/Main/AutoFightModel.cs |  136 +++++++++++++++++++++++----------------------
 Main/System/Main/HomeWin.cs        |   23 +++++++
 2 files changed, 91 insertions(+), 68 deletions(-)

diff --git a/Main/System/Main/AutoFightModel.cs b/Main/System/Main/AutoFightModel.cs
index 183d973..a2d0d14 100644
--- a/Main/System/Main/AutoFightModel.cs
+++ b/Main/System/Main/AutoFightModel.cs
@@ -80,6 +80,7 @@
         }
     }
 
+    public event Action<bool> OnAutoChallengeBossEvent;
     //鑷姩鎸戞垬棣栭
     public bool isAutoChallengeBoss
     {
@@ -90,6 +91,7 @@
         set
         {
             QuickSetting.Instance.SetQuickSetting(QuickSettingType.AutoFight_ChallengeBoss, value);
+            OnAutoChallengeBossEvent?.Invoke(value);
         }
     }
 
@@ -107,9 +109,11 @@
             if (m_NowChallengeCount >= tryChallengeCount)
             {
                 m_NowChallengeCount = -1;   //浠h〃鍋滄缁х画鎸戞垬BOSS, 浣嗕笉鏄仠姝㈡垬鏂�
+                isAutoChallengeBoss = false; //鍙栨秷鍕鹃�夎嚜鍔ㄦ寫鎴榖oss
             }
         }
     }
+
 
     //鑷姩鎸戞垬棣栭锛屾垬璐娆″仠姝�
     public int tryChallengeCount
@@ -208,81 +212,81 @@
     {
         ProccessCloseWin();
     }
-	void ProccessCloseWin()
+    void ProccessCloseWin()
     {
         if (!isAutoAttack)
             return;
-		if (isAutoChallengeBoss)
-		{
-			if (UIManager.Instance.IsOpened<BattleVictoryWin>())
-			{
-				if (!winWaitCloseDict.ContainsKey("BattleVictoryWin"))
-				{
-					winWaitCloseDict["BattleVictoryWin"] = 0;
-				}
+        if (isAutoChallengeBoss)
+        {
+            if (UIManager.Instance.IsOpened<BattleVictoryWin>())
+            {
+                if (!winWaitCloseDict.ContainsKey("BattleVictoryWin"))
+                {
+                    winWaitCloseDict["BattleVictoryWin"] = 0;
+                }
 
-				if (winWaitCloseDict["BattleVictoryWin"] == 0)
-				{
-					winWaitCloseDict["BattleVictoryWin"] = (int)Time.time;
-				}
-				else if (Time.time - winWaitCloseDict["BattleVictoryWin"] > AutoFightModel.Instance.autoCloseWinCD)
-				{
-					UIManager.Instance.CloseWindow<BattleVictoryWin>();
-					winWaitCloseDict["BattleVictoryWin"] = 0;
-				}
-			}
+                if (winWaitCloseDict["BattleVictoryWin"] == 0)
+                {
+                    winWaitCloseDict["BattleVictoryWin"] = (int)Time.time;
+                }
+                else if (Time.time - winWaitCloseDict["BattleVictoryWin"] > AutoFightModel.Instance.autoCloseWinCD)
+                {
+                    UIManager.Instance.CloseWindow<BattleVictoryWin>();
+                    winWaitCloseDict["BattleVictoryWin"] = 0;
+                }
+            }
 
-			if (UIManager.Instance.IsOpened<BattleFailWin>())
-			{
-				if (!winWaitCloseDict.ContainsKey("BattleFailWin"))
-				{
-					winWaitCloseDict["BattleFailWin"] = 0;
-				}
+            if (UIManager.Instance.IsOpened<BattleFailWin>())
+            {
+                if (!winWaitCloseDict.ContainsKey("BattleFailWin"))
+                {
+                    winWaitCloseDict["BattleFailWin"] = 0;
+                }
 
-				if (winWaitCloseDict["BattleFailWin"] == 0)
-				{
-					winWaitCloseDict["BattleFailWin"] = (int)Time.time;
-				}
-				else if (Time.time - winWaitCloseDict["BattleFailWin"] > autoCloseWinCD)
-				{
-					UIManager.Instance.CloseWindow<BattleFailWin>();
-					winWaitCloseDict["BattleFailWin"] = 0;
-				}
-			}
-		}
-		
-		if (isAutoFinishTask)
-		{
-			if (TaskManager.Instance.GetMainTaskState() == 2 && UIManager.Instance.IsOpened<HomeWin>()
+                if (winWaitCloseDict["BattleFailWin"] == 0)
+                {
+                    winWaitCloseDict["BattleFailWin"] = (int)Time.time;
+                }
+                else if (Time.time - winWaitCloseDict["BattleFailWin"] > autoCloseWinCD)
+                {
+                    UIManager.Instance.CloseWindow<BattleFailWin>();
+                    winWaitCloseDict["BattleFailWin"] = 0;
+                }
+            }
+        }
+
+        if (isAutoFinishTask)
+        {
+            if (TaskManager.Instance.GetMainTaskState() == 2 && UIManager.Instance.IsOpened<HomeWin>()
             && !UIManager.Instance.ExistAnyFullScreenOrMaskWin("") && !NewBieCenter.Instance.inGuiding)
-			{
-				//棰嗗彇浠诲姟濂栧姳
-				CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward();
-				getReward.RewardType = 66;
-				getReward.DataEx = (uint)TaskManager.Instance.mainTask.TaskID;
-				GameNetSystem.Instance.SendInfo(getReward);
-				return;
-			}
+            {
+                //棰嗗彇浠诲姟濂栧姳
+                CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward();
+                getReward.RewardType = 66;
+                getReward.DataEx = (uint)TaskManager.Instance.mainTask.TaskID;
+                GameNetSystem.Instance.SendInfo(getReward);
+                return;
+            }
 
-			if (UIManager.Instance.IsOpened<CommonGetItemWin>() && ItemLogicUtility.Instance.getItemEventName == "Task")
-			{
-				if (!winWaitCloseDict.ContainsKey("CommonGetItemWin"))
-				{
-					winWaitCloseDict["CommonGetItemWin"] = 0;
-				}
+            if (UIManager.Instance.IsOpened<CommonGetItemWin>() && ItemLogicUtility.Instance.getItemEventName == "Task")
+            {
+                if (!winWaitCloseDict.ContainsKey("CommonGetItemWin"))
+                {
+                    winWaitCloseDict["CommonGetItemWin"] = 0;
+                }
 
-				if (winWaitCloseDict["CommonGetItemWin"] == 0)
-				{
-					winWaitCloseDict["CommonGetItemWin"] = (int)Time.time;
-				}
-				else if (Time.time - winWaitCloseDict["CommonGetItemWin"] > autoCloseWinCD)
-				{
-					UIManager.Instance.CloseWindow<CommonGetItemWin>();
-					winWaitCloseDict["CommonGetItemWin"] = 0;
-				}
-			}
-		}
-	}
+                if (winWaitCloseDict["CommonGetItemWin"] == 0)
+                {
+                    winWaitCloseDict["CommonGetItemWin"] = (int)Time.time;
+                }
+                else if (Time.time - winWaitCloseDict["CommonGetItemWin"] > autoCloseWinCD)
+                {
+                    UIManager.Instance.CloseWindow<CommonGetItemWin>();
+                    winWaitCloseDict["CommonGetItemWin"] = 0;
+                }
+            }
+        }
+    }
 
 
     public void SaveAutoFightSetting()
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index dbb0079..be908a6 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -92,10 +92,10 @@
     [SerializeField] ButtonEx btnChatWin;
     [SerializeField] TextEx txtChatChannel;
 
-
     [SerializeField] Transform transChatBulletView;
     GameObject chatBulletViewPrefab;
 
+    [SerializeField] UIEffectPlayer autoFightBossUIEffectPlayer;
 
 
     /// <summary>
@@ -266,6 +266,12 @@
         TimeMgr.Instance.OnDayEvent += OnDayEvent;
         ChatManager.Instance.OnUpdateTalkEvent += OnUpdateTalkEvent;
         UIManager.Instance.OnOpenWindow += OnOpenWindow;
+        AutoFightModel.Instance.OnAutoChallengeBossEvent += OnAutoChallengeBossEvent;
+        autoFightBossUIEffectPlayer.Stop();
+        if (AutoFightModel.Instance.isAutoChallengeBoss)
+        {
+            autoFightBossUIEffectPlayer.Play();
+        }
         Display();
         DisplayFirstChargeBtn();
         DisplayOSActivity();
@@ -274,6 +280,7 @@
         // battleWin.SetBattleField(BattleManager.Instance.storyBattleField);
 
         DelayPlayMusic().Forget();
+
     }
 
 
@@ -300,12 +307,24 @@
         TimeMgr.Instance.OnDayEvent -= OnDayEvent;
         ChatManager.Instance.OnUpdateTalkEvent -= OnUpdateTalkEvent;
         UIManager.Instance.OnOpenWindow -= OnOpenWindow;
-
+        AutoFightModel.Instance.OnAutoChallengeBossEvent += OnAutoChallengeBossEvent;
 
         //  鍏抽棴鐨勬椂鍊欐妸鎴樻枟鐣岄潰涔熺粰鍏充簡 铏界劧鏄湪澶栭潰寮�鐨�
         UIManager.Instance.CloseWindow<BattleWin>();
     }
 
+    private void OnAutoChallengeBossEvent(bool isStart)
+    {
+        if (isStart)
+        {
+            autoFightBossUIEffectPlayer.Play();
+        }
+        else
+        {
+            autoFightBossUIEffectPlayer.Stop();
+        }
+    }
+
     private void OnOpenWindow(UIBase win)
     {
         if (win is ChatWin)

--
Gitblit v1.8.0