From 09bc892c7283df8757a07b646d5af21ddaa263d1 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期四, 06 十一月 2025 18:22:34 +0800
Subject: [PATCH] 164 天子的考验-客户端

---
 Main/System/Hero/HeroInfo.Break.cs |   92 ++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 80 insertions(+), 12 deletions(-)

diff --git a/Main/System/Hero/HeroInfo.Break.cs b/Main/System/Hero/HeroInfo.Break.cs
index 200e689..decda04 100644
--- a/Main/System/Hero/HeroInfo.Break.cs
+++ b/Main/System/Hero/HeroInfo.Break.cs
@@ -1,19 +1,87 @@
 
 
+//姝﹀皢绐佺牬锛氭灏嗗崌绾у悗闇�瑕佺獊鐮存墠鑳界户缁崌绾э紝绐佺牬鍙幏寰楁綔鑳�
+using System.Collections.Generic;
 
 public partial class HeroInfo
 {
-	protected int GetBreakCultivationPercent(HeroAttrType attrType)
-	{
-		//	YYL TODO
-		return 0;
-	}
-	
-	protected int GetIFByInheritBreakPercent(HeroAttrType attrType)
-	{
-		//	YYL TODO
-		return 0;
-	}
-	
+	//  绐佺牬閰嶇疆
+	public HeroBreakConfig breakConfig { get; private set;}
 
+	//  鍝佽川绐佺牬閰嶇疆
+	public HeroQualityBreakConfig qualityBreakConfig { get; private set;}
+
+	//  姝﹀皢绐佺牬绛夌骇
+	public int breakLevel
+	{
+		get
+		{
+			if (itemHero == null)
+				return 0;
+			return itemHero.GetUseDataFirstValue(74);
+		}
+	}
+
+	Dictionary<int, int> breakAttrs = new Dictionary<int, int>();   //娼滆兘灞炴�d锛氭綔鑳藉��
+	//璁$畻娼滆兘灞炴��
+	public void RefreshBreakAttr()
+	{
+		breakAttrs.Clear();
+		for (int i = 0; i < breakLevel; i++)
+		{
+			var tmpBreakConfig = HeroBreakConfig.GetHeroBreakConfig(heroId, i);
+			if (tmpBreakConfig == null)
+				continue;
+			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]);
+				}
+				else
+				{
+					breakAttrs[id] += tmpBreakConfig.AttrValueList[j];
+				}
+			}
+
+			if (tmpBreakConfig.SkillID != 0)
+			{
+				var skillConfig = SkillConfig.Get(tmpBreakConfig.SkillID);
+				if (skillConfig == null) continue;
+				if (allSkillTypeIDToID.ContainsKey(skillConfig.SkillTypeID))
+				{
+					var tmpSkillConfig = SkillConfig.Get(allSkillTypeIDToID[skillConfig.SkillTypeID]);
+					if (skillConfig.SkillLV > tmpSkillConfig.SkillLV)
+					{
+						//鍙栨渶澶ф妧鑳�
+						allSkillTypeIDToID[skillConfig.SkillTypeID] = tmpBreakConfig.SkillID;
+					}
+				}
+				else
+				{
+					allSkillTypeIDToID[skillConfig.SkillTypeID] = tmpBreakConfig.SkillID;
+				}
+			}
+		}
+	}
+
+	public int GetBreakAttrValue(int attrType)
+	{
+		int value = 0;
+		breakAttrs.TryGetValue(attrType, out value);
+		return value;
+	}
+
+	public int GetBreakAttrPer(int attrType)
+	{ 
+        if (PlayerPropertyConfig.baseAttr2perDict.ContainsKey(attrType))
+        {
+            var pertype = PlayerPropertyConfig.baseAttr2perDict[attrType];
+            return breakAttrs.ContainsKey(pertype) ? breakAttrs[pertype] : 0;
+        }
+        return 0;
+	}
 }

--
Gitblit v1.8.0