ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveTrigger/PassiveEff_5007.py
@@ -4,46 +4,48 @@
#
##@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()