#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package Skill.PassiveTrigger.PassiveEff_5506 # # @todo:´¥·¢Êͷż¼ÄÜ£¨Ñé֤Ŀ±ê״̬²ã¼¶£© # @author hxp # @date 2025-12-18 # @version 1.0 # # ÏêϸÃèÊö: ´¥·¢Êͷż¼ÄÜ£¨Ñé֤Ŀ±ê״̬²ã¼¶£© # #------------------------------------------------------------------------------- #"""Version = 2025-12-18 17:30""" #------------------------------------------------------------------------------- import TurnSkill import GameWorld import IpyGameDataPY import BattleObj import TurnBuff def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs): if not tagObj: return skillID = curEffect.GetEffectValue(0) # ¼¼ÄÜID£¬Îª0ʱÊͷű¾¼¼ÄÜ checkStateList = curEffect.GetEffectValue(1) # ¿É¸½¼ÓÑé֤Ŀ±ê´¦ÓÚxx״̬ needLayers = curEffect.GetEffectValue(2) # ´ïµ½x²ãʱ²Å´¥·¢ isDelBuff = curEffect.GetEffectValue(3) # ²ãÊý²»×ãʱÊÇ·ñɾ³ýÊͷż¼ÄܶÔÓ¦buff layerTotal = 0 tagBuffMgr = tagObj.GetBuffManager() for index in range(tagBuffMgr.GetBuffCount()): buff = tagBuffMgr.GetBuffByIndex(index) skillData = buff.GetSkillData() if skillData.GetCurBuffState() not in checkStateList: continue layerTotal += buff.GetLayer() if layerTotal < needLayers: GameWorld.DebugLogEx("buff״̬×ܲãÊý²»×ã²»´¥·¢5506! checkStateList=%s,layerTotal=%s < %s,isDelBuff=%s", checkStateList, layerTotal, needLayers, isDelBuff) if isDelBuff: delBuffSkillID = skillID if skillID else effSkill.GetSkillID() if not delBuffSkillID: return buff = tagBuffMgr.FindBuffBySkillID(delBuffSkillID) if buff: TurnBuff.DoBuffDel(turnFight, tagObj, buff, connSkill) return if not skillID: passiveSkill = effSkill else: passiveSkill = IpyGameDataPY.GetIpyGameData("Skill", skillID) if not passiveSkill: return effectID = curEffect.GetEffectID() effSkillID = effSkill.GetSkillID() return TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, passiveSkill, connSkill, effSkillID, effectID, connBuff, **kwargs) def DoBuffEffectLogic(turnFight, batObj, tagObj, effBuff, curEffect, connSkill, connBuff, **kwargs): ownerID = effBuff.GetOwnerID() if not ownerID: return buffOwner = BattleObj.GetBatObjMgr().getBatObj(ownerID) if not buffOwner: return effSkill = effBuff.GetSkillData().GetIpyData() return DoSkillEffectLogic(turnFight, buffOwner, batObj, effSkill, curEffect, connSkill, connBuff, **kwargs)