| | |
| | | { |
| | | long suckHp = GetSuckHp(skillBase.tagUseSkillAttack); |
| | | SkillConfig skillConfig = skillBase.skillConfig; |
| | | SkillSkinConfig skillSkinConfig = skillBase.skillSkinConfig; |
| | | long totalDamage = GeneralDefine.GetFactValue(hurt.HurtHP, hurt.HurtHPEx); |
| | | long totalReflectHp = hurt.BounceHP; |
| | | |
| | | // 计算伤害分段 |
| | | long currentHitDamage = 0; |
| | | List<long> damageList = DivideDamageToList(skillConfig.DamageDivide, hitIndex, totalDamage, ref currentHitDamage); |
| | | List<long> damageList = DivideDamageToList(skillSkinConfig.DamageDivide, hitIndex, totalDamage, ref currentHitDamage); |
| | | |
| | | // 计算吸血分段 |
| | | long currentHitSuckHp = 0; |
| | | List<long> suckHpList = bSuckHp ? |
| | | DivideDamageToList(skillConfig.DamageDivide, hitIndex, suckHp, ref currentHitSuckHp) : new List<long>(); |
| | | DivideDamageToList(skillSkinConfig.DamageDivide, hitIndex, suckHp, ref currentHitSuckHp) : new List<long>(); |
| | | |
| | | // 计算反伤分段 |
| | | long currentHitReflectHp = 0; |
| | | List<long> reflectHpList = DivideDamageToList(skillConfig.DamageDivide, hitIndex, totalReflectHp, ref currentHitReflectHp); |
| | | List<long> reflectHpList = DivideDamageToList(skillSkinConfig.DamageDivide, hitIndex, totalReflectHp, ref currentHitReflectHp); |
| | | |
| | | // 创建目标受伤对象 |
| | | BattleHurtObj hurter = CreateHurter(target, damageList, hurt, hitIndex, skillConfig, currentHitDamage); |
| | | BattleHurtObj hurter = CreateHurter(target, damageList, hurt, hitIndex, skillSkinConfig, currentHitDamage); |
| | | |
| | | // 创建施法者对象 |
| | | BattleCastObj caster = CreateCaster(skillBase, suckHpList, reflectHpList, currentHitSuckHp, currentHitReflectHp); |
| | |
| | | battleHurtParam.hitIndex = hitIndex; |
| | | battleHurtParam.deadPack = deadPack; |
| | | battleHurtParam.skillConfig = skillConfig; |
| | | battleHurtParam.skillSkinConfig = skillSkinConfig; |
| | | battleHurtParam.packUID = skillBase.tagUseSkillAttack.packUID; |
| | | return battleHurtParam; |
| | | } |
| | | |
| | | public static BattleHurtObj CreateHurter(BattleObject target, List<long> damageList, HB427_tagSCUseSkill.tagSCUseSkillHurt hurt, int hitIndex, SkillConfig skillConfig, long currentHitDamage) |
| | | public static BattleHurtObj CreateHurter(BattleObject target, List<long> damageList, HB427_tagSCUseSkill.tagSCUseSkillHurt hurt, int hitIndex, SkillSkinConfig skillSkinConfig, long currentHitDamage) |
| | | { |
| | | BattleHurtObj hurter = new BattleHurtObj(); |
| | | hurter.hurtObj = target; |
| | |
| | | hurter.fromShieldValue = buffMgr != null ? buffMgr.GetShieldValue() : 0; // 命格没有护盾 |
| | | |
| | | // 判断是否是最后一击 |
| | | bool isLastHit = hitIndex >= skillConfig.DamageDivide.Length - 1; |
| | | bool isLastHit = hitIndex >= skillSkinConfig.DamageDivide.Length - 1; |
| | | |
| | | // 判断是治疗还是伤害 |
| | | bool isHealing = IsHealing(hurt); |
| | |
| | | { |
| | | var skillID = hB427_TagSCUseSkill.SkillID; |
| | | var skillConfig = SkillConfig.Get((int)skillID); |
| | | var skillSkinConfig = skillConfig.GetOriginSkinConfig(); |
| | | |
| | | if (null == skillConfig) |
| | | { |