#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package Skill.PassiveTrigger.PassiveEff_5023 # # @todo:ÏûºÄij¸öbuff״̬²ã¼¶ # @author hxp # @date 2025-11-20 # @version 1.0 # # ÏêϸÃèÊö: ÏûºÄij¸öbuff״̬²ã¼¶ # #------------------------------------------------------------------------------- #"""Version = 2025-11-20 19:00""" #------------------------------------------------------------------------------- import TurnBuff import GameWorld import TurnSkill import TurnPassive import ChConfig def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs): buffState = curEffect.GetEffectValue(0) needLayers = curEffect.GetEffectValue(1) # ´ïµ½¶àÉÙ²ãʱ²ÅÏûºÄ exSkillID = curEffect.GetEffectValue(2) # Êͷż¼ÄÜID if not buffState or not needLayers: return curBuff = batObj.GetBuffManager().FindBuffByState(buffState) if not curBuff: return buffLayers = curBuff.GetLayer() reduecLayer = TurnPassive.GetTriggerEffectValue(turnFight, batObj, tagObj, ChConfig.PassiveEff_ReduceLayer5023, connSkillTypeID=curBuff.GetSkillTypeID(), reduceBuffState=buffState) if reduecLayer: needLayers = max(0, needLayers - reduecLayer) GameWorld.DebugLogEx("¼õÉÙ5023Ч¹ûËùÐèÏûºÄµÄbuff²ã¼¶! buffState=%s,reduecLayer=%s,needLayers=%s", buffState, reduecLayer, needLayers) if buffLayers < needLayers: GameWorld.DebugLogEx("buff״̬²ãÊý²»×ã²»´¥·¢! buffState=%s,buffLayers=%s < %s", buffState, buffLayers, needLayers) return delLayers = curEffect.GetEffectValue(3) # Ö¸¶¨ÏûºÄ²ãÊý if not delLayers: delLayers = needLayers updLayer = buffLayers - delLayers GameWorld.DebugLogEx("ÏûºÄbuff²ãÊͷż¼ÄÜ: buffState=%s,buffLayers=%s,delLayers=%s,updLayer=%s", buffState, buffLayers, delLayers, updLayer) TurnBuff.DoBuffLayerChange(turnFight, batObj, curBuff, updLayer, connSkill) if exSkillID: noUseXP = curEffect.GetEffectValue(4) # Å­ÆøÊ±ÊÇ·ñ²»ÏûºÄÅ­Æø if noUseXP: kwargs["noUseXP"] = 1 TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, exSkillID, connBuff=connBuff, **kwargs) return True def DoBuffEffectLogic(turnFight, batObj, tagObj, effBuff, curEffect, connSkill, connBuff, **kwargs): effSkill = effBuff.GetSkillData().GetIpyData() return DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs)