129 【战斗】战斗系统-服务端(赵云所有技能;增加效果5023 6019 6020;5011效果增加可验证战斗类型;5022效果支持多属性;战斗增减伤改名;增加触发方式28~39)
| | |
| | |
|
| | | def GetSkillData(self): return self._skillData
|
| | | def GetSkillID(self): return self._skillData.GetSkillID()
|
| | | def GetCurBuffState(self): return self._skillData.GetCurBuffState()
|
| | | def GetAddTiming(self): return self._addTiming
|
| | | def SetAddTiming(self, addTiming):
|
| | | self._addTiming = addTiming
|
| | |
| | | def GetEffectValueEx(self, effID): return self._effExDict.get(effID, 0)
|
| | | def ResetEffectValueEx(self): self._effExDict = {}
|
| | | def AddEffectValueEx(self, effID, valueEx): self._effExDict[effID] = self._effExDict.get(effID, 0) + valueEx
|
| | | def GetEffectExDict(self): return self._effExDict
|
| | | def GetHaloObjIDList(self): return self._haloObjIDList
|
| | | def SetHaloObjIDList(self, haloObjIDList): self._haloObjIDList = haloObjIDList
|
| | | def AddHaloObjID(self, objID):
|
| | |
| | | AttrID_WuFinalDamPerDef, # 对吴减伤 62
|
| | | AttrID_QunFinalDamPer, # 对群增伤 63
|
| | | AttrID_QunFinalDamPerDef, # 对群减伤 64
|
| | | AttrID_SkillPer, # 技能增伤 65
|
| | | AttrID_SkillPerDef, # 技能减伤 66
|
| | | AttrID_BatDamPer, # 战斗增伤 65
|
| | | AttrID_BatDamPerDef, # 战斗减伤 66
|
| | | AttrID_PursueDamPer, # 追击增伤 67
|
| | | AttrID_PursueDamPerDef, # 追击减伤 68
|
| | | AttrID_ComboDamPer, # 连击增伤 69
|
| | |
| | | AttrID_ShieldPer, AttrID_ShieldPerDef, AttrID_DOTPer, AttrID_DOTPerDef,
|
| | | AttrID_WeiFinalDamPer, AttrID_WeiFinalDamPerDef, AttrID_ShuFinalDamPer, AttrID_ShuFinalDamPerDef,
|
| | | AttrID_WuFinalDamPer, AttrID_WuFinalDamPerDef, AttrID_QunFinalDamPer, AttrID_QunFinalDamPerDef,
|
| | | AttrID_SkillPer, AttrID_SkillPerDef, AttrID_PursueDamPer, AttrID_PursueDamPerDef,
|
| | | AttrID_BatDamPer, AttrID_BatDamPerDef, AttrID_PursueDamPer, AttrID_PursueDamPerDef,
|
| | | AttrID_ComboDamPer, AttrID_ComboDamPerDef, AttrID_XPRecoverPer, AttrID_PVPDamPer, AttrID_PVPDamPerDef
|
| | | ]
|
| | |
|
| | |
| | | TriggerWay_BeDOTHurt, # 受到持续伤害 25
|
| | | TriggerWay_EnemyDie, # 敌方单位死亡时 26
|
| | | TriggerWay_FriendDie, # 己方单位死亡时 27
|
| | | ) = range(1, 1 + 27)
|
| | | TriggerWay_Combo, # 连击时 28
|
| | | TriggerWay_Pursue, # 追击时 29
|
| | | TriggerWay_Stun, # 击晕时 30
|
| | | TriggerWay_SuperHit, # 暴击时 31
|
| | | TriggerWay_Parry, # 格挡时 32
|
| | | TriggerWay_Miss, # 闪避时 33
|
| | | TriggerWay_AtkBack, # 反击时 34
|
| | | TriggerWay_BeStun, # 被击晕时 35
|
| | | TriggerWay_BeSuperHit, # 被暴击时 36
|
| | | TriggerWay_BeParry, # 被格挡时 37
|
| | | TriggerWay_BeMiss, # 被闪避时 38
|
| | | TriggerWay_BeAtkBack, # 被反击时 39
|
| | | ) = range(1, 1 + 39)
|
| | |
|
| | | # 不加载的被动触发方式,一般用于本技能固定触发逻辑用的
|
| | | TriggerWayNoLoadList = [TriggerWay_CurSkillEff, TriggerWay_CurSkillEffLst]
|
| | |
| | | PassiveEff_AddShieldHurtPer = 6016 # 对护盾造成伤害加成
|
| | | PassiveEff_SkillInvalid = 6017 # 使技能无效
|
| | | PassiveEff_AddAngerSkillPerByXP = 6018 # 增加怒气技能伤害(按消耗怒气值)
|
| | | PassiveEff_AddBatDamPerByTagLostHP = 6019 # 战斗增伤(按目标已损失生命)
|
| | | PassiveEff_AddSkillPerByBuffState = 6020 # 增加技能系数(验证由buff状态触发的)
|
| | |
|
| | | # 被动效果ID有触发值时就返回的
|
| | | PassiveEffHappenValueList = [PassiveEff_ChangeHurtType, PassiveEff_ImmuneControlBuff, PassiveEff_MustSuperHit, PassiveEff_SkillInvalid]
|
| | |
| | |
|
| | | import TurnSkill
|
| | | import IpyGameDataPY
|
| | | import GameWorld
|
| | |
|
| | | def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
|
| | | skillID = curEffect.GetEffectValue(0) # 技能ID,为0时释放本技能
|
| | | checkHPInfo = curEffect.GetEffectValue(1) # 可附加验证生命值[计算方式, 百分比]
|
| | | checkBatType = curEffect.GetEffectValue(2) # 验证攻击类型 0-不验证;1-连击;2-追击;3-反击
|
| | | if checkHPInfo:
|
| | | checkType, checkHPPer = checkHPInfo
|
| | | nowPer = batObj.GetHP() / float(batObj.GetMaxHP()) * 100
|
| | |
| | | if nowPer < checkHPPer:
|
| | | return
|
| | |
|
| | | if checkBatType:
|
| | | if not connSkill:
|
| | | return
|
| | | if connSkill.GetBatType() != checkBatType:
|
| | | GameWorld.DebugLog("5011效果非该战斗类型不触发: checkBatType=%s,skillBatType=%s" % (checkBatType, connSkill.GetBatType()))
|
| | | return
|
| | | |
| | | if not skillID:
|
| | | passiveSkill = effSkill
|
| | | else:
|
| | |
| | | import GameWorld
|
| | |
|
| | | def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
|
| | | attrID = curEffect.GetEffectValue(0)
|
| | | attrValue = curEffect.GetEffectValue(1)
|
| | | GameWorld.DebugLog("额外增加buff效果ID/属性ID值: attrID=%s,attrValue=%s" % (attrID, attrValue))
|
| | | connBuff.AddEffectValueEx(attrID, attrValue)
|
| | | effValues = curEffect.GetEffectValues()
|
| | | for index in range(0, len(effValues), 2):
|
| | | attrID = effValues[index]
|
| | | attrValue = effValues[index + 1] if len(effValues) > index + 1 else 0
|
| | | GameWorld.DebugLog("额外增加buff效果ID/属性ID值: attrID=%s,attrValue=%s" % (attrID, attrValue))
|
| | | connBuff.AddEffectValueEx(attrID, attrValue)
|
| | | return True
|
| New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #-------------------------------------------------------------------------------
|
| | | #
|
| | | ##@package Skill.PassiveTrigger.PassiveEff_5023
|
| | | #
|
| | | # @todo:消耗某个buff状态层级
|
| | | # @author hxp
|
| | | # @date 2025-11-20
|
| | | # @version 1.0
|
| | | #
|
| | | # 详细描述: 消耗某个buff状态层级
|
| | | #
|
| | | #-------------------------------------------------------------------------------
|
| | | #"""Version = 2025-11-20 19:00"""
|
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | import TurnBuff
|
| | | import GameWorld
|
| | | import TurnSkill
|
| | |
|
| | | def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
|
| | | buffState = curEffect.GetEffectValue(0)
|
| | | needLayers = curEffect.GetEffectValue(1) # 达到多少层时才消耗
|
| | | delLayers = curEffect.GetEffectValue(2) # 扣除层数
|
| | | exSkillID = curEffect.GetEffectValue(3) # 释放技能ID
|
| | | if not buffState or not needLayers:
|
| | | return
|
| | | |
| | | curBuff = batObj.GetBuffManager().FindBuffByState(buffState)
|
| | | if not curBuff:
|
| | | return
|
| | | buffLayers = curBuff.GetLayer()
|
| | | if buffLayers < needLayers:
|
| | | GameWorld.DebugLog("buff状态层数不足不触发! buffState=%s,buffLayers=%s < %s" % (buffState, buffLayers, needLayers))
|
| | | return
|
| | | updLayer = buffLayers - delLayers
|
| | | GameWorld.DebugLog("扣除buff层释放技能: buffState=%s,buffLayers=%s,delLayers=%s" % (buffState, buffLayers, delLayers))
|
| | | if delLayers:
|
| | | TurnBuff.DoBuffLayerChange(turnFight, batObj, curBuff, updLayer, connSkill)
|
| | | |
| | | if exSkillID:
|
| | | TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, exSkillID, connBuff=connBuff)
|
| | | |
| | | return True
|
| New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #-------------------------------------------------------------------------------
|
| | | #
|
| | | ##@package Skill.PassiveTrigger.PassiveEff_6019
|
| | | #
|
| | | # @todo:战斗增伤(按目标已损失生命)
|
| | | # @author hxp
|
| | | # @date 2025-11-20
|
| | | # @version 1.0
|
| | | #
|
| | | # 详细描述: 战斗增伤(按目标已损失生命)
|
| | | #
|
| | | #-------------------------------------------------------------------------------
|
| | | #"""Version = 2025-11-20 19:00"""
|
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | import GameWorld
|
| | |
|
| | | def GetHappenValue(attacker, defender, curEffect, effSkill, effBuff, connSkill, **skillkwargs):
|
| | | perLostPer = curEffect.GetEffectValue(0) #每损失百分比
|
| | | perAddPer = curEffect.GetEffectValue(1) #增伤万分比
|
| | | curHP = defender.GetHP()
|
| | | maxHP = defender.GetMaxHP()
|
| | | lostHP = max(0, maxHP - curHP)
|
| | | lostPer = lostHP / float(maxHP) * 100
|
| | | addDamPer = lostPer / perLostPer * perAddPer
|
| | | GameWorld.DebugLog("按目标已损失生命: defID=%s,lostHP=%s,lostPer=%s,addDamPer=%s,HP:%s/%s" % (defender.GetID(), lostHP, lostPer, addDamPer, curHP, maxHP))
|
| | | return addDamPer
|
| New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #-------------------------------------------------------------------------------
|
| | | #
|
| | | ##@package Skill.PassiveTrigger.PassiveEff_6020
|
| | | #
|
| | | # @todo:增加技能系数(验证由buff状态触发的)
|
| | | # @author hxp
|
| | | # @date 2025-11-20
|
| | | # @version 1.0
|
| | | #
|
| | | # 详细描述: 增加技能系数(验证由buff状态触发的)
|
| | | #
|
| | | #-------------------------------------------------------------------------------
|
| | | #"""Version = 2025-11-20 19:00"""
|
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | import GameWorld
|
| | |
|
| | | def GetHappenValue(attacker, defender, curEffect, effSkill, effBuff, connSkill, **skillkwargs):
|
| | | addPer = curEffect.GetEffectValue(0) # 增加的万分比
|
| | | byBuffState = curEffect.GetEffectValue(1) # 验证由什么buff状态触发的
|
| | | if byBuffState and connSkill:
|
| | | byBuff = connSkill.GetByBuff()
|
| | | if not byBuff:
|
| | | #GameWorld.DebugLog("非由buff触发的")
|
| | | return
|
| | | if byBuff.GetCurBuffState() != byBuffState:
|
| | | GameWorld.DebugLog("非由该buff状态触发的! buffState=%s != %s" % (byBuff.GetCurBuffState(), byBuffState))
|
| | | return
|
| | | GameWorld.DebugLog("增加技能系数(验证由buff状态触发的): addPer=%s,byBuffState=%s" % (addPer, byBuffState))
|
| | | return addPer
|
| | |
| | | layer = max(1, buff.GetLayer())
|
| | | skillData = buff.GetSkillData()
|
| | |
|
| | | effExDict = buff.GetEffectExDict()
|
| | | for effID, effValueEx in effExDict.items():
|
| | | if effID not in ChConfig.AttrIDList:
|
| | | continue
|
| | | attrID = effID
|
| | | attrValue = effValueEx * layer
|
| | | buffsAttrDict[attrID] = buffsAttrDict.get(attrID, 0) + attrValue
|
| | | skbufAttrDict[attrID] = skbufAttrDict.get(attrID, 0) + attrValue
|
| | | |
| | | for eIndex in range(skillData.GetEffectCount()):
|
| | | effect = skillData.GetEffect(eIndex)
|
| | | effID = effect.GetEffectID()
|
| | |
| | | # buff时,不配默认有效,或仅buff有效
|
| | | continue
|
| | | attrID = effID
|
| | | attrValue = (effect.GetEffectValue(0) + buff.GetEffectValueEx(attrID)) * layer
|
| | | attrValue = effect.GetEffectValue(0) * layer
|
| | | calcType = effect.GetEffectValue(1)
|
| | | if calcType == 2: # 减少,其他默认增加
|
| | | attrValue = -attrValue
|
| | |
| | |
|
| | | # 统计伤血,可能单个技能对同一目标造成多次伤害
|
| | | totalHurtValue = 0
|
| | | isSuperHit, isStun, isSuckHP = False, False, False
|
| | | isSuckHP = False
|
| | | missObjIDList, immuneObjIDList = [], [] # 闪避、免疫对象ID列表
|
| | | stunObjIDList, superHitObjIDList, parryObjIDList = [], [], []
|
| | | beHurtObjIDList = [] # 受伤的对象ID列表
|
| | | for hurtObj in useSkill.GetHurtObjListAll():
|
| | | hurtObjID = hurtObj.GetObjID()
|
| | |
| | |
|
| | | if hurtObj.HaveHurtType(ChConfig.HurtType_Parry):
|
| | | DoHeroSpecialty(turnFight, tagObj, ChConfig.HeroSpecialty_Parry, relatedSkillID)
|
| | | |
| | | if hurtObjID not in parryObjIDList:
|
| | | parryObjIDList.append(hurtObjID)
|
| | | |
| | | if hurtObj.HaveHurtType(ChConfig.HurtType_SuperHit):
|
| | | isSuperHit = True
|
| | | |
| | | if hurtObjID not in superHitObjIDList:
|
| | | superHitObjIDList.append(hurtObjID)
|
| | | |
| | | if hurtObj.HaveHurtType(ChConfig.HurtType_Stun):
|
| | | isStun = True
|
| | | |
| | | if hurtObjID not in stunObjIDList:
|
| | | stunObjIDList.append(hurtObjID)
|
| | | |
| | | if hurtObj.GetSuckHP() > 0:
|
| | | isSuckHP = True
|
| | |
|
| | |
| | | curObj.SetLastHurtValue(totalHurtValue)
|
| | |
|
| | | # 群攻只触发一次特长
|
| | | if isSuperHit:
|
| | | if superHitObjIDList:
|
| | | DoHeroSpecialty(turnFight, curObj, ChConfig.HeroSpecialty_SuperHit, relatedSkillID)
|
| | | if isStun:
|
| | | if stunObjIDList:
|
| | | DoHeroSpecialty(turnFight, curObj, ChConfig.HeroSpecialty_Stun, relatedSkillID)
|
| | | if isSuckHP:
|
| | | DoHeroSpecialty(turnFight, curObj, ChConfig.HeroSpecialty_SuckHP, relatedSkillID)
|
| | |
| | | if tagID in beHurtObjIDList:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeHurt, curObj, connSkill=useSkill)
|
| | |
|
| | | # 受到任意效果时(除直接攻击外的任意效果,如buff、dot、治疗、额外怒技)
|
| | | if not isAttackDirect:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeAnyEffect, curObj, connSkill=useSkill)
|
| | | |
| | | # 额外目标不再触发以下内容
|
| | | if isExObj:
|
| | | continue
|
| | | |
| | | # 直接攻击
|
| | | if isAttackDirect and not isExObj:
|
| | | if isAttackDirect:
|
| | | if not triggerOne:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_AttackOverDirectOne, tagObj, connSkill=useSkill)
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_AttackOverDirect, tagObj, connSkill=useSkill)
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeAttackedDirect, curObj, connSkill=useSkill)
|
| | | # 持续伤害
|
| | | elif not isAttackDirect:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeAnyEffect, curObj, connSkill=useSkill)
|
| | | # 受到持续伤害
|
| | | if tagID in beHurtObjIDList and not isExObj:
|
| | | if tagID in beHurtObjIDList:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeDOTHurt, curObj, connSkill=useSkill)
|
| | |
|
| | | # 使用技能后
|
| | | if isUseSkill and not isExObj:
|
| | | if isUseSkill:
|
| | | if not triggerOne:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_UseSkillOverOne, tagObj, connSkill=useSkill)
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_UseSkillOver, tagObj, connSkill=useSkill)
|
| | |
|
| | | # 击晕
|
| | | if tagID in stunObjIDList:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_Stun, tagObj, connSkill=useSkill)
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeStun, curObj, connSkill=useSkill)
|
| | | |
| | | # 暴击
|
| | | if tagID in superHitObjIDList:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_SuperHit, tagObj, connSkill=useSkill)
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeSuperHit, curObj, connSkill=useSkill)
|
| | | |
| | | # 格挡
|
| | | if tagID in missObjIDList:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_BeParry, tagObj, connSkill=useSkill)
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_Parry, curObj, connSkill=useSkill)
|
| | | |
| | | # 闪避
|
| | | if tagID in missObjIDList:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_BeMiss, tagObj, connSkill=useSkill)
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_Miss, curObj, connSkill=useSkill)
|
| | | |
| | | # 连击
|
| | | if batType == ChConfig.TurnBattleType_Combo and not isExObj:
|
| | | if batType == ChConfig.TurnBattleType_Combo:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_Combo, tagObj, connSkill=useSkill)
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeCombo, curObj, connSkill=useSkill)
|
| | | # 追击
|
| | | elif batType == ChConfig.TurnBattleType_Pursue and not isExObj:
|
| | | elif batType == ChConfig.TurnBattleType_Pursue:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_Pursue, tagObj, connSkill=useSkill)
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BePursue, curObj, connSkill=useSkill)
|
| | | # 反击
|
| | | elif batType == ChConfig.TurnBattleType_AtkBack:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_AtkBack, tagObj, connSkill=useSkill)
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeAtkBack, curObj, connSkill=useSkill)
|
| | |
|
| | | triggerOne = True # 设置已经触发过一次
|
| | |
|
| | |
| | |
|
| | | def OnUsePassiveSkill(turnFight, batObj, tagObj, passiveSkill, connSkill=None, effSkillID=0, effectID=0, connBuff=None):
|
| | | '''被动触发使用技能
|
| | | @param passiveSkill: 释放的被动技能
|
| | | @param passiveSkill: 释放的被动技能 或 技能ID
|
| | | @param connSkill: 由什么技能引起的
|
| | | @param effSkillID: 被动效果所属的技能ID
|
| | | @param effectID: 被动效果ID
|
| | |
| | | '''
|
| | | if not passiveSkill:
|
| | | return
|
| | | if isinstance(passiveSkill, int):
|
| | | passiveSkillID = passiveSkill
|
| | | passiveSkill = batObj.GetSkillManager().FindSkillByID(passiveSkillID)
|
| | | if not passiveSkill:
|
| | | passiveSkill = IpyGameDataPY.GetIpyGameData("Skill", passiveSkillID)
|
| | | if not passiveSkill:
|
| | | return
|
| | | |
| | | bySkillID = 0
|
| | | if connSkill:
|
| | | bySkillID = connSkill.GetSkillID()
|
| | |
| | | dDOTPerDef = defObj.GetBatAttrValue(ChConfig.AttrID_DOTPerDef)
|
| | | GameWorld.DebugLog("aDOTPer=%s,dDOTPerDef=%s" % (aDOTPer, dDOTPerDef))
|
| | |
|
| | | aAddSkillPer = 0 # 技能增伤
|
| | | aAddSkillPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.AttrID_SkillPer, curSkill)
|
| | | #aAddSkillPer = 0 # 技能增伤
|
| | | aBatDamPer, dBatDamPerDef = 0, 0 # 战斗增减伤
|
| | | aBatDamPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.AttrID_BatDamPer, curSkill)
|
| | | aBatDamPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.PassiveEff_AddBatDamPerByTagLostHP, curSkill)
|
| | |
|
| | | # 物法增减伤
|
| | | if pmType == IPY_GameWorld.ghtMag: # 法伤
|
| | |
| | | dAngerSkillPerDef /= 10000.0
|
| | | aDOTPer /= 10000.0
|
| | | dDOTPerDef /= 10000.0
|
| | | aAddSkillPer /= 10000.0
|
| | | aBatDamPer /= 10000.0
|
| | | dBatDamPerDef /= 10000.0
|
| | | aPMDamPer /= 10000.0
|
| | | dPMDamPerDef /= 10000.0
|
| | | aSuperDamPer /= 10000.0
|
| | |
| | |
|
| | | if calcType != ChConfig.Def_Calc_Attack:
|
| | | aAtk = GetCalcBaseValue(calcType, atkObj, defObj, curSkill)
|
| | | GameWorld.DebugLog("伤血计算: atkID=%s,defID=%s,skillID=%s,atkSkillPer=%s,calcType=%s,aAtk=%s,dDef=%s,dHP=%s/%s,hurtTypes=%s,aAddSkillPer=%s,aFinalDamPer=%s" |
| | | % (atkID, defID, skillID, atkSkillPer, calcType, aAtk, dDef, dHP, dMaxHP, hurtTypes, aAddSkillPer, aFinalDamPer))
|
| | | GameWorld.DebugLog("伤血计算: atkID=%s,defID=%s,skillID=%s,atkSkillPer=%s,calcType=%s,aAtk=%s,dDef=%s,dHP=%s/%s,hurtTypes=%s,aBatDamPer=%s,aFinalDamPer=%s" |
| | | % (atkID, defID, skillID, atkSkillPer, calcType, aAtk, dDef, dHP, dMaxHP, hurtTypes, aBatDamPer, aFinalDamPer))
|
| | | GameWorld.DebugLog("aCountry=%s,dCountry=%s,aCountryDamPer=%s,dCountryDamPerDef=%s" % (aCountry, dCountry, aCountryDamPer, dCountryDamPerDef))
|
| | |
|
| | | if isTurnNormalSkill:
|
| | |
| | | atkSkillPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.PassiveEff_AddSkillPerByJob, curSkill)
|
| | | atkSkillPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.PassiveEff_AddSkillPerByBuffLayer, curSkill)
|
| | | atkSkillPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.PassiveEff_AddSkillPerByDeadTeammate, curSkill)
|
| | | atkSkillPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.PassiveEff_AddSkillPerByBuffState, curSkill)
|
| | | return atkSkillPer
|
| | |
|
| | | def CanSuperHit(turnFight, atkObj, defObj, curSkill):
|