From 9cb7d1688f076be73b954305f69d1329a8fcbf28 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 09 十二月 2025 12:13:41 +0800
Subject: [PATCH] 121 【武将】武将系统 - 武将升级
---
Main/System/HeroUI/HeroLVBreakWin.cs | 16 ++--
Main/System/HeroUI/HeroLVBreakSuccessWin.cs | 10 +-
Main/Config/PartialConfigs/HeroQualityBreakConfig.cs | 6 -
Main/Config/Configs/HeroQualityBreakConfig.cs | 22 +-----
Main/Config/PartialConfigs/HeroQualityLVConfig.cs | 6 +
Main/System/HeroUI/HeroUIManager.Reborn.cs | 4
Main/System/HeroUI/HeroTrainWin.cs | 66 +++++++++++-----------
Main/System/HeroUI/HeroUIManager.cs | 27 +++------
8 files changed, 68 insertions(+), 89 deletions(-)
diff --git a/Main/Config/Configs/HeroQualityBreakConfig.cs b/Main/Config/Configs/HeroQualityBreakConfig.cs
index 11ce604..a2c5261 100644
--- a/Main/Config/Configs/HeroQualityBreakConfig.cs
+++ b/Main/Config/Configs/HeroQualityBreakConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: 2025骞�8鏈�5鏃�
+// [ Date ]: Tuesday, December 9, 2025
//--------------------------------------------------------
using System.Collections.Generic;
@@ -19,8 +19,8 @@
public int QualityBreankID;
public int Quality;
public int BreakLV;
- public int LVMax;
- public int[] UPCostItem;
+ public int UPLVNeed;
+ public int[][] UPCostItemList;
public override int LoadKey(string _key)
{
@@ -38,21 +38,9 @@
int.TryParse(tables[2],out BreakLV);
- int.TryParse(tables[3],out LVMax);
+ int.TryParse(tables[3],out UPLVNeed);
- if (tables[4].Contains("["))
- {
- UPCostItem = JsonMapper.ToObject<int[]>(tables[4]);
- }
- else
- {
- string[] UPCostItemStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
- UPCostItem = new int[UPCostItemStringArray.Length];
- for (int i=0;i<UPCostItemStringArray.Length;i++)
- {
- int.TryParse(UPCostItemStringArray[i],out UPCostItem[i]);
- }
- }
+ UPCostItemList = JsonMapper.ToObject<int[][]>(tables[4].Replace("(", "[").Replace(")", "]"));
}
catch (Exception exception)
{
diff --git a/Main/Config/PartialConfigs/HeroQualityBreakConfig.cs b/Main/Config/PartialConfigs/HeroQualityBreakConfig.cs
index 7f47470..1d70b9d 100644
--- a/Main/Config/PartialConfigs/HeroQualityBreakConfig.cs
+++ b/Main/Config/PartialConfigs/HeroQualityBreakConfig.cs
@@ -4,7 +4,6 @@
public partial class HeroQualityBreakConfig : ConfigBase<int, HeroQualityBreakConfig>
{
public static Dictionary<int, Dictionary<int, HeroQualityBreakConfig>> configDics = new Dictionary<int, Dictionary<int, HeroQualityBreakConfig>>();
- public static Dictionary<int, int> maxlvDic = new Dictionary<int, int>();
protected override void OnConfigParseCompleted()
{
base.OnConfigParseCompleted();
@@ -17,10 +16,7 @@
}
tempDic[BreakLV] = this;
- if (!maxlvDic.ContainsKey(LVMax) || LVMax > maxlvDic[Quality])
- {
- maxlvDic[Quality] = LVMax;
- }
+
}
diff --git a/Main/Config/PartialConfigs/HeroQualityLVConfig.cs b/Main/Config/PartialConfigs/HeroQualityLVConfig.cs
index fa0f2ea..081442a 100644
--- a/Main/Config/PartialConfigs/HeroQualityLVConfig.cs
+++ b/Main/Config/PartialConfigs/HeroQualityLVConfig.cs
@@ -4,7 +4,7 @@
public partial class HeroQualityLVConfig : ConfigBase<int, HeroQualityLVConfig>
{
public static Dictionary<int, Dictionary<int, HeroQualityLVConfig>> configDics = new Dictionary<int, Dictionary<int, HeroQualityLVConfig>>();
-
+ public static Dictionary<int, int> maxlvDic = new Dictionary<int, int>();
protected override void OnConfigParseCompleted()
{
@@ -16,6 +16,10 @@
}
tempDic.Add(HeroLV, this);
+ if (!maxlvDic.ContainsKey(Quality) || HeroLV > maxlvDic[Quality])
+ {
+ maxlvDic[Quality] = HeroLV;
+ }
}
public static HeroQualityLVConfig GetQualityLVConfig(int quality, int lv)
diff --git a/Main/System/HeroUI/HeroLVBreakSuccessWin.cs b/Main/System/HeroUI/HeroLVBreakSuccessWin.cs
index 2812657..be6d76e 100644
--- a/Main/System/HeroUI/HeroLVBreakSuccessWin.cs
+++ b/Main/System/HeroUI/HeroLVBreakSuccessWin.cs
@@ -12,8 +12,8 @@
[SerializeField] Text breakLVText;
[SerializeField] Text nextBreakLVText;
- [SerializeField] Text lvText;
- [SerializeField] Text nextLVText;
+ // [SerializeField] Text lvText;
+ // [SerializeField] Text nextLVText;
[SerializeField] Text[] attrPerTextArr;
[SerializeField] Text[] nextAttrPerTextArr;
[SerializeField] Text potentialText;
@@ -47,10 +47,10 @@
{
breakLVText.text = "+" + (hero.breakLevel - 1);
nextBreakLVText.text = "+" + hero.breakLevel;
- var beforeBreakLVConfig = HeroQualityBreakConfig.GetQualityBreakConfig(hero.Quality, hero.breakLevel - 1);
- lvText.text = beforeBreakLVConfig.LVMax.ToString();
+ // var beforeBreakLVConfig = HeroQualityBreakConfig.GetQualityBreakConfig(hero.Quality, hero.breakLevel - 1);
+ // lvText.text = beforeBreakLVConfig.LVMax.ToString();
- nextLVText.text = hero.qualityBreakConfig.LVMax.ToString();
+ // nextLVText.text = hero.qualityBreakConfig.LVMax.ToString();
for (int i = 0; i < attrPerTextArr.Length; i++)
{
diff --git a/Main/System/HeroUI/HeroLVBreakWin.cs b/Main/System/HeroUI/HeroLVBreakWin.cs
index 36c8025..04fab68 100644
--- a/Main/System/HeroUI/HeroLVBreakWin.cs
+++ b/Main/System/HeroUI/HeroLVBreakWin.cs
@@ -12,8 +12,8 @@
[SerializeField] Text breakLVText;
[SerializeField] Text nextBreakLVText;
- [SerializeField] Text lvText;
- [SerializeField] Text nextLVText;
+ // [SerializeField] Text lvText;
+ // [SerializeField] Text nextLVText;
[SerializeField] Text[] attrPerTextArr;
[SerializeField] Text[] nextAttrPerTextArr;
[SerializeField] Text potentialText;
@@ -49,10 +49,10 @@
{
breakLVText.text = "+" + hero.breakLevel;
nextBreakLVText.text = "+" + (hero.breakLevel + 1);
- lvText.text = hero.qualityBreakConfig.LVMax.ToString();
+ // lvText.text = hero.qualityBreakConfig.LVMax.ToString();
- var nextBreakLVConfig = HeroQualityBreakConfig.GetQualityBreakConfig(hero.Quality, hero.breakLevel + 1);
- nextLVText.text = nextBreakLVConfig.LVMax.ToString();
+ // var nextBreakLVConfig = HeroQualityBreakConfig.GetQualityBreakConfig(hero.Quality, hero.breakLevel + 1);
+ // nextLVText.text = nextBreakLVConfig.LVMax.ToString();
for (int i = 0; i < attrPerTextArr.Length; i++)
{
@@ -65,8 +65,8 @@
hero.qualityConfig.BreakLVAddPer * (hero.breakLevel + 1));
}
- moneyIcon.SetOrgSprite(ItemConfig.Get(hero.qualityBreakConfig.UPCostItem[0]).IconKey);
- moneyText.text = UIHelper.ShowUseItem(PackType.Item, hero.qualityBreakConfig.UPCostItem[0], hero.qualityBreakConfig.UPCostItem[1]);
+ moneyIcon.SetOrgSprite(ItemConfig.Get(hero.qualityBreakConfig.UPCostItemList[0][0]).IconKey);
+ moneyText.text = UIHelper.ShowUseItem(PackType.Item, hero.qualityBreakConfig.UPCostItemList[0][0], hero.qualityBreakConfig.UPCostItemList[0][1]);
var nextQualityBreakConfig = HeroBreakConfig.GetHeroBreakConfig(hero.heroId, hero.breakLevel + 1);
if (nextQualityBreakConfig == null)
@@ -101,7 +101,7 @@
void BreakLV()
{
- if (ItemLogicUtility.CheckItemCount(PackType.Item, hero.qualityBreakConfig.UPCostItem[0], hero.qualityBreakConfig.UPCostItem[1], 2))
+ if (ItemLogicUtility.CheckItemCount(PackType.Item, hero.qualityBreakConfig.UPCostItemList[0][0], hero.qualityBreakConfig.UPCostItemList[0][1], 2))
{
var pack = new CB232_tagCSHeroBreak();
pack.ItemIndex = (ushort)hero.itemHero.gridIndex;
diff --git a/Main/System/HeroUI/HeroTrainWin.cs b/Main/System/HeroUI/HeroTrainWin.cs
index c7b2f20..fd0dfd3 100644
--- a/Main/System/HeroUI/HeroTrainWin.cs
+++ b/Main/System/HeroUI/HeroTrainWin.cs
@@ -454,16 +454,16 @@
lvupBtnText.text = Language.Get("L1109");
lvupMoneyIcon.SetActive(true);
- if (HeroUIManager.Instance.IsLVMaxByBreakLevel(hero))
+ // if (HeroUIManager.Instance.IsLVMaxByBreakLevel(hero))
+ // {
+ // lvupBtnText.text = Language.Get("L1111");
+ // var breakConfig = HeroQualityBreakConfig.GetQualityBreakConfig(hero.Quality, hero.breakLevel);
+ // lvupMoneyIcon.SetOrgSprite(ItemConfig.Get(breakConfig.UPCostItemList[0][0]).IconKey);
+ // lvupMoneyText.text = UIHelper.ShowUseItem(PackType.Item, breakConfig.UPCostItemList[0][0], breakConfig.UPCostItemList[0][1]);
+ // }
+ // else
{
- lvupBtnText.text = Language.Get("L1111");
- var breakConfig = HeroQualityBreakConfig.GetQualityBreakConfig(hero.Quality, hero.breakLevel);
- lvupMoneyIcon.SetOrgSprite(ItemConfig.Get(breakConfig.UPCostItem[0]).IconKey);
- lvupMoneyText.text = UIHelper.ShowUseItem(PackType.Item, breakConfig.UPCostItem[0], breakConfig.UPCostItem[1]);
- }
- else
- {
- lvupBtnText.text = Language.Get("L1109");
+ // lvupBtnText.text = Language.Get("L1109");
var lvupConfig = HeroQualityLVConfig.GetQualityLVConfig(hero.Quality, hero.heroLevel);
lvupMoneyIcon.SetOrgSprite(ItemConfig.Get(lvupConfig.UPCostItem[0]).IconKey);
lvupMoneyText.text = UIHelper.ShowUseItem(PackType.Item, lvupConfig.UPCostItem[0], lvupConfig.UPCostItem[1]);
@@ -484,16 +484,16 @@
{
int itemID = 0;
long needCount = 0;
- if (HeroUIManager.Instance.IsLVMaxByBreakLevel(hero))
- {
- //绐佺牬
- if (!UIManager.Instance.IsOpened<HeroLVBreakWin>())
- {
- HeroUIManager.Instance.selectHeroGuid = guid;
- UIManager.Instance.OpenWindow<HeroLVBreakWin>();
- }
- }
- else
+ // if (HeroUIManager.Instance.IsLVMaxByBreakLevel(hero))
+ // {
+ // //绐佺牬
+ // if (!UIManager.Instance.IsOpened<HeroLVBreakWin>())
+ // {
+ // HeroUIManager.Instance.selectHeroGuid = guid;
+ // UIManager.Instance.OpenWindow<HeroLVBreakWin>();
+ // }
+ // }
+ // else
{
//鍗囩骇
var lvupConfig = HeroQualityLVConfig.GetQualityLVConfig(hero.Quality, hero.heroLevel);
@@ -834,20 +834,20 @@
redpointGift.SetActive(true);
}
- var maxBreakLV = HeroBreakConfig.GetMaxBreakLv(hero.heroId);
- if (hero.breakLevel < maxBreakLV)
- {
- if (HeroUIManager.Instance.IsLVMaxByBreakLevel(hero))
- {
- var breakConfig = HeroQualityBreakConfig.GetQualityBreakConfig(hero.Quality, hero.breakLevel);
- if (itemPack.GetCountById(breakConfig.UPCostItem[0]) >= breakConfig.UPCostItem[1])
- {
- redpointLVUP.SetActive(true);
- return;
- }
- return;
- }
- }
+ // var maxBreakLV = HeroBreakConfig.GetMaxBreakLv(hero.heroId);
+ // if (hero.breakLevel < maxBreakLV)
+ // {
+ // if (HeroUIManager.Instance.IsCanBreak(hero))
+ // {
+ // var breakConfig = HeroQualityBreakConfig.GetQualityBreakConfig(hero.Quality, hero.breakLevel);
+ // if (itemPack.GetCountById(breakConfig.UPCostItemList[0][0]) >= breakConfig.UPCostItemList[0][1])
+ // {
+ // redpointLVUP.SetActive(true);
+ // return;
+ // }
+ // return;
+ // }
+ // }
if (!HeroUIManager.Instance.IsLVMax(hero))
{
diff --git a/Main/System/HeroUI/HeroUIManager.Reborn.cs b/Main/System/HeroUI/HeroUIManager.Reborn.cs
index 2156bf8..f17f8e8 100644
--- a/Main/System/HeroUI/HeroUIManager.Reborn.cs
+++ b/Main/System/HeroUI/HeroUIManager.Reborn.cs
@@ -55,8 +55,8 @@
for (int i = 0; i < lv; i++)
{
var config = HeroQualityBreakConfig.GetQualityBreakConfig(quality, i);
- var itemID = config.UPCostItem[0];
- var count = config.UPCostItem[1];
+ var itemID = config.UPCostItemList[0][0];
+ var count = config.UPCostItemList[0][1];
if (!itemCounDic.ContainsKey(itemID))
{
itemCounDic[itemID] = count;
diff --git a/Main/System/HeroUI/HeroUIManager.cs b/Main/System/HeroUI/HeroUIManager.cs
index e8f86b2..5f556fc 100644
--- a/Main/System/HeroUI/HeroUIManager.cs
+++ b/Main/System/HeroUI/HeroUIManager.cs
@@ -178,7 +178,7 @@
public int GetMaxLV(int quality)
{
- return HeroQualityBreakConfig.maxlvDic[quality];
+ return HeroQualityLVConfig.maxlvDic[quality];
}
//鏄惁杈惧埌鏈�楂樼骇
@@ -187,25 +187,16 @@
return hero.heroLevel >= GetMaxLV(hero.Quality);
}
- //绐佺牬闄愬埗鐨勬渶楂樼瓑绾�; 濡傛灉瀛樺湪绐佺牬绛夌骇鍚庝笉鑳藉啀鍗囩骇鏄瓥鍒掗厤缃棶棰�
- public int GetMaxLVByBreakLV(int quality, int breakLevel)
+ //绐佺牬鎵�闇�绛夌骇
+ public int GetNeedLVByBreakLV(int quality, int breakLevel)
{
- // for (int i = breakLevel; i >= 0; i--)
- // {
- // var config = HeroQualityBreakConfig.GetQualityBreakConfig(quality, i);
- // if (config == null)
- // {
- // continue;
- // }
- // return config.LVMax;
- // }
- return HeroQualityBreakConfig.GetQualityBreakConfig(quality, breakLevel).LVMax;
+ return HeroQualityBreakConfig.GetQualityBreakConfig(quality, breakLevel).UPLVNeed;
}
- //鏄惁杈惧埌鍥犵獊鐮撮檺鍒剁殑鏈�楂樼骇
- public bool IsLVMaxByBreakLevel(HeroInfo hero)
+ //鏄惁杈惧埌鍙獊鐮寸殑鏉′欢
+ public bool IsCanBreak(HeroInfo hero)
{
- return hero.heroLevel == GetMaxLVByBreakLV(hero.Quality, hero.breakLevel);
+ return hero.heroLevel >= GetNeedLVByBreakLV(hero.Quality, hero.breakLevel);
}
public int GetAllHeroPer()
@@ -508,10 +499,10 @@
var maxBreakLV = HeroBreakConfig.GetMaxBreakLv(hero.heroId);
if (hero.breakLevel < maxBreakLV)
{
- if (IsLVMaxByBreakLevel(hero))
+ if (IsCanBreak(hero))
{
var breakConfig = HeroQualityBreakConfig.GetQualityBreakConfig(hero.Quality, hero.breakLevel);
- if (itemPack.GetCountById(breakConfig.UPCostItem[0]) >= breakConfig.UPCostItem[1])
+ if (itemPack.GetCountById(breakConfig.UPCostItemList[0][0]) >= breakConfig.UPCostItemList[0][1])
{
return 3;
}
--
Gitblit v1.8.0