From 0218597f66eb99cf1ebf13d57623107ed433b49a Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 01 九月 2025 16:06:52 +0800
Subject: [PATCH] 50 【主界面】核心主体 - 优化掉落

---
 Main/System/Equip/EquipModel.cs                                                    |    7 ++
 Main/System/Main/AutoFightModel.cs                                                 |    6 --
 Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs     |    2 
 Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB405_tagMCAddExp.cs |   16 ++--
 Main/System/Equip/ItemsOnFloor.cs                                                  |    7 +-
 Main/System/Main/HomeWin.cs                                                        |   19 ------
 Main/System/Equip/FloorItemCell.cs                                                 |   16 +----
 Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB405_tagMCAddExp.cs           |   36 ++++++------
 Main/System/Battle/BattleField/StoryBattleField.cs                                 |   13 ++++
 9 files changed, 54 insertions(+), 68 deletions(-)

diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs
index a87c36f..557ea5d 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs
@@ -8,7 +8,7 @@
     public static event Action beforePlayerDataInitializeEvent;
     public static event Action afterPlayerDataInitializeEvent;
     public static event Action switchAccountEvent;
-    public static bool isAfterPlayerDataInitialize = false; //鍙互鐢ㄦ潵鍒ゆ柇鏄惁鍒囧彿锛屽鐭殏鐨勬柇绾块噸杩�
+    public static bool isAfterPlayerDataInitialize = false; //鍙尯鍒嗘柇绾块噸杩炶繕鏄畬鍏ㄩ噸鐧�; 鍒囧埌鐧诲綍鍦烘櫙浼氶噸缃负false锛屾晠鍙垽鏂柇绾块噸杩�
     public static uint playerIdBuf = 0;
 
     public override void Done(GameNetPackBasic vNetPack)
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB405_tagMCAddExp.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB405_tagMCAddExp.cs
index 8a5e276..37e6694 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB405_tagMCAddExp.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB405_tagMCAddExp.cs
@@ -1,11 +1,11 @@
 using UnityEngine;
 using System.Collections;
 
