#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package Skill.PassiveTrigger.PassiveEff_5007 # # @todo:͵ȡĿ±êÉíÉÏÔöÒæÀàÐÍbuff£¨¼¼ÄÜÀàÐÍ3¡¢5£© # @author hxp # @date 2025-09-25 # @version 1.0 # # ÏêϸÃèÊö: ͵ȡĿ±êÉíÉÏÔöÒæÀàÐÍbuff£¨¼¼ÄÜÀàÐÍ3¡¢5£© # #------------------------------------------------------------------------------- #"""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, ...] if checkInStateList: if not tagObj.CheckInState(checkInStateList): GameWorld.DebugLog("Ä¿±ê²»ÔÚÒÔÏÂ״̬²»ÄÜ͵: tagID=%s,checkInStateList=%s" % (tagObj.GetID(), checkInStateList)) return plsBuffList = [] 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]: continue plsBuffList.append(buff) if not plsBuffList: GameWorld.DebugLog("Ä¿±êûÓÐÔöÒæbuff: tagID=%s" % (tagObj.GetID())) return random.shuffle(plsBuffList) # Ëæ»ú for tagBuff in plsBuffList: if stealCnt <= 0: break skillID = tagBuff.GetSkillID() buffOwner = batObj GameWorld.DebugLog("͵ȡbuff: tagID=%s,tagBuffID=%s" % (tagObj.GetID(), tagBuff.GetBuffID())) addBuff = TurnBuff.DoAddBuffBySkillID(turnFight, batObj, skillID, buffOwner, connSkill, isSync=False) if not addBuff: continue stealCnt -= 1 TurnBuff.CopyBuff(turnFight, batObj, addBuff, tagBuff, connSkill, True) TurnBuff.DoBuffDel(turnFight, tagObj, tagBuff) return True