| | |
| | | skillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(userObj, None, curSkill, ChConfig.TriggerType_AddHP)
|
| | |
|
| | | # 回合制
|
| | | curePer = 0 # 治疗加成、强化灵兽
|
| | | cureDefPer = 0 # 敌方的弱化治疗、弱化灵兽
|
| | | curePer = 0 # 治疗加成
|
| | | cureDefPer = 0 # 敌方的弱化治疗
|
| | | baseValueAddPer = 0 # 强化灵兽可影响基础值
|
| | | baseValueDefPer = 0 # 弱化灵兽可影响基础值
|
| | | if userObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnFightTimeline):
|
| | | isPetNPC = PetControl.IsPetNPC(userObj)
|
| | | enemyObj = None
|
| | |
| | | enemyObj = TurnAttack.GetEnemyObj(petOwner)
|
| | |
|
| | | curePer += GameObj.GetCurePer(petOwner)
|
| | | curePer += GameObj.GetPetStrengthenPer(petOwner) # 强化灵兽
|
| | | baseValueAddPer += GameObj.GetPetStrengthenPer(petOwner) # 强化灵兽
|
| | | else:
|
| | | enemyObj = TurnAttack.GetEnemyObj(userObj)
|
| | |
|
| | |
| | | if enemyObj:
|
| | | cureDefPer += GameObj.GetCureDefPer(enemyObj)
|
| | | if isPetNPC:
|
| | | cureDefPer += GameObj.GetPetWeakenPer(enemyObj) # 弱化灵兽
|
| | | baseValueDefPer += GameObj.GetPetWeakenPer(enemyObj) # 弱化灵兽
|
| | |
|
| | | if baseValueAddPer or baseValueDefPer:
|
| | | #GameWorld.DebugLog("治疗基值受强化弱化影响变化: cureBaseValue=%s,baseValueAddPer=%s,baseValueDefPer=%s" |
| | | # % (cureBaseValue, baseValueAddPer, baseValueDefPer))
|
| | | cureBaseValue = cureBaseValue * (ChConfig.Def_MaxRateValue + baseValueAddPer - baseValueDefPer) / float(ChConfig.Def_MaxRateValue)
|
| | | cureBaseValue = max(0, cureBaseValue) # 防止基值被弱化为负值,在恢复比例也是负值的情况下负负得正导致可以恢复血量
|
| | | skillPer += (curePer - cureDefPer) # 可能负值
|
| | | #公式计算治疗值
|
| | | cureHP = int((cureBaseValue * skillPer / float(ChConfig.Def_MaxRateValue) + skillValue + addExValue) * curePercent)
|