From f98a847267d3d9485a78bd4c35295493828c855c Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 09 一月 2026 17:11:15 +0800
Subject: [PATCH] 266 【内政】古宝系统 - 区分抽到物品 和古宝的对话和表情;鉴宝套装红点

---
 Main/System/Gubao/GubaoManager.cs      |   41 ++++++++++++++++++--
 Main/System/HappyXB/HappyXBModel.cs    |    1 
 Main/System/Gubao/GubaoCallWin.cs      |   41 +++++++++++++++++---
 Main/System/Gubao/GubaoSuiteListWin.cs |    3 +
 4 files changed, 76 insertions(+), 10 deletions(-)

diff --git a/Main/System/Gubao/GubaoCallWin.cs b/Main/System/Gubao/GubaoCallWin.cs
index d5a675e..879dd44 100644
--- a/Main/System/Gubao/GubaoCallWin.cs
+++ b/Main/System/Gubao/GubaoCallWin.cs
@@ -89,6 +89,8 @@
         // GubaoManager.Instance.clickCallEvent -= clickCallEvent;
     }
 
+
+    //浼樺厛鍙ゅ疂琛ㄧ幇
     void ShowVenderTalk(int quality)
     {
         if (quality == 0)
@@ -99,8 +101,18 @@
         }
         else
         {
-            talkText.text = Language.Get("GubaoResultTalk" + quality);
-            roleModel.Play(GubaoManager.Instance.emojiDict[quality]);
+            if (quality >= 10)
+            {
+                //鐗╁搧鍝佽川
+                quality = quality / 10;
+                talkText.text = Language.Get( "GubaoResultTalkItem" + quality);
+                roleModel.Play(GubaoManager.Instance.emojiItemDict[quality]);
+            }
+            else
+            {
+                talkText.text = Language.Get( "GubaoResultTalkGB" + quality);
+                roleModel.Play(GubaoManager.Instance.emojiGBDict[quality]);
+            }
         }
 
     }
@@ -160,22 +172,39 @@
         }
     }
 
+    //鍖哄垎鐗╁搧鍝佽川*10 鍜� 鍙ゅ疂鍝佽川
+    //濡傛灉鏈夊彜瀹濆氨涓嶈鐗╁搧鍝佽川
     int GetResultQuality()
     {
         if (HappyXBModel.Instance.xbResultDict.IsNullOrEmpty())
         {
             return 0;
         }
-        int quality = 0;
+        int gbQuality = 0;
+        int itemQuility = 0;
         foreach (var item in HappyXBModel.Instance.xbResultDict.Values)
         {
+            bool isGB = GubaoConfig.HasKey(item.itemId);
             int tmp = ItemConfig.Get(item.itemId).ItemColor;
-            if (tmp > quality)
+            if (isGB)
             {
-                quality = tmp;
+                if (tmp > gbQuality)
+                {
+                    gbQuality = tmp;
+                }
+            }
+            else
+            {
+                if (tmp > itemQuility)
+                {
+                    itemQuility = tmp;
+                }
             }
         }
-        return quality;
+
+
+
+        return gbQuality != 0 ? gbQuality : itemQuility * 10;
     }
 
     void RefreshFreeTime()
diff --git a/Main/System/Gubao/GubaoManager.cs b/Main/System/Gubao/GubaoManager.cs
index 90c1810..366be1c 100644
--- a/Main/System/Gubao/GubaoManager.cs
+++ b/Main/System/Gubao/GubaoManager.cs
@@ -36,7 +36,8 @@
 
     public const string skipKey = "SkipGBCall";
 
-    public Dictionary<int, int> emojiDict = new Dictionary<int, int>(); //鍝佽川锛歟mojiID椤哄簭
+    public Dictionary<int, int> emojiGBDict = new Dictionary<int, int>(); //鍙ゅ疂鍝佽川锛歟mojiID椤哄簭
+    public Dictionary<int, int> emojiItemDict = new Dictionary<int, int>(); //鍙ゅ疂鍝佽川锛歟mojiID椤哄簭
     public int maxIdleTalk = 0;
 
     public override void Init()
