From 56b9c524aa379cfce1ac3a7ab33236dd4bee8a23 Mon Sep 17 00:00:00 2001
From: Client_PangDeRong <593317293@qq.com>
Date: 星期四, 06 九月 2018 14:45:52 +0800
Subject: [PATCH] 1855 仙器替换界面显示评分比较图标

---
 System/KnapSack/New/CommonItemBaisc.cs |  173 ++++++++++++++++++++++++++++-----------------------------
 1 files changed, 86 insertions(+), 87 deletions(-)

diff --git a/System/KnapSack/New/CommonItemBaisc.cs b/System/KnapSack/New/CommonItemBaisc.cs
index b0edb67..9c4a059 100644
--- a/System/KnapSack/New/CommonItemBaisc.cs
+++ b/System/KnapSack/New/CommonItemBaisc.cs
@@ -126,23 +126,23 @@
         /// </summary>
         /// <param name="model"></param>
         /// <param name="isCompare"></param>
-        public virtual void Init(ItemModel model,bool isCompare = false)
+        public virtual void Init(ItemModel model,bool isCompare = false,int compareScore = 0)
         {
             itemConfig = Config.Instance.Get<ItemConfig>(model.itemInfo.ItemID);
-            InitUI(model.itemInfo.ItemGUID,model.itemInfo.ItemID,(ulong)model.itemInfo.ItemCount,model.equipScore,model.itemInfo.IsBind,model.packType,isCompare,model.useDataDict);
+            InitUI(model.itemInfo.ItemGUID,model.itemInfo.ItemID,(ulong)model.itemInfo.ItemCount,model.equipScore,model.itemInfo.IsBind,model.packType,isCompare,model.useDataDict,compareScore);
         }
 
         /// <summary>
         ///  鍒濆鍖栨暟鎹紙棰勮锛�
         /// </summary>
         /// <param name="model"></param>
-        public virtual void Init(ItemCellModel model)
+        public virtual void Init(ItemCellModel model, int compareScore = 0)
         {
             itemConfig = model.itemConfig;
-            InitUI(model.guid,model.itemId, model.count, model.score, model.isBind,model.packType,model.isCompare,model.useDataDic);
+            InitUI(model.guid,model.itemId, model.count, model.score, model.isBind,model.packType,model.isCompare,model.useDataDic,compareScore);
         }
 
-        private void InitUI(string guid,int itemId,ulong count,int score,int isBind,PackType type,bool isCompare, Dictionary<int, List<int>> useDataDic)
+        private void InitUI(string guid,int itemId,ulong count,int score,int isBind,PackType type,bool isCompare, Dictionary<int, List<int>> useDataDic, int compareScore = 0)
         {
             if (itemConfig == null) return;
 
@@ -185,102 +185,101 @@
                 countText.gameObject.SetActive(false);
             }
 
