From 64166885248e4c1f64e7c87ac04c59150add960c Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期二, 30 十二月 2025 17:36:39 +0800
Subject: [PATCH] 382 武将宿缘-客户端 适配不同品质武将混搭表格配置

---
 Main/Config/Configs/HeroFatesQualityLVConfig.cs |    5 ++
 Main/System/HeroFates/HeroFatesManager.cs       |    7 +--
 Main/System/HeroFates/HeroFatesUpgradeWin.cs    |   14 +++---
 Main/System/HeroFates/HeroFatesCell.cs          |    7 +--
 Main/System/HeroFates/HeroFatesPutWin.cs        |    6 ++-
 Main/Config/Configs/HeroFatesConfig.cs          |   25 +++++++-----
 6 files changed, 35 insertions(+), 29 deletions(-)

diff --git a/Main/Config/Configs/HeroFatesConfig.cs b/Main/Config/Configs/HeroFatesConfig.cs
index da8736b..69de52c 100644
--- a/Main/Config/Configs/HeroFatesConfig.cs
+++ b/Main/Config/Configs/HeroFatesConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           2025骞�12鏈�10鏃�
+//    [  Date ]:           Tuesday, December 30, 2025
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -19,6 +19,7 @@
     public int FatesID;
 	public string FatesName;
 	public int FatesQuality;
+	public int BGQuality;
 	public int[] HeroIDList;
 	public int[][] AwardItemList;
 	public int[] AttrIDList;
@@ -40,13 +41,15 @@
 
 			int.TryParse(tables[2],out FatesQuality); 
 
-			if (tables[3].Contains("["))
+			int.TryParse(tables[3],out BGQuality); 
+
+			if (tables[4].Contains("["))
 			{
-				HeroIDList = JsonMapper.ToObject<int[]>(tables[3]);
+				HeroIDList = JsonMapper.ToObject<int[]>(tables[4]);
 			}
 			else
 			{
-				string[] HeroIDListStringArray = tables[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				string[] HeroIDListStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
 				HeroIDList = new int[HeroIDListStringArray.Length];
 				for (int i=0;i<HeroIDListStringArray.Length;i++)
 				{
@@ -54,15 +57,15 @@
 				}
 			}
 
-			AwardItemList = JsonMapper.ToObject<int[][]>(tables[4].Replace("(", "[").Replace(")", "]")); 
+			AwardItemList = JsonMapper.ToObject<int[][]>(tables[5].Replace("(", "[").Replace(")", "]")); 
 
-			if (tables[5].Contains("["))
+			if (tables[6].Contains("["))
 			{
-				AttrIDList = JsonMapper.ToObject<int[]>(tables[5]);
+				AttrIDList = JsonMapper.ToObject<int[]>(tables[6]);
 			}
 			else
 			{
-				string[] AttrIDListStringArray = tables[5].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				string[] AttrIDListStringArray = tables[6].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
 				AttrIDList = new int[AttrIDListStringArray.Length];
 				for (int i=0;i<AttrIDListStringArray.Length;i++)
 				{
@@ -70,13 +73,13 @@
 				}
 			}
 
-			if (tables[6].Contains("["))
+			if (tables[7].Contains("["))
 			{
-				LVAttrValueList = JsonMapper.ToObject<int[]>(tables[6]);
+				LVAttrValueList = JsonMapper.ToObject<int[]>(tables[7]);
 			}
 			else
 			{
-				string[] LVAttrValueListStringArray = tables[6].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				string[] LVAttrValueListStringArray = tables[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
 				LVAttrValueList = new int[LVAttrValueListStringArray.Length];
 				for (int i=0;i<LVAttrValueListStringArray.Length;i++)
 				{
diff --git a/Main/Config/Configs/HeroFatesQualityLVConfig.cs b/Main/Config/Configs/HeroFatesQualityLVConfig.cs
index 2a0f1b5..9e9a1e5 100644
--- a/Main/Config/Configs/HeroFatesQualityLVConfig.cs
+++ b/Main/Config/Configs/HeroFatesQualityLVConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           2025骞�12鏈�10鏃�
+//    [  Date ]:           2025骞�12鏈�30鏃�
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -21,6 +21,7 @@
 	public int FatesLV;
 	public int NeedStarTotal;
 	public int NeedHeroCnt;
+	public int NeedQuality;
 
     public override int LoadKey(string _key)
     {
@@ -41,6 +42,8 @@
 			int.TryParse(tables[3],out NeedStarTotal); 
 
 			int.TryParse(tables[4],out NeedHeroCnt); 
+
+			int.TryParse(tables[5],out NeedQuality); 
         }
         catch (Exception exception)
         {
diff --git a/Main/System/HeroFates/HeroFatesCell.cs b/Main/System/HeroFates/HeroFatesCell.cs
index 0d41fb0..ec13105 100644
--- a/Main/System/HeroFates/HeroFatesCell.cs
+++ b/Main/System/HeroFates/HeroFatesCell.cs
@@ -60,10 +60,10 @@
         txtUpgrade.text = Language.Get(state == HeroFatesState.MaxLevel ? "L1110" : "L1109");
         imgUpgradeRed.SetActive(state == HeroFatesState.ActiveUpgradable);
 
-        imgBG.SetSprite(manager.GetCellBgByFatesQuality(config.FatesQuality));
+        imgBG.SetSprite(manager.GetCellBgByFatesQuality(config.BGQuality));
         txtFateName.text = config.FatesName;
-        txtFateName.color = UIHelper.GetUIColorByFunc(config.FatesQuality);
-        outlineFateName.OutlineColor = UIHelper.GetUIOutlineColor(config.FatesQuality);
+        txtFateName.color = UIHelper.GetUIColorByFunc(config.BGQuality);
+        outlineFateName.OutlineColor = UIHelper.GetUIOutlineColor(config.BGQuality);
 
         int needHeroHasCnt = manager.GetFateNeedHeroHasCnt(fatesId);
         int needHeroCnt = config.HeroIDList.Length;
@@ -94,7 +94,6 @@
             if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.HeroFatesUpgrade, true))
                 return;
             manager.chooseHeroFatesId = fatesId;
-            manager.chooseHeroFatesQuality = config.FatesQuality;
             UIManager.Instance.OpenWindow<HeroFatesUpgradeWin>();
         });
     }
