From 7475947c2ab18c21973e2d796094f96e27b2929d Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 25 八月 2025 00:32:44 +0800
Subject: [PATCH] 0312 武将羁绊
---
Main/System/Hero/HeroInfo.Fetter.cs | 18 +++++----
Main/System/HeroUI/HeroLVBreakSuccessWin.cs | 5 ++
/dev/null | 11 -----
Main/System/Hero/HeroInfo.Break.cs | 2 +
Main/System/Hero/HeroInfo.Awake.cs | 7 +++
Main/System/HeroUI/HeroTrainWin.cs | 69 ++++++++++++++++++++++++++++++++--
6 files changed, 87 insertions(+), 25 deletions(-)
diff --git a/Main/System/Hero/HeroInfo.Awake.cs b/Main/System/Hero/HeroInfo.Awake.cs
index a0f6f0b..fd0ed7e 100644
--- a/Main/System/Hero/HeroInfo.Awake.cs
+++ b/Main/System/Hero/HeroInfo.Awake.cs
@@ -36,6 +36,8 @@
for(int j = 0; j < tmpAwakeConfig.AttrIDList.Length; j++)
{
int id = tmpAwakeConfig.AttrIDList[j];
+ if (id == 0)
+ continue;
if (!breakAttrs.ContainsKey(id))
{
breakAttrs.Add(id, tmpAwakeConfig.AttrValueList[j]);
@@ -49,6 +51,11 @@
if (tmpAwakeConfig.SkillID != 0)
{
var skillConfig = SkillConfig.Get(tmpAwakeConfig.SkillID);
+ if (skillConfig == null)
+ {
+ Debug.LogError("瑙夐啋鎶�鑳介厤缃敊璇�" + tmpAwakeConfig.SkillID);
+ continue;
+ }
if (allSkillTypeIDToID.ContainsKey(skillConfig.SkillTypeID))
{
var tmpSkillConfig = SkillConfig.Get(allSkillTypeIDToID[skillConfig.SkillTypeID]);
diff --git a/Main/System/Hero/HeroInfo.Break.cs b/Main/System/Hero/HeroInfo.Break.cs
index d8974d6..decda04 100644
--- a/Main/System/Hero/HeroInfo.Break.cs
+++ b/Main/System/Hero/HeroInfo.Break.cs
@@ -35,6 +35,8 @@
for(int j = 0; j < tmpBreakConfig.AttrIDList.Length; j++)
{
int id = tmpBreakConfig.AttrIDList[j];
+ if (id == 0)
+ continue;
if (!breakAttrs.ContainsKey(id))
{
breakAttrs.Add(id, tmpBreakConfig.AttrValueList[j]);
diff --git a/Main/System/Hero/HeroInfo.Fetter.cs b/Main/System/Hero/HeroInfo.Fetter.cs
index 98f01cd..3a0c695 100644
--- a/Main/System/Hero/HeroInfo.Fetter.cs
+++ b/Main/System/Hero/HeroInfo.Fetter.cs
@@ -41,16 +41,16 @@
}
public int GetFetterAttrPer(int attrType)
- {
- if (PlayerPropertyConfig.baseAttr2perDict.ContainsKey(attrType))
- {
- var pertype = PlayerPropertyConfig.baseAttr2perDict[attrType];
- return fetterAttrs.ContainsKey(pertype) ? fetterAttrs[pertype] : 0;
- }
- return 0;
+ {
+ if (PlayerPropertyConfig.baseAttr2perDict.ContainsKey(attrType))
+ {
+ var pertype = PlayerPropertyConfig.baseAttr2perDict[attrType];
+ return fetterAttrs.ContainsKey(pertype) ? fetterAttrs[pertype] : 0;
+ }
+ return 0;
}
-
+
public List<int> GetActiveFetter(HeroConfig config, TeamBase teamBase)
{
List<int> list = new List<int>();
@@ -82,4 +82,6 @@
return list;
}
+
+
}
diff --git a/Main/System/HeroUI/HeroLVBreakSuccessWin.cs b/Main/System/HeroUI/HeroLVBreakSuccessWin.cs
index 8625f84..d8b7124 100644
--- a/Main/System/HeroUI/HeroLVBreakSuccessWin.cs
+++ b/Main/System/HeroUI/HeroLVBreakSuccessWin.cs
@@ -74,7 +74,10 @@
List<string> attrStrArr = new List<string>();
for (int i = 0; i < nextQualityBreakConfig.AttrIDList.Length; i++)
{
- attrStrArr.Add(PlayerPropertyConfig.GetFullDescription(nextQualityBreakConfig.AttrIDList[i], nextQualityBreakConfig.AttrValueList[i]));
+ var id = nextQualityBreakConfig.AttrIDList[i];
+ if (id == 0)
+ continue;
+ attrStrArr.Add(PlayerPropertyConfig.GetFullDescription(id, nextQualityBreakConfig.AttrValueList[i]));
}
if (nextQualityBreakConfig.SkillID != 0)
{
diff --git a/Main/System/HeroUI/HeroTrainWin.cs b/Main/System/HeroUI/HeroTrainWin.cs
index 215c2c7..08b9b17 100644
--- a/Main/System/HeroUI/HeroTrainWin.cs
+++ b/Main/System/HeroUI/HeroTrainWin.cs
@@ -7,7 +7,7 @@
/// <summary>
/// 姝﹀皢鍩瑰吇鐣岄潰
/// </summary>
-public partial class HeroTrainWin : UIBase
+public class HeroTrainWin : UIBase
{
[SerializeField] Button showFuncBtn; //鍙樉绀虹珛缁樻椂鐐瑰嚮锛屾樉绀哄姛鑳�
[SerializeField] Transform funcForm;
@@ -39,6 +39,7 @@
[SerializeField] Image countryImg;
[SerializeField] Text awakeLVText;
+ //灞炴�у尯
[SerializeField] Button attrBtn;
[SerializeField] Image unfoldImg; //灞曞紑鏃舵寜閽殑鍥炬爣
[SerializeField] Image foldImg; //鏀惰捣鏃舵寜閽殑鍥炬爣
@@ -59,6 +60,10 @@
[SerializeField] LongPressButton lvupBtn;
[SerializeField] Button allAttrBtn;
[SerializeField] Text allPotentialText; //娼滆兘
+ [SerializeField] Text[] fetterText; //缇佺粖
+ [SerializeField] Text[] fetterNameText; //缇佺粖
+
+
string guid;
HeroInfo hero;
@@ -84,7 +89,7 @@
ChangeHero(-1);
});
- lockBtn.AddListener(()=> { hero.ChangeLockState(); });
+ lockBtn.AddListener(() => { hero.ChangeLockState(); });
resetBtn.AddListener(ResetBtnClick);
deleteBtn.AddListener(DeleteHero);
awakeBtn.AddListener(() =>
@@ -178,6 +183,7 @@
RefreshFoldState();
RefreshAttr();
RefreshAllPotential();
+ RefreshFetter();
}
void RefreshItemLockEvent(PackType type, string guid, bool lockState)
@@ -259,7 +265,7 @@
{
if (HeroUIManager.Instance.awakeRebirthCnt >= HeroUIManager.Instance.rebornAwakeHeroMaxCount)
- {
+ {
SysNotifyMgr.Instance.ShowTip("HeroRebornAwakeMax");
return;
}
@@ -293,7 +299,7 @@
GameNetSystem.Instance.SendInfo(pack);
HeroUIManager.Instance.lastFightPower = new KeyValuePair<string, long>(hero.itemHero.guid, hero.CalculatePower(false));
-
+
}
void DeleteHero()
@@ -484,13 +490,26 @@
List<string> attrStrArr = new List<string>();
for (int j = 0; j < nextQualityBreakConfig.AttrIDList.Length; j++)
{
+ if (nextQualityBreakConfig.AttrIDList[j] == 0)
+ continue;
string format = i < hero.breakLevel ? "{0}" + UIHelper.AppendColor(TextColType.Green, "+{1}") : "{0}+{1}";
attrStrArr.Add(PlayerPropertyConfig.GetFullDescription(nextQualityBreakConfig.AttrIDList[j], nextQualityBreakConfig.AttrValueList[j], format));
}
+
if (nextQualityBreakConfig.SkillID != 0)
{
- attrStrArr.Add(SkillConfig.Get(nextQualityBreakConfig.SkillID)?.Description);
+ var skill = SkillConfig.Get(nextQualityBreakConfig.SkillID);
+ if (skill != null)
+ {
+ attrStrArr.Add(skill.Description);
+ }
+ else
+ {
+ Debug.LogError("鏈厤缃妧鑳�" + nextQualityBreakConfig.SkillID);
+ }
}
+
+
if (i < hero.breakLevel)
{
allAttrStr += Language.Get("herocard63", i + 1, string.Join(Language.Get("L1112"), attrStrArr)) + "\n";
@@ -506,5 +525,45 @@
}
+ //缇佺粖
+ void RefreshFetter()
+ {
+ for (int i = 0; i < fetterText.Length; i++)
+ {
+ if (i < hero.heroConfig.FetterIDList.Length)
+ {
+ fetterText[i].SetActive(true);
+ var fetterID = hero.heroConfig.FetterIDList[i];
+ HeroFetterConfig fetterConfig = HeroFetterConfig.Get(fetterID);
+ List<string> heroNames = new List<string>();
+ bool isAllCollect = true; //鏄惁鍏ㄦ敹闆�
+ foreach (var tmpHeroID in fetterConfig.HeroIDList)
+ {
+ heroNames.Add(HeroConfig.Get(tmpHeroID).Name);
+ if (HeroManager.Instance.GetHeroCountByID(tmpHeroID) == 0)
+ {
+ isAllCollect = false;
+ }
+ }
+ var attrStr = string.Join(Language.Get("SplitString1"), heroNames) + Language.Get("herocard38");
+ for (int j = 0; j < fetterConfig.AttrIDList.Length; j++)
+ {
+ string format = !isAllCollect ? "{0}+{1}" : "{0}+" + UIHelper.AppendColor(TextColType.Green, "{1}");
+ attrStr += Language.Get("L1112") + PlayerPropertyConfig.GetFullDescription(fetterConfig.AttrIDList[j], fetterConfig.AttrValueList[j], format);
+ }
+ fetterText[i].text = attrStr;
+ fetterText[i].color = UIHelper.GetUIColor(isAllCollect ? TextColType.NavyBrown : TextColType.Gray);
+ fetterNameText[i].text = fetterConfig.FetterName;
+ fetterNameText[i].color = UIHelper.GetUIColor(isAllCollect ? TextColType.NavyBrown : TextColType.Gray);
+
+ }
+ else
+ {
+ fetterText[i].SetActive(false);
+ }
+ }
+
+
+ }
}
\ No newline at end of file
diff --git a/Main/System/HeroUI/HeroTrainWinEx.cs b/Main/System/HeroUI/HeroTrainWinEx.cs
deleted file mode 100644
index c3f9aee..0000000
--- a/Main/System/HeroUI/HeroTrainWinEx.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System.Collections.Generic;
-using System.Linq;
-using UnityEngine;
-using UnityEngine.UI;
-
-
-/// <summary>
-/// 姝﹀皢鍩瑰吇鐣岄潰
-/// </summary>
-public partial class HeroTrainWin : UIBase
-{
-
-}
\ No newline at end of file
diff --git a/Main/System/HeroUI/HeroTrainWinEx.cs.meta b/Main/System/HeroUI/HeroTrainWinEx.cs.meta
deleted file mode 100644
index 0820870..0000000
--- a/Main/System/HeroUI/HeroTrainWinEx.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 0a54f9a153cd2c04cb1deeeaa05b7741
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
--
Gitblit v1.8.0