-            if(!isCompare || type == PackType.rptEquip)
+            int compareReslut = CheckIsCompare(type,itemId,score,isCompare,compareScore,guid);
+            switch(compareReslut)
             {
-                stateIcon.gameObject.SetActive(false);
+                case 0:
+                    stateIcon.gameObject.SetActive(false);
+                    break;
+                case 1:
+                    stateIcon.gameObject.SetActive(true);
+                    stateIcon.SetSprite("EquipForbidIcon");
+                    break;
+                case 2:
+                    stateIcon.gameObject.SetActive(true);
+                    stateIcon.SetSprite("EquipUpIcon");
+                    break;
+                case 3:
+                    stateIcon.gameObject.SetActive(true);
+                    stateIcon.SetSprite("EquipDownIcon");
+                    break;
+            }
+        }
+
+        /// <summary>
+        /// 0 涓嶆瘮杈� 1 绂佹姣旇緝 2 楂樿瘎鍒� 3 浣庤瘎鍒�
+        /// </summary>
+        /// <param name="itemId"></param>
+        /// <param name="score"></param>
+        /// <param name="isCompare"></param>
+        /// <param name="compareSocre"></param>
+        /// <returns></returns>
+        public int CheckIsCompare(PackType type,int itemId, int score, bool isCompare,int compareSocre,string guid = "")
+        {
+            ItemConfig config = Config.Instance.Get<ItemConfig>(itemId);
+            int playerJob = PlayerDatas.Instance.baseData.Job;
+            if (config == null || (!isCompare && compareSocre <= 0) || config.EquipPlace == 0) return 0;
+
+            ItemModel model = playerPack.GetItemModelByGUID(guid);
+            if (model != null 
+                && (modelInterface.IsOverdue(guid, itemId, model.useDataDict) 
+                || (playerJob != Math.Floor((double)config.JobLimit / 100) && config.JobLimit != 0))) return 1;
+
+            if(isCompare)
+            {
+               if(type != PackType.rptDogzItem)
+                {
+                    compareSocre = GetCompareSocre(PackType.rptEquip,config.EquipPlace);
+                }
+               else
+                {
+                    compareSocre = GetCompareSocre(PackType.rptDogzEquip, config.EquipPlace);
+                }
+               if(score == compareSocre)
+                {
+                    return 0;
+                }
+               else
+                {
+                    return score > compareSocre ? 2 : 3;
+                }
             }
             else
             {
-                stateIcon.gameObject.SetActive(true);
-                if(type != PackType.rptDogzItem)
-                {
-                    bool isOverdue = modelInterface.IsOverdue(guid, itemId, useDataDic);
-                    if (!isOverdue)
+                return score > compareSocre ? 2 : 3;
+            }
+
+        }
+
+        public int GetCompareSocre(PackType type,int equipPlace)
+        {
+            switch (type)
+            {
+                case PackType.rptEquip:
+                    switch ((RoleEquipType)equipPlace)
                     {
-                        ItemModel putOnModel = playerPack.GetItemModelByIndex(PackType.rptEquip, itemConfig.EquipPlace);
-                        if (itemConfig.EquipPlace == (int)RoleEquipType.retFairyCan)
-                        {
-                            ItemModel fairyModel2 = playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retFairyCan2);
-                            if (fairyModel2 != null)
+                        case RoleEquipType.retFairyCan:
+                            ItemModel fairy01 = playerPack.GetItemModelByIndex(type,(int)RoleEquipType.retFairyCan);
+                            ItemModel fairy02 = playerPack.GetItemModelByIndex(type, (int)RoleEquipType.retFairyCan2);
+                            if(fairy01 == null || fairy02 == null)
                             {
-                                if (putOnModel != null)
-                                {
-                                    if (fairyModel2.equipScore < putOnModel.equipScore)
-                                    {
-                                        putOnModel = fairyModel2;
-                                    }
-                                }
+                                return 0;
                             }
                             else
                             {
-                                putOnModel = fairyModel2;
+                                return fairy01.equipScore >= fairy02.equipScore ? fairy02.equipScore : fairy01.equipScore;
                             }
-                        }
-                        int equipScore1 = 0;
-                        if (putOnModel != null)
-                        {
-                            equipScore1 = putOnModel.equipScore;
-                        }
-                        int playerJob = PlayerDatas.Instance.baseData.Job;
-                        if (playerJob == Math.Floor((double)itemConfig.JobLimit / 100) || itemConfig.JobLimit == 0)
-                        {
-                            if (equipScore1 > score)
-                            {
-                                stateIcon.SetSprite("EquipDownIcon");
-                            }
-                            else if (equipScore1 < score)
-                            {
-                                stateIcon.SetSprite("EquipUpIcon");
-                            }
-                            else
-                            {
-                                stateIcon.gameObject.SetActive(false);
-                            }
-                        }
-                        else
-                        {
-                            stateIcon.SetSprite("EquipForbidIcon");
-                        }
+                        default:
+                            ItemModel model = playerPack.GetItemModelByIndex(type,equipPlace);
+                            return model == null ? 0 : model.equipScore;
                     }
-                    else
-                    {
-                        stateIcon.SetSprite("EquipForbidIcon");
-                    }
-                }
-                else
-                {
+                case PackType.rptDogzEquip:
                     var dogzModel = ModelCenter.Instance.GetModel<DogzModel>();
                     ItemModel putOnModel = null;
-                     dogzModel.TryGetDogzEquip(dogzModel.presentSelectDogz, itemConfig.EquipPlace,out putOnModel);
-                    if(putOnModel != null)
-                    {
-                        if(putOnModel.equipScore > score)
-                        {
-                            stateIcon.SetSprite("EquipDownIcon");
-                        }
-                        else if(putOnModel.equipScore < score)
-                        {
-                            stateIcon.SetSprite("EquipUpIcon");
-                        }
-                        else
-                        {
-                            stateIcon.gameObject.SetActive(false);
-                        }
-                    }
-                    else
-                    {
-                        if(score > 0)
-                        {
-                            stateIcon.SetSprite("EquipUpIcon");
-                        }
-                        else
-                        {
-                            stateIcon.gameObject.SetActive(false);
-                        }
-                    }
-                }
-            
+                    dogzModel.TryGetDogzEquip(dogzModel.presentSelectDogz, equipPlace, out putOnModel);
+                    return putOnModel == null ? 0 : putOnModel.equipScore;
             }
+            return 0;
         }
     }
 

--
Gitblit v1.8.0