#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package Skill.PassiveTrigger.PassiveEff_5501
|
#
|
# @todo:´¥·¢Êͷż¼ÄÜ£¨Ö¸¶¨buff²ã¼¶£©
|
# @author hxp
|
# @date 2025-11-26
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ´¥·¢Êͷż¼ÄÜ£¨Ö¸¶¨buff²ã¼¶£©
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2025-11-26 20:30"""
|
#-------------------------------------------------------------------------------
|
|
import TurnSkill
|
import IpyGameDataPY
|
|
def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
|
skillID = curEffect.GetEffectValue(0) # ¼¼ÄÜID£¬Îª0ʱÊͷű¾¼¼ÄÜ
|
setLayerCnt = curEffect.GetEffectValue(1) # Ö¸¶¨buff²ã¼¶
|
byTagStateList = curEffect.GetEffectValue(2) # »ò¸ù¾ÝÄ¿±êxx״̬ [״̬1, ״̬2, ...]×ܲ㼶
|
if byTagStateList:
|
layerTotal = 0
|
tagBuffMgr = tagObj.GetBuffManager()
|
for index in range(tagBuffMgr.GetBuffCount()):
|
buff = tagBuffMgr.GetBuffByIndex(index)
|
skillData = buff.GetSkillData()
|
if skillData.GetCurBuffState() not in byTagStateList:
|
continue
|
layerTotal += buff.GetLayer()
|
setLayerCnt = layerTotal
|
|
if setLayerCnt <= 0:
|
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, setLayerCnt=setLayerCnt)
|
|