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