| | |
| | | if GameWorld.CanHappen(missRate):
|
| | | return 0, ChConfig.Def_HurtType_Miss
|
| | |
|
| | | hurtValueExPer = 0 # 最终的伤害值附加额外伤害百分比
|
| | | hurtType, hurtTypeResultDict = CalcHurtTypeResult(atkObj, defObj, atkObjType, defObjType, happenState, curSkill)
|
| | | #GameWorld.DebugLog("GetHurtHP hurtType=%s, hurtTypeResultDict=%s" % (hurtType, hurtTypeResultDict))
|
| | | isLuckyHit, aLuckyHit, dLuckyHitReduce = hurtTypeResultDict[ChConfig.Def_HurtType_LuckyHit] # 幸运一击
|
| | |
| | | superHitPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_SuperHitPer)
|
| | | superHitPer += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_SuperHitPer)
|
| | | aSuperHit = aSuperHit*(superHitPer + ChConfig.Def_MaxRateValue)/ChConfig.Def_MaxRateValue
|
| | | |
| | | if isSuperHit:
|
| | | hurtValueExPer += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(defObj, atkObj, curSkill, ChConfig.TriggerType_BeSuperHitHurtExPer)
|
| | | else:
|
| | | # 重击加成
|
| | | thumpPer = 0
|
| | |
| | | % (atkObj.GetID(), defObj.GetID(), skillID, hurtValue, multiValue))
|
| | | hurtValue = int(hurtValue * multiValue)
|
| | |
|
| | | # 附加额外的伤害百分比 - 在最终的伤害计算完后再额外附加的伤害百分比
|
| | | if hurtValueExPer > 0:
|
| | | GameWorld.DebugLog(" 额外附加伤害: atkID=%s,defID=%s,skillID=%s,hurtValue=%s,hurtValueExPer=%s" |
| | | % (atkObj.GetID(), defObj.GetID(), skillID, hurtValue, hurtValueExPer))
|
| | | hurtValue += int(hurtValue * hurtValueExPer / float(ChConfig.Def_MaxRateValue))
|
| | | |
| | | #hurtValue = min(max(hurtValue, 0), ChConfig.Def_UpperLimit_DWord)
|
| | |
|
| | | if hurtType == ChConfig.Def_HurtType_Normal and atkSkillPerYinji > 0:
|