diff --git a/Main/System/HeroFates/HeroFatesManager.cs b/Main/System/HeroFates/HeroFatesManager.cs
index b5bba18..0e9d832 100644
--- a/Main/System/HeroFates/HeroFatesManager.cs
+++ b/Main/System/HeroFates/HeroFatesManager.cs
@@ -217,7 +217,7 @@
             return false;
         }
         // 娑堣�楁灏嗘暟閲忔槸鍚︽弧瓒抽渶姹�
-        List<HeroInfo> consumableHeroInfos = GetConsumableHeroInfoList(heroFatesQualityLVConfig.FatesQuality);
+        List<HeroInfo> consumableHeroInfos = GetConsumableHeroInfoList(heroFatesQualityLVConfig.NeedQuality);
         int hasHeroCnt = consumableHeroInfos == null ? 0 : consumableHeroInfos.Count;
         int needHeroCnt = heroFatesQualityLVConfig.NeedHeroCnt;
         if (hasHeroCnt < needHeroCnt)
@@ -427,7 +427,7 @@
         }
 
         int needHeroCnt = nextLVConfig.NeedHeroCnt;
-        List<HeroInfo> consumableHeroInfoList = GetConsumableHeroInfoList(fatesQuality);
+        List<HeroInfo> consumableHeroInfoList = GetConsumableHeroInfoList(nextLVConfig.NeedQuality);
         if (consumableHeroInfoList.IsNullOrEmpty())
         {
             return null;
@@ -444,7 +444,6 @@
 
     #region 鐜╁閫変腑鍐呭
     public int chooseHeroFatesId = 0;
-    public int chooseHeroFatesQuality = 0;
     public HeroInfo chooseHeroInfo = null;
 
     // 缁欑帺瀹舵搷浣滈�変腑鐨勫垪琛�
@@ -689,7 +688,7 @@
                 }
 
                 // 鍏堟瘮杈冨搧璐�
