| | |
| | | #
|
| | | ##@package Skill.PassiveTrigger.PassiveEff_5007
|
| | | #
|
| | | # @todo:偷取目标身上增益类型buff(技能类型3、5)
|
| | | # @todo:偷取目标身上类型buff(删除对方的加到自己身上)
|
| | | # @author hxp
|
| | | # @date 2025-09-25
|
| | | # @version 1.0
|
| | | #
|
| | | # 详细描述: 偷取目标身上增益类型buff(技能类型3、5)
|
| | | # 详细描述: 偷取目标身上类型buff(删除对方的加到自己身上)
|
| | | #
|
| | | #-------------------------------------------------------------------------------
|
| | | #"""Version = 2025-09-25 17:30"""
|
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | import TurnBuff
|
| | | import ChConfig
|
| | | import GameWorld
|
| | | import random
|
| | |
|
| | | def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
|
| | | stealCnt = max(1, curEffect.GetEffectValue(0)) # 偷取个数
|
| | | checkInStateList = curEffect.GetEffectValue(1) # 可附加验证处于xx状态 [状态1, 状态2, ...]
|
| | | skillTypeList = curEffect.GetEffectValue(0) # buff技能类型
|
| | | stealCnt = max(1, curEffect.GetEffectValue(1)) # 偷取个数
|
| | | checkInStateList = curEffect.GetEffectValue(2) # 可附加验证处于xx状态 [状态1, 状态2, ...]
|
| | | if checkInStateList:
|
| | | if not tagObj.CheckInState(checkInStateList):
|
| | | GameWorld.DebugLog("目标不在以下状态不能偷: tagID=%s,checkInStateList=%s" % (tagObj.GetID(), checkInStateList))
|
| | | return
|
| | |
|
| | | plsBuffList = []
|
| | | tagBuffList = []
|
| | | buffMgr = tagObj.GetBuffManager()
|
| | | for index in range(buffMgr.GetBuffCount()):
|
| | | buff = buffMgr.GetBuffByIndex(index)
|
| | | skillData = buff.GetSkillData()
|
| | | if skillData.GetSkillType() not in [ChConfig.Def_SkillType_LstPlsBuff, ChConfig.Def_SkillType_PlsBuff]:
|
| | | if skillData.GetSkillType() not in skillTypeList:
|
| | | continue
|
| | | plsBuffList.append(buff)
|
| | | if skillData.GetDispersedLimit():
|
| | | continue
|
| | | tagBuffList.append(buff)
|
| | |
|
| | | if not plsBuffList:
|
| | | GameWorld.DebugLog("目标没有增益buff: tagID=%s" % (tagObj.GetID()))
|
| | | if not tagBuffList:
|
| | | GameWorld.DebugLog("目标没有可偷的buff: tagID=%s,skillTypeList=%s" % (tagObj.GetID(), skillTypeList))
|
| | | return
|
| | |
|
| | | random.shuffle(plsBuffList) # 随机
|
| | | random.shuffle(tagBuffList) # 随机
|
| | |
|
| | | for tagBuff in plsBuffList:
|
| | | for tagBuff in tagBuffList:
|
| | | if stealCnt <= 0:
|
| | | break
|
| | | skillID = tagBuff.GetSkillID()
|