129 【战斗】战斗系统-服务端(修复貂蝉倾城潜能增加值计算;)
| | |
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | import TurnBuff
|
| | | import GameWorld
|
| | | #import GameWorld
|
| | |
|
| | | def GetHappenValue(attacker, defender, curEffect, effSkill, effBuff, connSkill, **skillkwargs):
|
| | | if "turnFight" not in skillkwargs:
|
| | |
| | | if isDelBuff:
|
| | | TurnBuff.DoBuffDel(turnFight, attacker, buff, connSkill)
|
| | |
|
| | | GameWorld.DebugLogEx("6029战斗增伤: buffState=%s,layerTotal=%s,addPer=%s", buffState, layerTotal, addPer)
|
| | | #GameWorld.DebugLogEx("6029战斗增伤: buffState=%s,layerTotal=%s,addPer=%s", buffState, layerTotal, addPer)
|
| | | return addPer
|
| | |
| | | addPer = addPerMax
|
| | | GameWorld.DebugLogEx("司马懿特殊潜能技能额外增加比例: frozenCnt=%s,addPer=%s" % (frozenCnt, addPer))
|
| | |
|
| | | addBatDamPer = TurnPassive.GetTriggerEffectValue(turnFight, curBatObj, None, ChConfig.PassiveEff_AddBatDamPerByLayer, useSkill)
|
| | | |
| | | # 计算伤害
|
| | | calcHurtResults = []
|
| | | for tagBatObj in useSkill.GetTagObjList():
|
| | | hurtValue, hurtTypes, immuneHurt = __calcSkillHurt(turnFight, curBatObj, tagBatObj, useSkill, addPer)
|
| | | hurtValue, hurtTypes, immuneHurt = __calcSkillHurt(turnFight, curBatObj, tagBatObj, useSkill, addPer, addBatDamPer)
|
| | | calcHurtResults.append([tagBatObj, hurtValue, hurtTypes, immuneHurt])
|
| | |
|
| | | DoSkillHurtHP(turnFight, curBatObj, useSkill, calcHurtResults)
|
| | | return
|
| | |
|
| | | def __calcSkillHurt(turnFight, atkObj, defObj, curSkill, addPer=0):
|
| | | def __calcSkillHurt(turnFight, atkObj, defObj, curSkill, addPer=0, addBatDamPer=0):
|
| | | ## 计算技能伤害,只计算值,不做实际处理
|
| | | # @param addPer: 外部指定增加的比例
|
| | | # @return: hurtValue, hurtTypes, immuneHurt
|
| | | atkSkillPer = curSkill.GetSkillPer() + addPer
|
| | | atkSkillValue = curSkill.GetSkillValue()
|
| | | hurtValue, hurtTypes = CalcFormatHurt(turnFight, atkObj, defObj, curSkill, atkSkillValue, atkSkillPer)
|
| | | hurtValue, hurtTypes = CalcFormatHurt(turnFight, atkObj, defObj, curSkill, atkSkillValue, atkSkillPer, addBatDamPer)
|
| | | hurtValue, hurtTypes, immuneHurt = CalcHurtWithBuff(turnFight, atkObj, defObj, hurtValue, hurtTypes)
|
| | | return hurtValue, hurtTypes, immuneHurt
|
| | |
|
| | |
| | |
|
| | | return isOK
|
| | |
|
| | | def CalcFormatHurt(turnFight, atkObj, defObj, curSkill, atkSkillValue, atkSkillPer, **kwargs):
|
| | | def CalcFormatHurt(turnFight, atkObj, defObj, curSkill, atkSkillValue, atkSkillPer, addBatDamPer=0, **kwargs):
|
| | | '''按公式计算伤害,默认按攻击计算
|
| | | '''
|
| | |
|
| | |
| | | aBatDamPer, dBatDamPerDef = 0, 0 # 战斗增减伤
|
| | | aBatDamPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.AttrID_BatDamPer, curSkill)
|
| | | aBatDamPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.PassiveEff_AddBatDamPerByTagLostHP, curSkill)
|
| | | aBatDamPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.PassiveEff_AddBatDamPerByLayer, curSkill)
|
| | | aBatDamPer += addBatDamPer
|
| | |
|
| | | # 物法增减伤
|
| | | if pmType == IPY_GameWorld.ghtMag: # 法伤
|