#!/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)
|