| | |
| | | poolMgr.release(useSkill)
|
| | | return addBuff
|
| | |
|
| | | def OnAddBuff(turnFight, batObj, buffSkill, buffOwner=None, bySkill=None, afterLogic=False, isSync=True, setLayerCnt=0):
|
| | | def OnAddBuff(turnFight, batObj, buffSkill, buffOwner=None, bySkill=None, afterLogic=False, isSync=True, **kwargs):
|
| | | skillID = buffSkill.GetSkillID()
|
| | | bySkill = buffSkill.GetBySkill() if not bySkill else bySkill
|
| | | relatedSkillID = bySkill.GetSkillID() if bySkill else 0
|
| | |
| | |
|
| | | skillTypeID = buffSkill.GetSkillTypeID()
|
| | | buffRepeat = buffSkill.GetBuffRepeat()
|
| | | setLayerCnt = kwargs.get("setLayerCnt", 0)
|
| | | if setLayerCnt > 0:
|
| | | addLayerCnt = setLayerCnt
|
| | | GameWorld.DebugLog("外部直接指定添加的buff层级: setLayerCnt=%s" % setLayerCnt)
|
| | |
| | | # 可指定来源技能技能才生效,不指定的话默认生效
|
| | | if not addLayerEff.GetTriggerSrc() or addLayerEff.GetTriggerSrc() == relatedSkillID:
|
| | | addLayerCnt = GameWorld.GetResultByWeightList(addLayerEff.GetEffectValues(), addLayerCnt)
|
| | | addLayerCnt += TurnPassive.GetTriggerEffectValue(turnFight, buffOwner, batObj, ChConfig.PassiveEff_AddBuffLayer, buffSkill)
|
| | | maxLayerCnt = buffSkill.GetLayerMax()
|
| | | if maxLayerCnt:
|
| | | maxLayerCnt += TurnPassive.GetTriggerEffectValue(turnFight, buffOwner, batObj, ChConfig.PassiveEff_AddBuffLayerMax, buffSkill)
|
| | |
| | | continue
|
| | |
|
| | | if curEffect.GetTriggerWay():
|
| | | if curEffect.GetTriggerSrc() not in [ChConfig.TriggerSrc_Skill, ChConfig.TriggerSrc_SkillSelf] and refreshType == 1:
|
| | | if refreshType == 1 and curEffect.GetTriggerBuffEnable():
|
| | | passiveEffMgr.AddBuffPassiveEffect(curBuff, skillData, curEffect)
|
| | |
|
| | | elif effectID in ChConfig.AttrIDList:
|
| | |
| | | if triggerWay == ChConfig.TriggerWay_BuffDel:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, batObj, ChConfig.TriggerWay_BuffDel, connBuff=curBuff)
|
| | |
|
| | | if curEffect.GetTriggerSrc() not in [ChConfig.TriggerSrc_Skill, ChConfig.TriggerSrc_SkillSelf]:
|
| | | if curEffect.GetTriggerBuffEnable():
|
| | | haveBuffPassiveEff = True
|
| | |
|
| | | elif effectID in ChConfig.AttrIDList:
|
| | |
| | | effID = effect.GetEffectID()
|
| | | if effID not in ChConfig.AttrIDList:
|
| | | continue
|
| | | if effect.GetTriggerSrc() not in [ChConfig.TriggerSrc_Skill, ChConfig.TriggerSrc_SkillSelf]:
|
| | | # 技能时仅技能有效
|
| | | if effect.GetTriggerSrc() not in [ChConfig.TriggerSrc_Skill]:
|
| | | # 技能属性仅技能时有效
|
| | | continue
|
| | | attrID = effID
|
| | | attrValue = effect.GetEffectValue(0)
|
| | |
| | | effID = effect.GetEffectID()
|
| | | if effID not in ChConfig.AttrIDList:
|
| | | continue
|
| | | if effect.GetTriggerSrc() and effect.GetTriggerSrc() not in [ChConfig.TriggerSrc_Buff, ChConfig.TriggerSrc_BuffSelf]:
|
| | | if not (not effect.GetTriggerSrc() or effect.GetTriggerBuffEnable()):
|
| | | # buff时,不配默认有效,或仅buff有效
|
| | | continue
|
| | | attrID = effID
|