#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package Skill.PassiveTrigger.PassiveEff_6011
|
#
|
# @todo:Ôö¼Ó±¾´Î¼¼ÄÜÍò·Ö±È£¨¸ù¾Ýbuff²ã¼¶£©
|
# @author hxp
|
# @date 2025-09-24
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: Ôö¼Ó±¾´Î¼¼ÄÜÍò·Ö±È£¨¸ù¾Ýbuff²ã¼¶£©
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2025-09-24 19:00"""
|
#-------------------------------------------------------------------------------
|
|
import TurnBuff
|
import BattleObj
|
|
def GetHappenValue(attacker, defender, curEffect, effSkill, effBuff, connSkill, **skillkwargs):
|
layerPer = curEffect.GetEffectValue(0) # ÿ²ãÔö¼ÓµÄÍò·Ö±È
|
buffStateList = curEffect.GetEffectValue(1) # buff״̬ [״̬1, ״̬2, ...]
|
checkTag = curEffect.GetEffectValue(2) # buff¼ì²é×Ô¼º»¹ÊǶԷ½£º 0-×Ô¼º£¬1-¶Ô·½£¬2-Ö÷¼¼ÄÜÄ¿±ê
|
isDelBuff = curEffect.GetEffectValue(3) # ´¥·¢Ð§¹ûºóÊÇ·ñ¿Û³ýbuff
|
if not buffStateList:
|
return
|
|
if isDelBuff:
|
if "turnFight" not in skillkwargs:
|
return
|
turnFight = skillkwargs["turnFight"]
|
|
layerTotal = 0
|
if checkTag == 2:
|
objMgr = BattleObj.GetBatObjMgr()
|
for tagID in attacker.GetMainTagIDList():
|
buffObj = objMgr.getBatObj(tagID)
|
if not buffObj:
|
continue
|
buffMgr = buffObj.GetBuffManager()
|
for buffState in buffStateList:
|
for buff in buffMgr.FindBuffListByState(buffState)[::-1]:
|
layerTotal += buff.GetLayer()
|
else:
|
buffObj = defender if checkTag else attacker
|
buffMgr = buffObj.GetBuffManager()
|
for buffState in buffStateList:
|
for buff in buffMgr.FindBuffListByState(buffState)[::-1]:
|
layerTotal += buff.GetLayer()
|
if isDelBuff:
|
TurnBuff.DoBuffDel(turnFight, buffObj, buff, connSkill)
|
|
return layerTotal * layerPer
|