| | |
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | import TurnSkill
|
| | | import IpyGameDataPY
|
| | | import BattleObj
|
| | | import TurnBuff
|
| | | import GameWorld
|
| | |
|
| | | def DoBuffEffectLogic(turnFight, batObj, tagObj, effBuff, curEffect, connSkill, connBuff, **kwargs):
|
| | | ownerID = effBuff.GetOwnerID()
|
| | |
| | | return
|
| | | effSkill = effBuff.GetSkillData().GetIpyData()
|
| | | skillID = curEffect.GetEffectValue(0) # 技能ID,为0时释放本技能
|
| | | if not skillID:
|
| | | passiveSkill = effSkill
|
| | | else:
|
| | | passiveSkill = IpyGameDataPY.GetIpyGameData("Skill", skillID)
|
| | | if not passiveSkill:
|
| | | return
|
| | | delBuff = curEffect.GetEffectValue(1) # 是否删除buff
|
| | | checkTriggerCnt = curEffect.GetEffectValue(2) # 附加验证触发次数达到x次后释放,0不验证
|
| | | if checkTriggerCnt:
|
| | | triggerCnt = effBuff.GetValue3() + 1
|
| | | effBuff.SetValue3(triggerCnt)
|
| | | if triggerCnt < checkTriggerCnt:
|
| | | GameWorld.DebugLogEx("5013触发次数不足不释放! triggerCnt=%s < %s", triggerCnt, checkTriggerCnt)
|
| | | return
|
| | | |
| | | addBatDamPer = curEffect.GetEffectValue(3) # 每次触发额外增加技能增伤
|
| | | if addBatDamPer:
|
| | | addBatDamPer *= max(1, effBuff.GetValue3())
|
| | | GameWorld.DebugLogEx("5013触发次数额外增伤! addBatDamPer=%s", addBatDamPer)
|
| | | |
| | | if delBuff:
|
| | | TurnBuff.DoBuffDel(turnFight, batObj, effBuff, connSkill)
|
| | | |
| | | effectID = curEffect.GetEffectID()
|
| | | effSkillID = effSkill.GetSkillID()
|
| | | return TurnSkill.OnUsePassiveSkill(turnFight, buffOwner, batObj, passiveSkill, connSkill, effSkillID, effectID, connBuff)
|
| | | if not skillID:
|
| | | skillID = effSkillID
|
| | | return TurnSkill.OnUsePassiveSkill(turnFight, buffOwner, batObj, skillID, connSkill, effSkillID, effectID, connBuff, addBatDamPer=addBatDamPer)
|