#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package Skill.PassiveTrigger.PassiveEff_5002 # # @todo:½áËãÄ¿±êijÖÖ״̬³ÖÐøbuffËùÓлغÏЧ¹û # @author hxp # @date 2025-08-28 # @version 1.0 # # ÏêϸÃèÊö: ½áËãÄ¿±êijÖÖ״̬³ÖÐøbuffËùÓлغÏЧ¹û # #------------------------------------------------------------------------------- #"""Version = 2025-08-28 10:30""" #------------------------------------------------------------------------------- import TurnBuff import GameWorld import IpyGameDataPY import TurnSkill def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill): effectID = curEffect.GetEffectID() buffState = curEffect.GetEffectValue(0) needLayers = curEffect.GetEffectValue(1) # Àۼƴﵽ¶àÉÙ²ãʱ²Å½áËã noDel = curEffect.GetEffectValue(2) # ÊÇ·ñ²»¿Û³ýÊ£Óà»ØºÏ£¬Ä¬ÈÏ0-¿Û³ý 1-²»¿Û³ý exSkillID = curEffect.GetEffectValue(3) # ¶îÍâÊͷż¼ÄÜID£¬0²»ÊÍ·Å£¨¿É¶ÔbuffЯ´øÕß»òÖØÉèÄ¿±ê£© #GameWorld.DebugLog("DoBuffEffectLogic: effectID=%s, buffState=%s, needLayers=%s, noDel=%s, exSkillID=%s" % (effectID, buffState, needLayers, noDel, exSkillID)) if not buffState or not needLayers: return layerTotal = 0 buffList = [] buffMgr = tagObj.GetBuffManager() for index in range(buffMgr.GetBuffCount()): buff = buffMgr.GetBuffByIndex(index) skillData = buff.GetSkillData() if skillData.GetCurBuffState() != buffState: continue layerTotal += buff.GetLayer() buffList.append(buff) if layerTotal < needLayers: GameWorld.DebugLog("buff״̬×ܲãÊý²»×ã²»´¥·¢! buffState=%s,layerTotal=%s < %s" % (buffState, layerTotal, needLayers)) return GameWorld.DebugLog("½áËãÄ¿±êijÖÖ״̬³ÖÐøbuffËùÓлغÏЧ¹û: layerTotal=%s,buffCnt=%s,noDel=%s" % (layerTotal, len(buffList), noDel)) for buff in buffList: GameWorld.DebugLog("buffID=%s,RemainTime=%s" % (buff.GetBuffID(), buff.GetRemainTime())) for _ in range(buff.GetRemainTime()): TurnBuff.DoBuffProcess(turnFight, tagObj, buff) if noDel: continue TurnBuff.DoBuffDel(turnFight, tagObj, buff) if exSkillID: effSkillID = effSkill.GetSkillID() passiveSkill = IpyGameDataPY.GetIpyGameData("Skill", exSkillID) if passiveSkill: TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, passiveSkill, connSkill, effSkillID, effectID) return True