|   | 
|   | 
| using System; | 
| using System.Collections.Generic; | 
| using System.Linq; | 
|   | 
| public partial class HeroInfo | 
| { | 
|   | 
|     // 生命 | 
|     public int hp = 0; | 
|     // 攻击力 | 
|     public int attack = 0; | 
|     // 防御力 | 
|     public int defense = 0; | 
|   | 
|   | 
|   | 
|     //战斗属性 击晕、暴击、连击、格挡、反击、吸血 | 
|     //眩晕概率 | 
|     public int stunRate = 0; | 
|     //暴击概率 | 
|     public int critRate = 0; | 
|     //连击概率 | 
|     public int comboRate = 0; | 
|     //格挡概率 | 
|     public int blockRate = 0; | 
|     //反击概率 | 
|     public int counterAttackRate = 0; | 
|     //攻击目标时,造成伤害转化成生命的百分比数值提升 | 
|     public int recoverRate = 0; | 
|   | 
|     //战斗抵抗属性 | 
|     //眩晕抵抗 | 
|     public int stunResist = 0; | 
|     //暴击抵抗 | 
|     public int critResist = 0; | 
|     //连击抵抗 | 
|     public int comboResist = 0; | 
|     //格挡抵抗 | 
|     public int blockResist = 0; | 
|     //反击抵抗 | 
|     public int counterAttackResist = 0; | 
|     //减少攻击时吸血转化成生命的百分比数值 | 
|     public int recoverResist = 0; | 
|   | 
|     //  特殊属性(待补充) | 
|     //  最终伤害 | 
|     public int finalDamageIncrease = 0; | 
|     //  最终免伤 | 
|     public int finalDamageReduce; | 
|     //  爆伤 | 
|     public int critDamageIncrease; | 
|     //  减少爆伤 | 
|     public int critDamageReduce; | 
|     //  治疗增益 | 
|     public int healIncrease; | 
|     //  治疗减益 | 
|     public int healReduce; | 
|     //  物理增伤 | 
|     public int damageIncrease; | 
|     //  减少物伤 | 
|     public int damageReduce; | 
|     //  法术增伤 | 
|     public int magicIncrease; | 
|     //  减少法伤 | 
|     public int magicReduce; | 
|     //  普攻增伤 | 
|     public int normalAttackIncrease; | 
|     //  减少普攻伤害 | 
|     public int normalAttackReduce; | 
|     //  增加技能伤害 | 
|     public int rageSkillAttackIncrease; | 
|     //  减少技能伤害 | 
|     public int rageSkillAttackReduce; | 
|     //  增加持续伤害的百分比 | 
|     public int continousSkillIncrease; | 
|     //  减少持续伤害的百分比 | 
|     public int continousSkillReduce; | 
|     //  增加护盾百分比 | 
|     public int shieldSkillIncrease; | 
|     //  减少护盾百分比 | 
|     public int shieldSkillReduce; | 
|   | 
|   | 
|   | 
|     //计算个人/职业/种族养成属性加成 | 
|     public void CalculateProperties() | 
|     { | 
|         allSkillTypeIDToID.Clear(); | 
|         var skill = SkillConfig.Get(heroConfig.AtkSkillID); | 
|         if (skill != null) | 
|         {  | 
|             allSkillTypeIDToID[skill.SkillTypeID] = heroConfig.AtkSkillID; | 
|         } | 
|         skill = SkillConfig.Get(heroConfig.AngerSkillID); | 
|         if (skill != null) | 
|         {  | 
|             allSkillTypeIDToID[skill.SkillTypeID] = heroConfig.AngerSkillID; | 
|         } | 
|   | 
|         RefreshTalentAttr(); | 
|         RefreshBreakAttr(); | 
|         RefreshAwakeAttr(); | 
|     } | 
|   | 
|   | 
|   | 
|     long tmpFightPower = 0; | 
|     public long CalculateFightPower(bool forceRefresh = true) | 
|     { | 
|         if (forceRefresh || tmpFightPower == 0) | 
|         {  | 
|             tmpFightPower = FightPowerManager.Instance.GetHeroFightPower(this); | 
|         } | 
|         return tmpFightPower; | 
|     } | 
|   | 
|   | 
|     //上阵属性:攻防血 | 
|     public int GetOnBattleAddPer() | 
|     { | 
|         return qualityConfig.InitAddPer + qualityConfig.LVAddPer * (heroLevel - 1) + qualityConfig.BreakLVAddPer * breakLevel + qualityConfig.StarAddPer * heroStar; | 
|     } | 
|      | 
|     //返回heroLevel为1的山寨上阵属性,用于预览未获得英雄的初始上阵属性 | 
|     public int GetFakeOnBattleAddPer() | 
|     { | 
|         return qualityConfig.InitAddPer + qualityConfig.LVAddPer * (1 - 1) + qualityConfig.BreakLVAddPer * breakLevel + qualityConfig.StarAddPer * heroStar; | 
|     } | 
|   | 
|     public int GetLineupLVAddPer() | 
|     { | 
|         return qualityConfig.LVAddPer * (heroLevel - 1); | 
|     } | 
|   | 
|     public int GetLineupBreakLVAddPer() | 
|     { | 
|         return qualityConfig.BreakLVAddPer * breakLevel; | 
|     } | 
|   | 
|     public int GetLineupStarAddPer() | 
|     { | 
|         return qualityConfig.StarAddPer * heroStar; | 
|     } | 
|   | 
|     //额外配置的百分百比加成 三围对应的 百分比加成 | 
|     public int GetSelfAddPer(int attrType) | 
|     { | 
|         if (PlayerPropertyConfig.baseAttr2perDict.ContainsKey(attrType)) | 
|         { | 
|             var pertype = PlayerPropertyConfig.baseAttr2perDict[attrType]; | 
|             return heroConfig.BatAttrDict.ContainsKey(pertype) ? heroConfig.BatAttrDict[pertype] : 0; | 
|         } | 
|         return 0; | 
|     } | 
|   | 
|     public int GetSelfAddValue(int attrType) | 
|     { | 
|         return heroConfig.BatAttrDict.ContainsKey(attrType) ? heroConfig.BatAttrDict[attrType] : 0; | 
|     } | 
|      | 
| } |