#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package Skill.PassiveTrigger.PassiveEff_5002
|
#
|
# @todo:½áËãÄ¿±êijÖÖ״̬³ÖÐøbuffËùÓлغÏЧ¹û
|
# @author hxp
|
# @date 2025-08-28
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ½áËãÄ¿±êijÖÖ״̬³ÖÐøbuffËùÓлغÏЧ¹û
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2025-08-28 10:30"""
|
#-------------------------------------------------------------------------------
|
|
import TurnBuff
|
import GameWorld
|
import IpyGameDataPY
|
import TurnSkill
|
|
def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill):
|
effectID = curEffect.GetEffectID()
|
buffState = curEffect.GetEffectValue(0)
|
needLayers = curEffect.GetEffectValue(1) # Àۼƴﵽ¶àÉÙ²ãʱ²Å½áËã
|
noDel = curEffect.GetEffectValue(2) # ÊÇ·ñ²»¿Û³ýÊ£Óà»ØºÏ£¬Ä¬ÈÏ0-¿Û³ý 1-²»¿Û³ý
|
exSkillID = curEffect.GetEffectValue(3) # ¶îÍâÊͷż¼ÄÜID£¬0²»ÊÍ·Å£¨¿É¶ÔbuffЯ´øÕß»òÖØÉèÄ¿±ê£©
|
#GameWorld.DebugLog("DoBuffEffectLogic: effectID=%s, buffState=%s, needLayers=%s, noDel=%s, exSkillID=%s" % (effectID, buffState, needLayers, noDel, exSkillID))
|
if not buffState or not needLayers:
|
return
|
|
layerTotal = 0
|
buffList = []
|
buffMgr = tagObj.GetBuffManager()
|
for index in range(buffMgr.GetBuffCount()):
|
buff = buffMgr.GetBuffByIndex(index)
|
skillData = buff.GetSkillData()
|
if skillData.GetCurBuffState() != buffState:
|
continue
|
layerTotal += buff.GetLayer()
|
buffList.append(buff)
|
|
if layerTotal < needLayers:
|
GameWorld.DebugLog("buff״̬×ܲãÊý²»×ã²»´¥·¢! buffState=%s,layerTotal=%s < %s" % (buffState, layerTotal, needLayers))
|
return
|
|
GameWorld.DebugLog("½áËãÄ¿±êijÖÖ״̬³ÖÐøbuffËùÓлغÏЧ¹û: layerTotal=%s,buffCnt=%s,noDel=%s" % (layerTotal, len(buffList), noDel))
|
for buff in buffList:
|
GameWorld.DebugLog("buffID=%s,RemainTime=%s" % (buff.GetBuffID(), buff.GetRemainTime()))
|
for _ in range(buff.GetRemainTime()):
|
TurnBuff.DoBuffProcess(turnFight, tagObj, buff)
|
if noDel:
|
continue
|
TurnBuff.DoBuffDel(turnFight, tagObj, buff)
|
|
if exSkillID:
|
effSkillID = effSkill.GetSkillID()
|
passiveSkill = IpyGameDataPY.GetIpyGameData("Skill", exSkillID)
|
if passiveSkill:
|
TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, passiveSkill, connSkill, effSkillID, effectID)
|
|
return True
|