Browse Source

换装显示新获得标签

zhaoyang 3 years ago
parent
commit
3ce085039c

+ 1 - 1
FGUIProject/assets/DressUp/components/PartsListItem.xml

@@ -12,6 +12,6 @@
     <loader id="n5_8xpg" name="ScoreType" xy="19,125" size="50,50" touchable="false" url="ui://eg2y0ldp842s6h" fill="scale"/>
     <loader id="n5_8xpg" name="ScoreType" xy="19,125" size="50,50" touchable="false" url="ui://eg2y0ldp842s6h" fill="scale"/>
     <text id="n6_8xpg" name="txtScore" xy="66,128" pivot="0.5,0" size="77,41" fontSize="30" color="#fcf7e6" align="center" strokeColor="#a7854a" strokeSize="2" autoClearText="true" text="3500"/>
     <text id="n6_8xpg" name="txtScore" xy="66,128" pivot="0.5,0" size="77,41" fontSize="30" color="#fcf7e6" align="center" strokeColor="#a7854a" strokeSize="2" autoClearText="true" text="3500"/>
     <image id="n8_pjip" name="imgNeed" src="pjip2z" fileName="images/hz_bcbc_1.png" xy="2,63"/>
     <image id="n8_pjip" name="imgNeed" src="pjip2z" fileName="images/hz_bcbc_1.png" xy="2,63"/>
-    <image id="n10_ovm4" name="imgNew" src="pzq19p" fileName="imagesExport/cj_hd_xin.png" pkg="eg2y0ldp" xy="142,107" alpha="0"/>
+    <image id="n10_ovm4" name="imgNew" src="pzq19p" fileName="imagesExport/cj_hd_xin.png" pkg="eg2y0ldp" xy="142,107"/>
   </displayList>
   </displayList>
 </component>
 </component>

+ 1 - 1
FGUIProject/assets/DressUp/components/TypeItem.xml

@@ -3,6 +3,6 @@
   <displayList>
   <displayList>
     <loader id="n0_k6he" name="icon" xy="14,0" size="128,161" url="ui://mbo439wbq08x9" align="center" vAlign="middle" autoSize="true" playing="false" clearOnPublish="true"/>
     <loader id="n0_k6he" name="icon" xy="14,0" size="128,161" url="ui://mbo439wbq08x9" align="center" vAlign="middle" autoSize="true" playing="false" clearOnPublish="true"/>
     <image id="n3_pjip" name="imgNeed" src="pjip2z" fileName="images/hz_bcbc_1.png" xy="0,0"/>
     <image id="n3_pjip" name="imgNeed" src="pjip2z" fileName="images/hz_bcbc_1.png" xy="0,0"/>
-    <image id="n4_ovm4" name="imgNew" src="pzq19p" fileName="imagesExport/cj_hd_xin.png" pkg="eg2y0ldp" xy="-6,63" alpha="0"/>
+    <image id="n4_ovm4" name="imgNew" src="pzq19p" fileName="imagesExport/cj_hd_xin.png" pkg="eg2y0ldp" xy="-6,63"/>
   </displayList>
   </displayList>
 </component>
 </component>

+ 2 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs

@@ -75,5 +75,7 @@ namespace GFGGame
         public const string FRIEND_ADD = "FRIEND_ADD";//新增好友
         public const string FRIEND_ADD = "FRIEND_ADD";//新增好友
         public const string FRIEND_REMOVE = "FRIEND_REMOVE";//删除好友
         public const string FRIEND_REMOVE = "FRIEND_REMOVE";//删除好友
         public const string FRIEND_APPLY_CHANGE = "FRIEND_APPLY_CHANGE";//好友申请列表变化
         public const string FRIEND_APPLY_CHANGE = "FRIEND_APPLY_CHANGE";//好友申请列表变化
+
+        public const string ITEM_READ = "ITEM_READ";//物品已读回复
     }
     }
 }
 }

+ 58 - 20
GameClient/Assets/Game/HotUpdate/Data/DressUpMenuItemDataManager.cs

