#!/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
|
updLayer = buffLayers - needLayers
|
GameWorld.DebugLogEx("ÏûºÄbuff²ãÊͷż¼ÄÜ: buffState=%s,buffLayers=%s,delLayers=%s,updLayer=%s", buffState, buffLayers, needLayers, updLayer)
|
TurnBuff.DoBuffLayerChange(turnFight, batObj, curBuff, updLayer, connSkill)
|
|
if exSkillID:
|
TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, exSkillID, connBuff=connBuff)
|
|
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)
|