-                int qualityCompare = config1.FatesQuality.CompareTo(config2.FatesQuality);
+                int qualityCompare = config1.BGQuality.CompareTo(config2.BGQuality);
                 if (qualityCompare != 0)
                 {
                     return qualityCompare; // 鍝佽川涓嶅悓锛屾寜鍝佽川鎺掑簭
diff --git a/Main/System/HeroFates/HeroFatesPutWin.cs b/Main/System/HeroFates/HeroFatesPutWin.cs
index 19d3e92..5a1aab6 100644
--- a/Main/System/HeroFates/HeroFatesPutWin.cs
+++ b/Main/System/HeroFates/HeroFatesPutWin.cs
@@ -56,9 +56,11 @@
     void CreateScoller()
     {
         scroller.Refresh();
-        if (manager.TryGetHeroFatesConfig(manager.chooseHeroFatesId, out HeroFatesConfig config))
+        if (manager.TryGetHeroFatesConfig(manager.chooseHeroFatesId, out HeroFatesConfig config) &&
+         manager.TryGetNowLVAndNextLVConfig(config.FatesID, out int nowLv, out HeroFatesQualityLVConfig nowLVConfig, out HeroFatesQualityLVConfig nextLVConfig))
         {
-            int fatesQuality = config.FatesQuality;
+
+            int fatesQuality = nextLVConfig.NeedQuality;
             list = manager.GetConsumableHeroInfoList(fatesQuality);
             transNoCanChooseHero.SetActive(list.IsNullOrEmpty());
             if (!list.IsNullOrEmpty())
diff --git a/Main/System/HeroFates/HeroFatesUpgradeWin.cs b/Main/System/HeroFates/HeroFatesUpgradeWin.cs
index bd79533..a59ae6f 100644
--- a/Main/System/HeroFates/HeroFatesUpgradeWin.cs
+++ b/Main/System/HeroFates/HeroFatesUpgradeWin.cs
@@ -41,8 +41,8 @@
             var list = manager.GetPutPreviewHeroList(manager.chooseHeroFatesId);
             if (list.IsNullOrEmpty())
             {
-                //绗﹀悎鍗囩骇鏉′欢鐨勬灏嗕笉瓒�
-                SysNotifyMgr.Instance.ShowTip("HeroFates02");
+                //娑堣�楁灏嗘暟閲忎笉瓒�
+                SysNotifyMgr.Instance.ShowTip("HeroFates04");
                 return;
             }
             UIManager.Instance.OpenWindow<HeroFatesFastPutPreviewWin>();
@@ -64,7 +64,7 @@
             }
 
             ushort[] arr = manager.GetItemIndexList(manager.realCostHeroInfos);
-            //鏀惧叆鐨勬秷鑰楁灏嗘暟閲忎笉瓒�
+            //娑堣�楁灏嗘暟閲忎笉瓒�
             if (arr.IsNullOrEmpty() || nextLVConfig.NeedHeroCnt > manager.realCostHeroInfos.Count)
             {
                 SysNotifyMgr.Instance.ShowTip("HeroFates04");
@@ -239,10 +239,10 @@
         btnQualityHeroClear.SetActive(isChoose);
         imgQualityHeroNull.SetActive(!isChoose);
 
-        imgQualityHeroBg.SetItemBackGround(config.FatesQuality);
-        imgQualityHeroIcon.SetSprite(StringUtility.Concat("HeroFatesQualityHead", config.FatesQuality.ToString()));
-        txtQualityHeroName.text = StringUtility.Concat(RichTextMsgReplaceConfig.GetRichReplace("HeroQuality", config.FatesQuality), Language.Get("herocard3"));
-        txtQualityHeroName.color = UIHelper.GetUIColorByFunc(config.FatesQuality);
+        imgQualityHeroBg.SetItemBackGround(config.BGQuality);
+        imgQualityHeroIcon.SetSprite(StringUtility.Concat("HeroFatesQualityHead", config.BGQuality.ToString()));
+        txtQualityHeroName.text = StringUtility.Concat(RichTextMsgReplaceConfig.GetRichReplace("HeroQuality", config.BGQuality), Language.Get("herocard3"));
+        txtQualityHeroName.color = UIHelper.GetUIColorByFunc(config.BGQuality);
         int needCnt = nextLVConfig.NeedHeroCnt;
         txtNeedQualityHeroCnt.text = UIHelper.AppendColor(chooseCnt >= needCnt ? TextColType.DarkGreen : TextColType.Red, Language.Get("BoneField09", chooseCnt, needCnt));
 

--
Gitblit v1.8.0