@@ -26,13 +26,13 @@ namespace GFGGame
         public static void InitData()
         public static void InitData()
         {
         {
             _itemDatas.Clear();
             _itemDatas.Clear();
+            _newItemdata.Clear();
         }
         }
         public static void Clear()
         public static void Clear()
         {
         {
             selectRarityList.Clear();
             selectRarityList.Clear();
             selectScoreList.Clear();
             selectScoreList.Clear();
             selectTagList.Clear();
             selectTagList.Clear();
-            _newItemdata.Clear();
         }
         }
         public static void Add(int value)
         public static void Add(int value)
         {
         {
@@ -94,6 +94,13 @@ namespace GFGGame
         {
         {
             arrayList.Sort((int a, int b) =>
             arrayList.Sort((int a, int b) =>
             {
             {
+                bool isNewA = CheckIsDressUpItemNew(a);
+                bool isNewB = CheckIsDressUpItemNew(b);
+                if (isNewA != isNewB)
+                {
+                    if (isNewA) return -1;
+                    if (isNewB) return 1;
+                }
                 int scoreA = GetItemScore(a);
                 int scoreA = GetItemScore(a);
                 int scoreB = GetItemScore(b);
                 int scoreB = GetItemScore(b);
                 if (scoreB > scoreA)
                 if (scoreB > scoreA)
@@ -112,6 +119,13 @@ namespace GFGGame
         {
         {
             arrayList.Sort((int a, int b) =>
             arrayList.Sort((int a, int b) =>
             {
             {
+                bool isNewA = CheckIsDressUpItemNew(a);
+                bool isNewB = CheckIsDressUpItemNew(b);
+                if (isNewA != isNewB)
+                {
+                    if (isNewA) return -1;
+                    if (isNewB) return 1;
+                }
                 int scoreA = GetItemScore(a);
                 int scoreA = GetItemScore(a);
                 int scoreB = GetItemScore(b);
                 int scoreB = GetItemScore(b);
                 if (scoreB < scoreA)
                 if (scoreB < scoreA)
@@ -133,6 +147,7 @@ namespace GFGGame
             {
             {
                 int typeA = ItemUtilCS.GetItemSubType(a);
                 int typeA = ItemUtilCS.GetItemSubType(a);
                 int typeB = ItemUtilCS.GetItemSubType(b);
                 int typeB = ItemUtilCS.GetItemSubType(b);
+
                 int scoreA = GetItemScore(a);
                 int scoreA = GetItemScore(a);
                 int scoreB = GetItemScore(b);
                 int scoreB = GetItemScore(b);
                 if (typeB < typeA)
                 if (typeB < typeA)
@@ -162,10 +177,14 @@ namespace GFGGame
             {
             {
                 ItemCfg itemCfgA = ItemCfgArray.Instance.GetCfg(a);
                 ItemCfg itemCfgA = ItemCfgArray.Instance.GetCfg(a);
                 ItemCfg itemCfgB = ItemCfgArray.Instance.GetCfg(b);
                 ItemCfg itemCfgB = ItemCfgArray.Instance.GetCfg(b);
-                if (CheckIsDressItemNew(b) && !CheckIsDressItemNew(a))
+                bool isNewA = CheckIsDressUpItemNew(a);
+                bool isNewB = CheckIsDressUpItemNew(b);
+                if (isNewA != isNewB)
                 {
                 {
-                    return 1;
+                    if (isNewA) return -1;
+                    if (isNewB) return 1;
                 }
                 }
+
                 if (itemCfgB.rarity > itemCfgA.rarity)
                 if (itemCfgB.rarity > itemCfgA.rarity)
                 {
                 {
                     return 1;
                     return 1;
@@ -185,10 +204,14 @@ namespace GFGGame
             {
             {
                 ItemCfg itemCfgA = ItemCfgArray.Instance.GetCfg(a);
                 ItemCfg itemCfgA = ItemCfgArray.Instance.GetCfg(a);
                 ItemCfg itemCfgB = ItemCfgArray.Instance.GetCfg(b);
                 ItemCfg itemCfgB = ItemCfgArray.Instance.GetCfg(b);
-                if (CheckIsDressItemNew(b) && !CheckIsDressItemNew(a))
+                bool isNewA = CheckIsDressUpItemNew(a);
+                bool isNewB = CheckIsDressUpItemNew(b);
+                if (isNewA != isNewB)
                 {
                 {
-                    return 1;
+                    if (isNewA) return -1;
+                    if (isNewB) return 1;
                 }
                 }
+
                 if (itemCfgB.rarity < itemCfgA.rarity)
                 if (itemCfgB.rarity < itemCfgA.rarity)
                 {
                 {
                     return 1;
                     return 1;
@@ -465,7 +488,7 @@ namespace GFGGame
         }
         }
 
 
 
 
-        private static void AddNewDressItem(int value)
+        public static void AddNewDressItem(int value)
         {
         {
             int subType = ItemUtilCS.GetItemSubType(value);
             int subType = ItemUtilCS.GetItemSubType(value);
             if (!_newItemdata.ContainsKey(subType))
             if (!_newItemdata.ContainsKey(subType))
@@ -474,36 +497,51 @@ namespace GFGGame
             }
             }
             _newItemdata[subType].Add(value);
             _newItemdata[subType].Add(value);
         }
         }
-        public static void RemoveNewDressItem(int subType, int itemId)
+        public static void RemoveNewDressItem(int itemId)
         {
         {
+            int subType = ItemCfgArray.Instance.GetCfg(itemId).subType;
             if (_newItemdata.ContainsKey(subType) && _newItemdata[subType].IndexOf(itemId) >= 0)
             if (_newItemdata.ContainsKey(subType) && _newItemdata[subType].IndexOf(itemId) >= 0)
             {
             {
                 _newItemdata[subType].Remove(itemId);
                 _newItemdata[subType].Remove(itemId);
             }
             }
         }
         }
-        public static bool CheckIsSubtypeNew(int subType)
+        //检测一级菜单是否有展示新增
+        public static bool CheckIsFirstMenuNew(int menuId)
         {
         {
-            DressUpMenuItemCfg1 cfg1 = DressUpMenuItemCfg1Array.Instance.GetCfg(subType);
+            if (_newItemdata.Count == 0) return false;
 
 
-            if (_newItemdata.ContainsKey(subType) && _newItemdata.Count > 0)
-            {
-                return true;
-            }
-            else if (cfg1.subMenusArr.Length > 0)
+            DressUpMenuItemCfg1 cfg1 = DressUpMenuItemCfg1Array.Instance.GetCfg(menuId);
+            if (cfg1.subMenusArr.Length > 0)//有二级菜单
             {
             {
                 foreach (int id2 in cfg1.subMenusArr)
                 foreach (int id2 in cfg1.subMenusArr)
                 {
                 {
-                    DressUpMenuItemCfg2 cfg2 = DressUpMenuItemCfg2Array.Instance.GetCfg(id2);
-                    if (cfg2.type == subType && _newItemdata.ContainsKey(subType) && _newItemdata.Count > 0)
-                    {
-                        return true;
-                    }
+                    if (CheckIsSecondMenuNew(id2)) return true;
                 }
                 }
             }
             }
+            else
+            {
+                if (_newItemdata.ContainsKey(cfg1.type) && _newItemdata[cfg1.type].Count > 0) return true;
+            }
+
+            return false;
+        }
+        //检测二级菜单是否有展示新增
+        public static bool CheckIsSecondMenuNew(int subMenuId)
+        {
+            if (_newItemdata.Count == 0) return false;
+            DressUpMenuItemCfg2 cfg2 = DressUpMenuItemCfg2Array.Instance.GetCfg(subMenuId);
+
+            if (_newItemdata.ContainsKey(cfg2.type) && _newItemdata[cfg2.type].Count > 0)
+            {
+                return true;
+            }
             return false;
             return false;
         }
         }
-        public static bool CheckIsDressItemNew(int itemId)
+
+        //检测服装部件是否为新增
+        public static bool CheckIsDressUpItemNew(int itemId)
         {
         {
+            if (_newItemdata.Count == 0) return false;
             int subType = ItemUtilCS.GetItemSubType(itemId);
             int subType = ItemUtilCS.GetItemSubType(itemId);
             return _newItemdata.ContainsKey(subType) && _newItemdata[subType].IndexOf(itemId) >= 0;
             return _newItemdata.ContainsKey(subType) && _newItemdata[subType].IndexOf(itemId) >= 0;
         }
         }

+ 22 - 1
GameClient/Assets/Game/HotUpdate/ServerProxy/ItemProxy.cs

@@ -25,7 +25,11 @@ namespace GFGGame
                     ItemDataManager.InitServerData(response.Items);
                     ItemDataManager.InitServerData(response.Items);
                     //自定义套装
                     //自定义套装
                     CustomSuitDataManager.InitServerData(response.CustomSuits);
                     CustomSuitDataManager.InitServerData(response.CustomSuits);
-                    CustomSuitDataManager.currentIndex=response.CustomSuitPos;
+                    CustomSuitDataManager.currentIndex = response.CustomSuitPos;
+                    for (int i = 0; i < response.NewItems.Count; i++)
+                    {
+                        DressUpMenuItemDataManager.AddNewDressItem(response.NewItems[i]);
+                    }
                     //!!!必须放在最后,标记数据初始化完成
                     //!!!必须放在最后,标记数据初始化完成
                     GameGlobal.DataInited = true;
                     GameGlobal.DataInited = true;
                     return true;
                     return true;
@@ -35,5 +39,22 @@ namespace GFGGame
             return false;
             return false;
 
 
         }
         }
+
+        //赠送
+        public static async ETTask<bool> ReqSetItemRead(int itemID)
+        {
+            S2C_SetItemRead response = null;
+            response = (S2C_SetItemRead)await MessageHelper.SendToServer(new C2S_SetItemRead() { ItemId = itemID });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    DressUpMenuItemDataManager.RemoveNewDressItem(response.ItemId);
+                    // EventAgent.DispatchEvent(ConstMessage.ITEM_READ);
+                    return true;
+                }
+            }
+            return false;
+        }
     }
     }
 }
 }

+ 2 - 0
GameClient/Assets/Game/HotUpdate/Utils/SuitUtil.cs

@@ -94,6 +94,7 @@ namespace GFGGame
             {
             {
                 SuitCfg suitCfgA = SuitCfgArray.Instance.GetCfg(a);
                 SuitCfg suitCfgA = SuitCfgArray.Instance.GetCfg(a);
                 SuitCfg suitCfgB = SuitCfgArray.Instance.GetCfg(b);
                 SuitCfg suitCfgB = SuitCfgArray.Instance.GetCfg(b);
+
                 if (suitCfgB.rarity > suitCfgA.rarity)
                 if (suitCfgB.rarity > suitCfgA.rarity)
                 {
                 {
                     return 1;
                     return 1;
@@ -113,6 +114,7 @@ namespace GFGGame
             {
             {
                 SuitCfg suitCfgA = SuitCfgArray.Instance.GetCfg(a);
                 SuitCfg suitCfgA = SuitCfgArray.Instance.GetCfg(a);
                 SuitCfg suitCfgB = SuitCfgArray.Instance.GetCfg(b);
                 SuitCfg suitCfgB = SuitCfgArray.Instance.GetCfg(b);
+
                 if (suitCfgB.rarity < suitCfgA.rarity)
                 if (suitCfgB.rarity < suitCfgA.rarity)
                 {
                 {
                     return 1;
                     return 1;

+ 17 - 7
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpFightView.cs

@@ -352,7 +352,7 @@ namespace GFGGame
             {
             {
                 if (_currentList2 != null)
                 if (_currentList2 != null)
                 {
                 {
-                    this.showListType2();
+                    this.showListType2(_currentList2);
                 }
                 }
                 else
                 else
                 {
                 {
@@ -462,6 +462,7 @@ namespace GFGGame
         {
         {
             _currentList2 = null;
             _currentList2 = null;
             currentListType = DressUpListType.List1;
             currentListType = DressUpListType.List1;
+            _ui.m_comListType1.m_listType.numItems = DressUpMenuItemCfg1Array.Instance.dataArray.Length;
             GTween.To(_ui.target.width, listType1X, 0.5f)
             GTween.To(_ui.target.width, listType1X, 0.5f)
                 .SetTarget(_ui.m_comListType1.target)
                 .SetTarget(_ui.m_comListType1.target)
                 .OnUpdate((GTweener t) =>
                 .OnUpdate((GTweener t) =>
@@ -693,7 +694,7 @@ namespace GFGGame
             //typeItem.m_imgTitle.url = "ui://DressUp/hz_iconzi_" + item1.id;
             //typeItem.m_imgTitle.url = "ui://DressUp/hz_iconzi_" + item1.id;
             typeItem.target.data = item1.id;
             typeItem.target.data = item1.id;
             typeItem.m_imgNeed.visible = ItemUtil.CheckMenuType1(_fightCfg.needItemId, _fightCfg.needSuitId, item1.id);
             typeItem.m_imgNeed.visible = ItemUtil.CheckMenuType1(_fightCfg.needItemId, _fightCfg.needSuitId, item1.id);
-            typeItem.m_imgNew.visible = DressUpMenuItemDataManager.CheckIsSubtypeNew(item1.id);
+            typeItem.m_imgNew.visible = DressUpMenuItemDataManager.CheckIsFirstMenuNew(item1.id);
             UI_TypeItem.ProxyEnd();
             UI_TypeItem.ProxyEnd();
         }
         }
 
 
@@ -706,7 +707,7 @@ namespace GFGGame
             typeItem.target.data = item2.id;
             typeItem.target.data = item2.id;
             var subType = ItemUtilCS.GetItemSubType(_fightCfg.needItemId);
             var subType = ItemUtilCS.GetItemSubType(_fightCfg.needItemId);
             typeItem.m_imgNeed.visible = subType == item2.type;
             typeItem.m_imgNeed.visible = subType == item2.type;
-            typeItem.m_imgNew.visible = DressUpMenuItemDataManager.CheckIsSubtypeNew(item2.id);
+            typeItem.m_imgNew.visible = DressUpMenuItemDataManager.CheckIsSecondMenuNew(item2.id);
 
 
             UI_TypeItem.ProxyEnd();
             UI_TypeItem.ProxyEnd();
         }
         }
@@ -727,7 +728,7 @@ namespace GFGGame
                 listItem.m_txtScore.text = "" + SuitUtil.GetSuitScore(id);
                 listItem.m_txtScore.text = "" + SuitUtil.GetSuitScore(id);
                 RarityIconController.UpdateRarityIcon(listItem.m_rarity, id, false, true);
                 RarityIconController.UpdateRarityIcon(listItem.m_rarity, id, false, true);
                 listItem.m_loaBorder.url = "ui://DressUp/hz_kuangk_" + suitCfg.rarity;
                 listItem.m_loaBorder.url = "ui://DressUp/hz_kuangk_" + suitCfg.rarity;
-
+                listItem.m_imgNew.visible = false;
             }
             }
             else
             else
             {
             {
@@ -737,9 +738,12 @@ namespace GFGGame
                 listItem.m_iconSelected.visible = EquipDataCache.cacher.CheckDressUpItemIsOn(id);
                 listItem.m_iconSelected.visible = EquipDataCache.cacher.CheckDressUpItemIsOn(id);
                 listItem.m_txtScore.text = "" + DressUpMenuItemDataManager.GetItemScore(id);
                 listItem.m_txtScore.text = "" + DressUpMenuItemDataManager.GetItemScore(id);
                 listItem.m_loaBorder.url = "ui://DressUp/hz_kuangk_" + itemCfg.rarity;
                 listItem.m_loaBorder.url = "ui://DressUp/hz_kuangk_" + itemCfg.rarity;
-                listItem.m_imgNew.visible = DressUpMenuItemDataManager.CheckIsDressItemNew(id);
-                DressUpMenuItemDataManager.RemoveNewDressItem(_currentMenuType, id);
-
+                bool isNew = DressUpMenuItemDataManager.CheckIsDressUpItemNew(id);
+                listItem.m_imgNew.visible = isNew;
+                if (isNew)
+                {
+                    ItemProxy.ReqSetItemRead(id).Coroutine();
+                }
                 RarityIconController.UpdateRarityIcon(listItem.m_rarity, id, false);
                 RarityIconController.UpdateRarityIcon(listItem.m_rarity, id, false);
                 ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType, true);
                 ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType, true);
             }
             }
@@ -794,6 +798,12 @@ namespace GFGGame
             // listItem.m_txtScore.visible = false;
             // listItem.m_txtScore.visible = false;
             //listItem.m_ScoreType.visible = true;
             //listItem.m_ScoreType.visible = true;
             listItem.m_imgNeed.visible = false;
             listItem.m_imgNeed.visible = false;
+            bool isNew = DressUpMenuItemDataManager.CheckIsDressUpItemNew(id);
+            listItem.m_imgNew.visible = isNew;
+            if (isNew)
+            {
+                ItemProxy.ReqSetItemRead(id).Coroutine();
+            }
             UI_PartsListItem.ProxyEnd();
             UI_PartsListItem.ProxyEnd();
 
 
 
 

+ 16 - 11
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs

@@ -208,17 +208,11 @@ namespace GFGGame
             }
             }
             else
             else
             {
             {
-                // if (_ui.m_partsList.m_list.numItems <= 0)
-                // {
-                //     PromptController.Instance.ShowFloatTextPrompt("未获得此类部件");
-                //     return;
-                // }
                 if (this.showListParts(item1.type) == false)
                 if (this.showListParts(item1.type) == false)
                 {
                 {
                     PromptController.Instance.ShowFloatTextPrompt("未获得此类部件");
                     PromptController.Instance.ShowFloatTextPrompt("未获得此类部件");
                     return;
                     return;
                 }
                 }
-                // this.showListParts(item1.type);
             }
             }
             this.hideListType1();
             this.hideListType1();
             UpdateListPartsSelected();
             UpdateListPartsSelected();
@@ -324,7 +318,7 @@ namespace GFGGame
             {
             {
                 if (_currentList2 != null)
                 if (_currentList2 != null)
                 {
                 {
-                    this.showListType2();
+                    this.showListType2(_currentList2);
                     // _ui.m_comListType2.m_listType.numItems = _ui.m_comListType2.m_listType.numItems;
                     // _ui.m_comListType2.m_listType.numItems = _ui.m_comListType2.m_listType.numItems;
                 }
                 }
                 else
                 else
@@ -558,7 +552,7 @@ namespace GFGGame
             //typeItem.m_imgTitle.url = "ui://DressUp/hz_iconzi_" + item1.id;
             //typeItem.m_imgTitle.url = "ui://DressUp/hz_iconzi_" + item1.id;
             typeItem.target.data = item1.id;
             typeItem.target.data = item1.id;
             typeItem.m_imgNeed.visible = false;
             typeItem.m_imgNeed.visible = false;
-            typeItem.m_imgNew.visible = false;// DressUpMenuItemDataManager.CheckIsSubtypeNew(item1.id);
+            typeItem.m_imgNew.visible = DressUpMenuItemDataManager.CheckIsFirstMenuNew(item1.id);
 
 
             UI_TypeItem.ProxyEnd();
             UI_TypeItem.ProxyEnd();
         }
         }
@@ -571,7 +565,7 @@ namespace GFGGame
             //typeItem.m_imgTitle.url = "ui://DressUp/hz_iconziej_" + item2.id;
             //typeItem.m_imgTitle.url = "ui://DressUp/hz_iconziej_" + item2.id;
             typeItem.target.data = item2.id;
             typeItem.target.data = item2.id;
             typeItem.m_imgNeed.visible = false;
             typeItem.m_imgNeed.visible = false;
-            typeItem.m_imgNew.visible = false;//  DressUpMenuItemDataManager.CheckIsSubtypeNew(item2.id);
+            typeItem.m_imgNew.visible = DressUpMenuItemDataManager.CheckIsSecondMenuNew(item2.id);
 
 
             UI_TypeItem.ProxyEnd();
             UI_TypeItem.ProxyEnd();
 
 
@@ -613,8 +607,13 @@ namespace GFGGame
                 ItemDataManager.GetMainScore(id, out mainScore, out mainValuel);
                 ItemDataManager.GetMainScore(id, out mainScore, out mainValuel);
                 listItem.m_ScoreType.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + mainScore);
                 listItem.m_ScoreType.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + mainScore);
 
 
-                listItem.m_imgNew.visible = false;//  DressUpMenuItemDataManager.CheckIsDressItemNew(id);
-                DressUpMenuItemDataManager.RemoveNewDressItem(_currentMenuType, id);
+                bool isNew = DressUpMenuItemDataManager.CheckIsDressUpItemNew(id);
+                listItem.m_imgNew.visible = isNew;
+                if (isNew)
+                {
+                    ItemProxy.ReqSetItemRead(id).Coroutine();
+                }
+                // DressUpMenuItemDataManager.RemoveNewDressItem(_currentMenuType, id);
             }
             }
             if (listItem.target.data == null)
             if (listItem.target.data == null)
             {
             {
@@ -671,6 +670,12 @@ namespace GFGGame
             listItem.m_txtScore.visible = false;
             listItem.m_txtScore.visible = false;
             //listItem.m_ScoreType.visible = true;
             //listItem.m_ScoreType.visible = true;
             listItem.m_imgNeed.visible = false;
             listItem.m_imgNeed.visible = false;
+            bool isNew = DressUpMenuItemDataManager.CheckIsDressUpItemNew(id);
+            listItem.m_imgNew.visible = isNew;
+            if (isNew)
+            {
+                ItemProxy.ReqSetItemRead(id).Coroutine();
+            }
             UI_PartsListItem.ProxyEnd();
             UI_PartsListItem.ProxyEnd();
 
 
         }
         }

BIN
GameClient/Assets/ResIn/UI/DressUp/DressUp_fui.bytes