| | |
| | | return
|
| | |
|
| | | # 治疗加成
|
| | | curePer = PlayerControl.GetCurePer(curObj) if curObjType == IPY_GameWorld.gotPlayer else ChConfig.Def_MaxRateValue |
| | | addValue = int(addValue*curePer*1.0/ChConfig.Def_MaxRateValue)
|
| | | curePer = GameObj.GetCurePer(curObj) + ChConfig.Def_MaxRateValue
|
| | | curePerReduce = TurnAttack.GetEnemyCureDefPer(curObj) # 弱化治疗,取对方的
|
| | | curePerFinal = max(0, curePer - curePerReduce)
|
| | | addValueFianl = int(addValue*curePerFinal*1.0/ChConfig.Def_MaxRateValue)
|
| | |
|
| | | maxHP = GameObj.GetMaxHP(curObj)
|
| | |
|
| | |
| | | if curHP == maxHP:
|
| | | #广播加血类型
|
| | | if isNotify:
|
| | | AttackCommon.ChangeHPView(curObj, curObj, skillTypeID, addValue, ChConfig.Def_HurtTYpe_Recovery)
|
| | | return
|
| | | AttackCommon.ChangeHPView(curObj, curObj, skillTypeID, addValueFianl, ChConfig.Def_HurtTYpe_Recovery)
|
| | | GameWorld.DebugLog(" 治疗时已满血: curID=%s,skillTypeID=%s,maxHP=%s" % (curObj.GetID(), skillTypeID, maxHP))
|
| | | return addValueFianl
|
| | |
|
| | | remainHP = min(curHP + addValue, maxHP)
|
| | | remainHP = min(curHP + addValueFianl, maxHP)
|
| | |
|
| | | #---玩家处理---
|
| | | if curObjType == IPY_GameWorld.gotPlayer:
|
| | | GameObj.SetHP(curObj, remainHP, not isNotify)
|
| | | FBLogic.OnFBAddHP(curObj, addValue)
|
| | | FBLogic.OnFBAddHP(curObj, addValueFianl)
|
| | |
|
| | | #---NPC处理---
|
| | | elif curObjType == IPY_GameWorld.gotNPC:
|
| | |
| | |
|
| | | #广播加血类型
|
| | | if isNotify:
|
| | | AttackCommon.ChangeHPView(curObj, curObj, skillTypeID, addValue, ChConfig.Def_HurtTYpe_Recovery)
|
| | | AttackCommon.ChangeHPView(curObj, curObj, skillTypeID, addValueFianl, ChConfig.Def_HurtTYpe_Recovery)
|
| | |
|
| | | return
|
| | | GameWorld.DebugLog(" 治疗: curID=%s,skillTypeID=%s,curePerFinal=%s(%s-%s),addValue=%s,addValueFianl=%s,HP=%s" |
| | | % (curObj.GetID(), skillTypeID, curePerFinal, curePer, curePerReduce, addValue, addValueFianl, remainHP))
|
| | | return addValueFianl
|
| | |
|
| | | ## 直接扣血不走公式
|
| | | # view 是否广播客户端飘血
|