| | |
| | |
|
| | | # 血盾
|
| | | hurtValue = CalcBloodShield(atkObj, defObj, hurtValue)
|
| | | |
| | | remainHP = min(dMaxHP, max(0, dHP - hurtValue)) # 剩余血量
|
| | |
|
| | | remainHP = int(remainHP) #防范
|
| | |
| | | else:
|
| | | GameWorld.ErrLog('计算伤血值时,防守方类型错误:defObjType = %s' % (defObjType))
|
| | | return resultHurtType
|
| | |
|
| | | if GameObj.GetHP(defObj) > 0:
|
| | | # 被攻击者将部分伤害转化为血量, 返回转化的百分比(小数点)
|
| | | changePer = PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(defObj, atkObj, None, ChConfig.TriggerType_ChangeHurtToHP)
|
| | | if changePer:
|
| | | SkillCommon.SkillAddHP(defObj, 0, int(changePer*hurtValue))
|
| | |
|
| | | lostValue = dHP - GameObj.GetHP(defObj) # 实际掉血量
|
| | | resultHurtType.LostHP = lostValue
|
| | |
| | | atkBackHP += PlayerControl.GetPVPAtkBackHP(atkObj)
|
| | | # 百分比吸血
|
| | | atkBackHPPer = PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, None, None, ChConfig.TriggerType_Buff_SuckBloodPer)
|
| | | atkBackHPPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, None, None, ChConfig.TriggerType_Buff_SuckBloodPer)
|
| | | atkBackHP += int(hurtValue * atkBackHPPer*1.0 / ChConfig.Def_MaxRateValue)
|
| | |
|
| | | suckHP += atkBackHP
|