@@ -61,8 +62,9 @@
     void ParseConfig()
     {
         var config = FuncConfigConfig.Get("Gubao1");
-        emojiDict = ConfigParse.ParseIntDict(config.Numerical1);
+        emojiGBDict = ConfigParse.ParseIntDict(config.Numerical1);
         maxIdleTalk = int.Parse(config.Numerical2);
+        emojiItemDict = ConfigParse.ParseIntDict(config.Numerical3);
     }
 
 
@@ -71,6 +73,8 @@
         gubaoDict.Clear();
         waitActiveGubao = 0;
         gubaoCollectDict.Clear();
+        suiteStarDict.Clear();
+        jumpSuiteID = 0;
     }
 
     void OnPlayerLoginOK()
@@ -124,9 +128,8 @@
             UIManager.Instance.OpenWindow<GubaoActiveWin>(waitActiveGubao);
             waitActiveGubao = 0;
         }
-        UpdateRedpoint();
         RefreshAllAttr();
-        GubaoCallRedPoint();
+        UpdateRedpoint();
     }
 
 
@@ -624,6 +627,9 @@
         return cnt;
     }
 
+    public int jumpSuiteID = 0; //濂楄绾㈢偣璺宠浆
+    Dictionary<int, int> suiteStarDict = new Dictionary<int, int>();    //濂楄鏄熺骇 鍙槸鐢ㄤ簬鍒ゆ柇绾㈢偣鍓嶅悗瀵规瘮
+
     void RefreshAllAttr()
     {
         gubaoAllAttrDict.Clear();
@@ -649,6 +655,28 @@
             {
                 continue;
             }
+
+            //濂楄鏄惁鏈夋柊婵�娲� 鍜屽埛灞炴�ф棤鍏筹紝椤轰究鍐欒繖
+            if (suiteStarDict.ContainsKey(suitID))
+            {
+                if (suiteStarDict[suitID] != curSuiteStar)
+                {
+                    suiteStarDict[suitID] = curSuiteStar;
+                    if (jumpSuiteID == 0)
+                    {
+                        jumpSuiteID = suitID;
+                    }
+                }
+            }
+            else
+            {
+                suiteStarDict[suitID] = curSuiteStar;
+                if (jumpSuiteID == 0)
+                {
+                    jumpSuiteID = suitID;
+                }
+            }
+
             var attrCfg = GubaoResonanceAttrConfig.GetConfig(suitID, curSuiteStar);
             if (attrCfg == null)
             {
@@ -717,6 +745,7 @@
         activeRP.state = RedPointState.None;
         gubaoLVRP.state = RedPointState.None;
         gubaoStarRP.state = RedPointState.None;
+        gubaoSuiteRP.state = RedPointState.None;
         if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.GuaBao))
             return;
 
@@ -740,6 +769,10 @@
             }
         }
 
+        if (jumpSuiteID != 0)
+        {
+            gubaoSuiteRP.state = RedPointState.Simple;
+        }
     }
 
 
diff --git a/Main/System/Gubao/GubaoSuiteListWin.cs b/Main/System/Gubao/GubaoSuiteListWin.cs
index 6ddc541..9b9495a 100644
--- a/Main/System/Gubao/GubaoSuiteListWin.cs
+++ b/Main/System/Gubao/GubaoSuiteListWin.cs
@@ -45,6 +45,9 @@
         }
 
         scroller.Restart();
+        scroller.JumpIndex(GubaoManager.Instance.jumpSuiteID - 1);
+        GubaoManager.Instance.jumpSuiteID = 0;
+        GubaoManager.Instance.UpdateRedpoint();
     }
 
     void OnRefreshCell(ScrollerDataType type, CellView cell)
diff --git a/Main/System/HappyXB/HappyXBModel.cs b/Main/System/HappyXB/HappyXBModel.cs
index 97bfadb..9ea3a1d 100644
--- a/Main/System/HappyXB/HappyXBModel.cs
+++ b/Main/System/HappyXB/HappyXBModel.cs
@@ -292,6 +292,7 @@
         }
 
         HeroCallRedPoint();
+        GubaoManager.Instance.GubaoCallRedPoint();
     }
 
     public XBTypeInfo GetXBInfoByType(int type)

--
Gitblit v1.8.0