| | |
| | | # 禁止治疗
|
| | | return
|
| | |
|
| | | # 治疗加成
|
| | | 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)
|
| | | addValueFianl = addValue
|
| | |
|
| | | maxHP = GameObj.GetMaxHP(curObj)
|
| | |
|
| | |
| | | if isNotify:
|
| | | AttackCommon.ChangeHPView(curObj, curObj, skillTypeID, addValueFianl, ChConfig.Def_HurtTYpe_Recovery)
|
| | |
|
| | | 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))
|
| | | GameWorld.DebugLog(" 治疗: curID=%s,skillTypeID=%s,addValue=%s,addValueFianl=%s,HP=%s" |
| | | % (curObj.GetID(), skillTypeID, addValue, addValueFianl, remainHP))
|
| | | return addValueFianl
|
| | |
|
| | | ## 直接扣血不走公式
|
| | |
| | |
|
| | | return
|
| | |
|
| | | def GetBattleType(curSkill):
|
| | | ## 攻击类型
|
| | | if not curSkill:
|
| | | return ChConfig.ghtPhy
|
| | | battleType = curSkill.GetHurtType() / 10
|
| | | if not battleType:
|
| | | # 没有配置,默认物理攻击
|
| | | return ChConfig.ghtPhy
|
| | | return battleType
|
| | |
|
| | | def GetSkillBattleType(curSkill):
|
| | | if not curSkill:
|
| | | return ChConfig.Def_BattleRelationType_Comm
|
| | | #0通哟 1 PVP类型 2PVE类型
|
| | | return curSkill.GetHurtType()
|
| | | return curSkill.GetHurtType() % 10
|
| | |
|
| | | ## 检查技能是否为被动技能, 用于控制不可释放技能
|
| | | def isPassiveSkill(curSkill):
|
| | |
| | | #获得技能的计算参数值
|
| | | if cureType == ChConfig.Def_Cure_PHY:
|
| | | # 根据敏捷,力量差值及效果系数计算恢复比例
|
| | | skillPer = max(0, userObj.GetPHY() - userObj.GetSTR()) / float(curSkill.GetEffect(0).GetEffectValue(0))
|
| | | skillPer = max(0, userObj.GetPHY() - userObj.GetSTR()) / float(curSkill.GetEffect(0).GetEffectValue(0)) * ChConfig.Def_MaxRateValue
|
| | | GameWorld.DebugLog("英勇复苏: 敏=%s,力=%s,skillPer=%s" % (userObj.GetPHY(), userObj.GetSTR(), skillPer))
|
| | | else:
|
| | | skillPer = curSkill.GetEffect(0).GetEffectValue(0) / float(ChConfig.Def_MaxRateValue)
|
| | | skillPer = curSkill.GetEffect(0).GetEffectValue(0)
|
| | | #技能附加
|
| | | skillValue = curSkill.GetEffect(0).GetEffectValue(1)
|
| | |
|
| | | skillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(userObj, None, curSkill, ChConfig.TriggerType_AddHP)/float(ChConfig.Def_MaxRateValue)
|
| | | skillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(userObj, None, curSkill, ChConfig.TriggerType_AddHP)
|
| | | |
| | | # 回合制
|
| | | curePer = 0 # 治疗加成、强化灵兽
|
| | | cureDefPer = 0 # 敌方的弱化治疗、弱化灵兽
|
| | | if userObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnFightTimeline):
|
| | | isPetNPC = PetControl.IsPetNPC(userObj)
|
| | | enemyObj = None
|
| | | |
| | | if isPetNPC:
|
| | | petOwner = PetControl.GetPetNPCOwner(userObj)
|
| | | enemyObj = TurnAttack.GetEnemyObj(petOwner)
|
| | | |
| | | curePer += GameObj.GetCurePer(petOwner)
|
| | | curePer += GameObj.GetPetStrengthenPer(petOwner) # 强化灵兽
|
| | | else:
|
| | | enemyObj = TurnAttack.GetEnemyObj(userObj)
|
| | | |
| | | curePer += GameObj.GetCurePer(userObj)
|
| | | |
| | | if enemyObj:
|
| | | cureDefPer += GameObj.GetCureDefPer(enemyObj)
|
| | | if isPetNPC:
|
| | | cureDefPer += GameObj.GetPetWeakenPer(enemyObj) # 弱化灵兽
|
| | | |
| | | skillPer += (curePer - cureDefPer) # 可能负值
|
| | | #公式计算治疗值
|
| | | cureHP = int((cureBaseValue * skillPer + skillValue + addExValue) * curePercent)
|
| | | cureHP = int((cureBaseValue * skillPer / float(ChConfig.Def_MaxRateValue) + skillValue + addExValue) * curePercent)
|
| | | if not largeNum:
|
| | | cureHP = min(cureHP, ChConfig.Def_UpperLimit_DWord)
|
| | | cureHP = max(1, cureHP) # 保底1点
|
| | |
|
| | | #GameWorld.DebugLog("获取治疗值(%s):cureType=%s,cureBaseValue=%s,skillPer=%s,skillValue=%s" |
| | | # % (cureHP, cureType, cureBaseValue, skillPer, skillValue))
|
| | | #GameWorld.DebugLog("获取治疗值(%s):skillID=%s,cureType=%s,cureBaseValue=%s,skillPer=%s,skillValue=%s,curePer=%s,cureDefPer=%s" |
| | | # % (cureHP, curSkill.GetSkillID(), cureType, cureBaseValue, skillPer, skillValue, curePer, cureDefPer))
|
| | | return cureHP
|
| | |
|
| | |
|