From 007fbd542c30f5fa8308128aac26ce6584b3067a Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期二, 17 六月 2025 17:13:47 +0800
Subject: [PATCH] 117 【武将】武将系统 武将的属性部分 部分战斗的内容

---
 Main/System/Hero/HeroInfo.Properties.cs |  124 +++++++++++++++++++++++++++++++++--------
 1 files changed, 100 insertions(+), 24 deletions(-)

diff --git a/Main/System/Hero/HeroInfo.Properties.cs b/Main/System/Hero/HeroInfo.Properties.cs
index dbb3911..3f40b99 100644
--- a/Main/System/Hero/HeroInfo.Properties.cs
+++ b/Main/System/Hero/HeroInfo.Properties.cs
@@ -15,48 +15,124 @@
     public int attack = 0;
     // 闃插尽鍔�
     public int defense = 0;
-    // 閫熷害
-    public int speed = 0;
 
 
 
-    //鎴樻枟灞炴��
-    //闂伩姒傜巼
-    public float dodge = 0f;
-    //鏆村嚮姒傜巼
-    public float crit = 0f;
-    //杩炲嚮姒傜巼
-    public float comboRate = 0f;
+    //鎴樻枟灞炴�� 鍑绘檿銆佹毚鍑汇�佽繛鍑汇�佹牸鎸°�佸弽鍑汇�佸惛琛�
     //鐪╂檿姒傜巼
-    public float stunRate = 0f;
+    public int stunRate = 0;
+    //鏆村嚮姒傜巼
+    public int critRate = 0;
+    //杩炲嚮姒傜巼
+    public int comboRate = 0;
+    //鏍兼尅姒傜巼
+    public int blockRate = 0;
     //鍙嶅嚮姒傜巼
-    public float counterAttack = 0f;
+    public int counterAttackRate = 0;
     //鏀诲嚮鐩爣鏃讹紝閫犳垚浼ゅ杞寲鎴愮敓鍛界殑鐧惧垎姣旀暟鍊兼彁鍗�
-    public float recoverRate = 0f;
+    public int recoverRate = 0;
 
     //鎴樻枟鎶垫姉灞炴��
-    //闂伩鎶垫姉
-    public float dodgeResist = 0f;
-    //鏆村嚮鎶垫姉
-    public float critResist = 0f;
-    //杩炲嚮鎶垫姉
-    public float comboResist = 0f;
     //鐪╂檿鎶垫姉
-    public float stunResist = 0f;
+    public int stunResist = 0;
+    //鏆村嚮鎶垫姉
+    public int critResist = 0;
+    //杩炲嚮鎶垫姉
+    public int comboResist = 0;
+    //鏍兼尅鎶垫姉
+    public int blockResist = 0;
     //鍙嶅嚮鎶垫姉
-    public float counterAttackResist = 0f;
+    public int counterAttackResist = 0;
     //鍑忓皯鏀诲嚮鏃跺惛琛�杞寲鎴愮敓鍛界殑鐧惧垎姣旀暟鍊�
