#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package Skill.PassiveTrigger.PassiveEff_5005 # # @todo:ÒÆ³ý/ÇýɢĿ±êÉíÉÏijÖÖÀàÐÍbuff # @author hxp # @date 2025-10-28 # @version 1.0 # # ÏêϸÃèÊö: ÒÆ³ý/ÇýɢĿ±êÉíÉÏijÖÖÀàÐÍbuff # #------------------------------------------------------------------------------- #"""Version = 2025-10-28 17:00""" #------------------------------------------------------------------------------- import GameWorld import TurnSkill import TurnBuff import random def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs): skillTypeList = curEffect.GetEffectValue(0) # buff¼¼ÄÜÀàÐÍ delBuffCnt = curEffect.GetEffectValue(1) # ÒÆ³ý¸öÊý£¬0Ϊȫ²¿ isSelf = curEffect.GetEffectValue(2) # Ä¿±êÊÇ·ñÇ¿ÖÆÎª×Ô¼º effObj = batObj if isSelf else tagObj if not effObj: return buffList = [] buffMgr = effObj.GetBuffManager() for index in range(buffMgr.GetBuffCount()): buff = buffMgr.GetBuffByIndex(index) skillData = buff.GetSkillData() if skillData.GetSkillType() not in skillTypeList: continue if skillData.GetDispersedLimit(): continue buffList.append(buff) if delBuffCnt and delBuffCnt < len(buffList): random.shuffle(buffList) # Ëæ»úbuff buffList = buffList[:delBuffCnt] for buff in buffList: GameWorld.DebugLog("ÒÆ³ý/ÇýÉ¢buff: tagID=%s,buffID=%s" % (effObj.GetID(), buff.GetBuffID())) TurnBuff.DoBuffDel(turnFight, effObj, buff, connSkill) exSkillID = curEffect.GetEffectValue(3) # ³É¹¦ÇýÉ¢¶îÍâÊͷż¼ÄÜID if exSkillID: effectID = curEffect.GetEffectID() effSkillID = effSkill.GetSkillID() TurnSkill.OnUsePassiveSkill(turnFight, batObj, effObj, exSkillID, connSkill, effSkillID, effectID, connBuff, **kwargs) return True