-//B4 05 鑾峰緱缁忛獙 #tagMCAddExp
-
-public class DTCB405_tagMCAddExp : DtcBasic {
-    public override void Done(GameNetPackBasic vNetPack) {
-        base.Done(vNetPack);
-        HB405_tagMCAddExp vNetData = vNetPack as HB405_tagMCAddExp;
-    }
-}
+//B4 05 鑾峰緱缁忛獙 #tagMCAddExp
+
+public class DTCB405_tagMCAddExp : DtcBasic {
+    public override void Done(GameNetPackBasic vNetPack) {
+        base.Done(vNetPack);
+        HB405_tagMCAddExp vNetData = vNetPack as HB405_tagMCAddExp;
+    }
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB405_tagMCAddExp.cs b/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB405_tagMCAddExp.cs
index f6928c1..0cfae38 100644
--- a/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB405_tagMCAddExp.cs
+++ b/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB405_tagMCAddExp.cs
@@ -1,21 +1,21 @@
 using UnityEngine;
 using System.Collections;
 
-//B4 05 鑾峰緱缁忛獙 #tagMCAddExp
-
-public class HB405_tagMCAddExp : GameNetPackBasic {
-    public uint ExpPoint;    // 鍗曚綅浜跨偣
-    public uint Exp;    // 鍗曚綅鐐�
-    public byte Source;    //缁忛獙鑾峰彇鏉ユ簮
-
-    public HB405_tagMCAddExp () {
-        _cmd = (ushort)0xB405;
-    }
-
-    public override void ReadFromBytes (byte[] vBytes) {
-        TransBytes (out ExpPoint, vBytes, NetDataType.DWORD);
-        TransBytes (out Exp, vBytes, NetDataType.DWORD);
-        TransBytes (out Source, vBytes, NetDataType.BYTE);
-    }
-
-}
+//B4 05 鑾峰緱缁忛獙 #tagMCAddExp
+
+public class HB405_tagMCAddExp : GameNetPackBasic {
+    public uint ExpPoint;    // 鍗曚綅浜跨偣
+    public uint Exp;    // 鍗曚綅鐐�
+    public byte Source;    //缁忛獙鑾峰彇鏉ユ簮
+
+    public HB405_tagMCAddExp () {
+        _cmd = (ushort)0xB405;
+    }
+
+    public override void ReadFromBytes (byte[] vBytes) {
+        TransBytes (out ExpPoint, vBytes, NetDataType.DWORD);
+        TransBytes (out Exp, vBytes, NetDataType.DWORD);
+        TransBytes (out Source, vBytes, NetDataType.BYTE);
+    }
+
+}
diff --git a/Main/System/Battle/BattleField/StoryBattleField.cs b/Main/System/Battle/BattleField/StoryBattleField.cs
index fac13d6..bf0e810 100644
--- a/Main/System/Battle/BattleField/StoryBattleField.cs
+++ b/Main/System/Battle/BattleField/StoryBattleField.cs
@@ -194,6 +194,19 @@
 
                 BattleDebug.LogError("HandModeOperationAgent DoNext  2");
 
+                //鍐嶆鏌ヤ竴娆℃湁娌¤澶囨湭澶勭悊
+                if (PackManager.Instance.GetSinglePack(PackType.DropItem).GetItems().Count > 0)
+                {
+                    //鏋勫缓鎵�鏈夌墿鍝�
+                    List<int> dropList = new List<int>();
+                    foreach (var item in PackManager.Instance.GetSinglePack(PackType.DropItem).GetItems())
+                    {
+                        dropList.Add(item.gridIndex);
+                    }
+                    EquipModel.Instance.NotifyItemDrop(dropList, null);
+                    return;
+                }
+
                 //	妫�鏌ヤ竴涓嬮敜瀛愮殑娑堣��
                 if (!ItemLogicUtility.CheckCurrencyCount(41, PlayerDatas.Instance.baseData.UseHarmerCount, 2))
                 {
diff --git a/Main/System/Equip/EquipModel.cs b/Main/System/Equip/EquipModel.cs
index b4c4148..7135882 100644
--- a/Main/System/Equip/EquipModel.cs
+++ b/Main/System/Equip/EquipModel.cs
@@ -25,6 +25,8 @@
     public int lastShowEquipIndex = -1;  //涓婁竴娆$晫闈㈡樉绀鸿澶囩殑绱㈠紩锛屾嬀鍙栧悗鐗╁搧娑堝け闇�璁板綍涓嬪仛琛ㄧ幇
     public Queue<int> waitEquipOP = new Queue<int>();    //绛夊緟鎿嶄綔鐨勮澶囷紝闇�瑕佸拰UI浜や簰纭 涓嶅惈鍒嗚В
 
+    public List<int> lastDropIndexs = new List<int>(); //涓婁竴娆℃帀钀界墿鍝佺储寮�
+
     public override void Init()
     {
         DTCA814_tagMCMakeItemAnswer.MakeItemAnswerEvent += OnEquipResult;
@@ -60,7 +62,9 @@
         selectFloorEquip = null;
         waitEquipOP.Clear();
         lastShowEquipIndex = -1;
+        lastDropIndexs.Clear();
     }
+
 
     public static int GetItemServerEquipPlace(int itemId)
     {
@@ -81,6 +85,9 @@
 
     void OnDropEvent(string guid, BattleDrops drops, Action action)
     {
+        if (!string.IsNullOrEmpty(guid))
+            return;
+        lastDropIndexs = drops.dropItemPackIndex;
         NotifyItemDrop(drops.dropItemPackIndex, drops.rectTransform);
         action?.Invoke();
     }
diff --git a/Main/System/Equip/FloorItemCell.cs b/Main/System/Equip/FloorItemCell.cs
index 9264178..6706b9a 100644
--- a/Main/System/Equip/FloorItemCell.cs
+++ b/Main/System/Equip/FloorItemCell.cs
@@ -45,19 +45,9 @@
             uieff.Play();
         }
 
-        if (rect == null)
-        {
-            if (startPos == new Vector2(10000, 10000))
-            {
-                //閬垮厤澶氭闅忔満
-                startPos = new Vector2(UnityEngine.Random.Range(-150, 150), UnityEngine.Random.Range(-150, 150));
-            }
-        }
-        else
-        {
-            //startPos鐨勪綅缃繘琛岃寖鍥撮殢鏈�
-            startPos = new Vector2(rect.localPosition.x + UnityEngine.Random.Range(-60, 60), rect.localPosition.y + UnityEngine.Random.Range(-60, 60));
-        }
+       
+        this.transform.position = rect.position;
+        startPos = new Vector2(transform.localPosition.x + UnityEngine.Random.Range(-30, 30), transform.localPosition.y + UnityEngine.Random.Range(50, 100));
         if (isAnimate)
         {
             isPlaying = true;
diff --git a/Main/System/Equip/ItemsOnFloor.cs b/Main/System/Equip/ItemsOnFloor.cs
index f3f8555..12e456e 100644
--- a/Main/System/Equip/ItemsOnFloor.cs
+++ b/Main/System/Equip/ItemsOnFloor.cs
@@ -11,6 +11,7 @@
     [SerializeField] RectTransform floorUI;     //鎺夎惤閬撳叿鏄剧ず鐨勭埗绫�
     [SerializeField] FloorItemCell floorItemCell;    //闈炶澶囨樉绀虹粍浠�
     [SerializeField] MoneyMoveByPath moneyMoveByPathCell;     //鎺夎惤鐗╅噾閽�
+    [SerializeField] RectTransform defaultDropRect;     //榛樿鎺夎惤浣嶇疆
 
     FloorItemCell[] floorItemCells = new FloorItemCell[20];    //鍖呭惈闈炶澶囩殑鎴樺埄鍝佹帀钀�
     MoneyMoveByPath[] moneyMoveByPathArr = new MoneyMoveByPath[20];  //鎺夎惤璐у竵锛岄噾閽憋紝缁忛獙绛�
@@ -40,7 +41,7 @@
     private void OnEnable()
     {
         //涓荤晫闈㈡墦寮�鍜屾樉闅愰兘瑕佸埛鏂�
-        Display();
+        Display(true, EquipModel.Instance.lastDropIndexs);
         EquipModel.Instance.OnItemDropEvent += NotifyPlayItemDrop;
         PackManager.Instance.DeleteItemEvent += DeleteDropItem;
     }
@@ -98,14 +99,14 @@
                 item.SetActive(false);
                 continue;
             }
-            if (indexList != null && !indexList.Contains(i))
+            if (!indexList.IsNullOrEmpty() && !indexList.Contains(i))
             {
                 //涓嶅共娑夊叾浠栨帀钀界墿鍝�
                 continue;
             }
 
             item.SetActive(true);
-            item.Display(i, isAnimate, rect);
+            item.Display(i, isAnimate, rect == null ? defaultDropRect : rect);
         }
     }
 