-    public float recoverResist = 0f;
+    public int recoverResist = 0;
+
+    //  鐗规畩灞炴��(寰呰ˉ鍏�)
+
 
     //璁$畻涓汉/鑱屼笟/绉嶆棌鍏绘垚灞炴�у姞鎴�
     public void CalculateProperties()
     {
-        //todo
+// 姝﹀皢鍗曚綋灞炴�э紝鏍规嵁缁ф壙姣斾緥锛屼粠鍏ㄤ綋灞炴�х户鎵垮緱鍒�
+// 渚嬪锛氭灏嗘敾鍑诲姏=
+// [锛堣澶囧熀纭�鍥哄畾鍊�+鍏跺畠妯″潡鐨勫浐瀹氬�硷級* 锛�1+鍒濆鍔犳垚%+姝﹀皢鍗囩骇鍔犳垚%+姝﹀皢绐佺牬鍔犳垚%+姝﹀皢鍚炲櫖鏄熺骇鍔犳垚%+鍥鹃壌鍔犳垚%锛塢
+// *
+// [ 缁ф壙姣斾緥*锛�1+缇佺粖鍔犳垚%+娼滆兘鍔犳垚%+澶╄祴鍔犳垚%+瑙夐啋鏁堟灉鍔犳垚%锛塢
+        hp = GetProperties(HeroAttrType.hp);
+        attack = GetProperties(HeroAttrType.attack);
+        defense = GetProperties(HeroAttrType.defense);
+        stunRate = GetProperties(HeroAttrType.stunRate);
+        critRate = GetProperties(HeroAttrType.critRate);
+        comboRate = GetProperties(HeroAttrType.comboRate);
+        blockRate = GetProperties(HeroAttrType.blockRate);
+        counterAttackRate = GetProperties(HeroAttrType.counterAttackRate);
+        recoverRate = GetProperties(HeroAttrType.recoverRate);
+        stunResist = GetProperties(HeroAttrType.stunResist);
+        critResist = GetProperties(HeroAttrType.critResist);
+        comboResist = GetProperties(HeroAttrType.comboResist);
+        blockResist = GetProperties(HeroAttrType.blockResist);
+        counterAttackResist = GetProperties(HeroAttrType.counterAttackResist);
+        recoverResist = GetProperties(HeroAttrType.recoverResist);
+    }
+
+    protected int GetProperties(HeroAttrType attrType)
+    {
+        return GetStableProperties(attrType) 
+                    * GetCultivationPercent(attrType)
+                    * GetInheritRate(attrType) 
+                    * GetInfluenceByInheritPercent(attrType);
+    }
+
+
+    //  鍥哄畾鍊煎睘鎬�
+    public int GetStableProperties(HeroAttrType attrType)
+    {
+        int stableValue = 0;
+        stableValue += GetEquipStableProperties(attrType);
+        return stableValue;
+    }
+
+    //  鍩瑰吇鐧惧垎姣�
+    public int GetCultivationPercent(HeroAttrType attrType)
+    {
+        int cultivationPercent = 100;
+        cultivationPercent += GetQualityCultivationPercent(attrType);//鍒濆鍔犳垚鏍规嵁姝﹀皢鍝佽川鍐冲畾锛屼笉鍚屽搧璐ㄦ灏嗗垵濮嬪姞鎴愪笉鍚� HeroInfo.Quality.cs
+        cultivationPercent += GetLevelCultivationPercent(attrType);// 绛夌骇缁欑殑鐧惧垎姣� HeroInfo.Level.cs
+        cultivationPercent += GetBreakCultivationPercent(attrType);// 绐佺牬缁欑殑鐧惧垎姣� HeroInfo.Break.cs
+        cultivationPercent += GetStarCultivationPercent(attrType);// 鍚炲櫖鏄熺骇缁欑殑鐧惧垎姣� HeroInfo.Star.cs
+        cultivationPercent += GetCollectionCultivationPercent(attrType);// 鍥鹃壌缁欑殑鐧惧垎姣� HeroInfo.Collection.cs
+        return cultivationPercent;
+    }
+
+    //  琚户鎵挎瘮渚嬪奖鍝嶇殑鐧惧垎姣斿睘鎬�
+    public int GetInfluenceByInheritPercent(HeroAttrType attrType)
+    {
+        // 锛�1+缇佺粖鍔犳垚%+娼滆兘鍔犳垚%+澶╄祴鍔犳垚%+瑙夐啋鏁堟灉鍔犳垚%锛�
+
+        int IFByInheritPercent = 100;
+        IFByInheritPercent += GetIFByInheritFetterPercent(attrType); //缇佺粖鍔犳垚 HeroInfo.Fetter
+        IFByInheritPercent += GetIFByInheritBreakPercent(attrType);  //娼滆兘鍔犳垚 HeroInfo.Break
+        IFByInheritPercent += GetIFByInheritTalentPercent(attrType); //澶╄祴鍔犳垚 HeroInfo.Talent
+        IFByInheritPercent += GetIFByInheritAwakePercent(attrType); //瑙夐啋鍔犳垚 HeroInfo.Awake
+        return IFByInheritPercent;
     }
 
     public int CalculatePower()
     {
-        //todo
-        return 0;
+        //  鏆傝
+        return hp +
+                attack +
+                defense +
+                stunRate +
+                critRate +
+                comboRate +
+                blockRate +
+                counterAttackRate +
+                recoverRate +
+                stunResist +
+                critResist +
+                comboResist +
+                blockResist +
+                counterAttackResist +
+                recoverResist;
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0