From 7bd85eb8d0b9664f4645534b42c82ab0f32754d3 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 15 八月 2025 16:30:24 +0800
Subject: [PATCH] 50 【主界面】核心主体 - 装备部分掉落分解穿戴

---
 Main/System/KnapSack/PackManager.cs |   38 ++++++++++++++++++--------------------
 1 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/Main/System/KnapSack/PackManager.cs b/Main/System/KnapSack/PackManager.cs
index 568630d..b351c6e 100644
--- a/Main/System/KnapSack/PackManager.cs
+++ b/Main/System/KnapSack/PackManager.cs
@@ -14,7 +14,7 @@
     public event Action<PackType, string, bool> ChangeItemEvent; // 鑳屽寘绫诲瀷锛孏UID锛屾槸鍚﹀垱寤�
 
     //鍒犻櫎鐗╁搧锛屽彲鑳芥壒閲忓垹闄ゆ敞鎰忔晥鐜�
-    public event Action<PackType, string> DeleteItemEvent; // 鑳屽寘绫诲瀷锛孏UID
+    public event Action<PackType, string, int, int, int> DeleteItemEvent; // 鑳屽寘绫诲瀷锛孏UID, 鐗╁搧ID锛岀储寮�, 鍒犻櫎鍘熷洜
 
     // 鍗曠墿鍝佸埛鏂� 鍦ㄥ緱鍒版柊鐗╁搧銆佺墿鍝佹暟閲忕殑鏀瑰彉锛屾竻鐞嗚鐗╁搧鏃跺潎浼氳Е鍙� ; 浣�0725鏁翠釜鑳屽寘鍒锋柊涓嶈Е鍙戯紝濡傛灉鏈夐渶瑕佸崟鐙暟閲忓埛鏂颁簨浠跺彟澶栧鐞�
     // 瑙﹀彂姣旇緝棰戠箒锛岀晫闈娇鐢ㄦ椂鍙互鍋氫釜姹囨�诲悗寤惰繜鍒锋柊
@@ -25,8 +25,6 @@
     public event Action<int> refreshItemDayUseCountEvent;  //鍒锋柊鐗╁搧姣忔棩浣跨敤鏁伴噺
     public event Action<int> refreshItemSumUseCountEvent;  //鍒锋柊鐗╁搧鎬讳娇鐢ㄦ暟閲�
     public event Action<PackType, string, bool> RefreshItemLockEvent; //鐗╁搧閿佸畾鍒锋柊 鑳屽寘绫诲瀷锛実uid锛岄攣瀹氱姸鎬�
-
-    public bool isPlayBetterEquipEffect { get; set; }  //鏁寸悊鑳屽寘鏃舵槸鍚︽挱鏀剧壒鏁�
 
     
     private Dictionary<PackType, SinglePack> playerPackDict = new Dictionary<PackType, SinglePack>();
@@ -111,7 +109,6 @@
         itemSumUseCntDict.Clear();
         itemGUIDDict.Clear();
         PackGirdServerBuyCountDict.Clear();
-        isPlayBetterEquipEffect = false;
     }
 
 
@@ -181,10 +178,6 @@
             playerPackDict.Add(packType, new SinglePack(packType));
         }
 
-        if (isPlayBetterEquipEffect)
-        {
-            ItemLogicUtility.Instance.ClearSortedBetterEquip();
-        }
 
         for (int i = 0; i < packInfo.ItemCount; i++)
         {
@@ -192,10 +185,7 @@
             var item = playerPackDict[packType].UpdateItem(itemInfo);
             AddItemGUIDDict(item, true);
 
-            if (isPlayBetterEquipEffect)
-            {
-                ItemLogicUtility.Instance.SetBagSortBetterEquipList(GetItemByGuid(itemInfo.guid));
-            }
+
         }
 
         if (refrechPackEvent != null)
@@ -208,7 +198,6 @@
 
     public void UpdateItem(H0704_tagRolePackRefresh serverItem)
     {
-        isPlayBetterEquipEffect = false;
         SetLookIndex(null);
         PackType type = (PackType)serverItem.PackType;
         if (!playerPackDict.ContainsKey(type))
@@ -321,7 +310,6 @@
     public void RefreshItemCount(H0707_tagItemCountRefresh refresh)
     {
         SetLookIndex(null);
-        isPlayBetterEquipEffect = false;
         PackType type = (PackType)refresh.PackType;
         SinglePack singlePack = null;
         playerPackDict.TryGetValue(type, out singlePack);
@@ -367,7 +355,6 @@
 
     public void RemoveItem(H0709_tagClearItem clearItem)
     {
-        isPlayBetterEquipEffect = false;
         SetLookIndex(null);
         PackType type = (PackType)clearItem.PackType;
 
@@ -385,9 +372,9 @@
             guid = itemModel.guid;
             int itemId = itemModel.itemId;
 
-            DeleteItemDictByGUID(type, itemModel.guid);
-
             singlePack.RemoveItem(clearItem.ItemIndex);
+            DeleteItemDictByGUID(type, itemModel.guid,itemId, clearItem.ItemIndex, clearItem.ClearType);
+
             if (RefreshItemEvent != null)
             {
                 RefreshItemEvent(type, clearItem.ItemIndex, itemId);
@@ -411,7 +398,6 @@
 
     public void UseItemSuccess(H0706_tagUseItemSuccess success)
     {
-        isPlayBetterEquipEffect = false;
         SetLookIndex(null);
         if (success.PlayerID != PlayerDatas.Instance.baseData.PlayerID)
         {
@@ -441,14 +427,14 @@
         ChangeItemEvent?.Invoke(itemModel.packType, itemModel.guid, showNewItem);
     }
 
-    void DeleteItemDictByGUID(PackType type, string guid)
+    void DeleteItemDictByGUID(PackType type, string guid, int itemID = 0, int index = 0, int clearType = -1)
     {
         if (itemGUIDDict.ContainsKey(guid))
         {
             if (itemGUIDDict[guid].packType == type)
             {
                 itemGUIDDict.Remove(guid);
-                DeleteItemEvent?.Invoke(type, guid);
+                DeleteItemEvent?.Invoke(type, guid, itemID, index, clearType);
             }
         }
     }
@@ -740,6 +726,18 @@
         }
     }
 
+    public List<ItemModel> GetItems(PackType packType)
+    {
+        if (playerPackDict.ContainsKey(packType))
+        {
+            return playerPackDict[packType].GetItems();
+        }
+        else
+        {
+            return null;
+        }
+    }
+
     //閫氳繃id鎵剧墿鍝侊紝娉ㄦ剰妫�鏌ユ槸鍚︽寚瀹氳儗鍖�
     public string GetItemGUIDByID(int itemId, bool includeAuction = true, PackType packType = PackType.Item)
     {

--
Gitblit v1.8.0