diff --git a/Main/System/Main/AutoFightModel.cs b/Main/System/Main/AutoFightModel.cs
index 8e9a422..1cf1356 100644
--- a/Main/System/Main/AutoFightModel.cs
+++ b/Main/System/Main/AutoFightModel.cs
@@ -75,7 +75,6 @@
     public override void Init()
     {
         ParseConfig();
-        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerInit;
         BattleManager.Instance.onBattleFieldCreate += OnCreateBattleField;
         EventBroadcast.Instance.AddListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnSkillCast);
@@ -84,7 +83,6 @@
 
     public override void Release()
     {
-        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
         BattleManager.Instance.onBattleFieldCreate -= OnCreateBattleField;
         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= BeforePlayerInit;
 
@@ -99,10 +97,6 @@
         maxCost = autoCostWithBlessLV.Length;
     }
 
-    void OnPlayerLoginOk()
-    {
-        //鐧诲綍鏃舵湁瑁呭鐨勫鐞�
-    }
 
     void BeforePlayerInit()
     {
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index 7c71a7f..4b6d0cd 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -72,25 +72,6 @@
 
         autoBtn.AddListener(() =>
         {
-            // //娴嬭瘯鎷惧彇鎵�鏈夌墿鍝�
-            // var items = PackManager.Instance.GetItems(PackType.DropItem);
-            // List<int> dropindexs = new List<int>();
-            // for (int i = 0; i < items.Count; i++)
-            // {
-            //     var item = items[i];
-            //     if (dropindexs.Count > 5)
-            //     {
-            //         EquipModel.Instance.NotifyItemDrop(dropindexs, BattleManager.Instance.storyBattleField.battleRootNode.blueTeamNodeList[Random.Range(0, 5)].GetComponent<RectTransform>());
-            //         dropindexs.Clear();
-            //     }
-
-            //     dropindexs.Add(item.gridIndex);
-            // }
-            // if (dropindexs.Count > 0)
-            // {
-            //     EquipModel.Instance.NotifyItemDrop(dropindexs, BattleManager.Instance.storyBattleField.battleRootNode.blueTeamNodeList[Random.Range(0, 5)].GetComponent<RectTransform>());
-            //     dropindexs.Clear();
-            // }
             if (!FuncOpen.Instance.IsFuncOpen(108, true))
             {
                 return;

--
Gitblit v1.8.0