#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package Skill.PassiveTrigger.PassiveEff_5504
|
#
|
# @todo:´¥·¢Êͷż¼ÄÜ£¨Ñé֤Ŀ±ê״̬£©
|
# @author hxp
|
# @date 2025-12-16
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ´¥·¢Êͷż¼ÄÜ£¨Ñé֤Ŀ±ê״̬£©
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2025-12-16 16:00"""
|
#-------------------------------------------------------------------------------
|
|
import TurnSkill
|
import IpyGameDataPY
|
import GameWorld
|
|
def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
|
skillID = curEffect.GetEffectValue(0) # ¼¼ÄÜID£¬Îª0ʱÊͷű¾¼¼ÄÜ
|
checkStateList = curEffect.GetEffectValue(1) # ¿É¸½¼ÓÑé֤Ŀ±ê´¦ÓÚxx״̬
|
checkOwner = curEffect.GetEffectValue(2) # ÊÇ·ñÖ»ÏÞ¹éÊô×Ô¼ºµÄ״̬buff
|
isSelfDOTTrigger = curEffect.GetEffectValue(3) # ¿É¸½¼ÓÑéÖ¤´¥·¢µÄ³ÖÐøbuffÊÇ·ñÊÇ×Ô¼ºÊ©¼ÓµÄ
|
|
if checkStateList:
|
ownerID = batObj.GetID() if checkOwner else 0
|
inState = False
|
tagBuffMgr = tagObj.GetBuffManager()
|
for checkState in checkStateList:
|
if tagBuffMgr.FindBuffByState(checkState, ownerID):
|
inState = True
|
break
|
if not inState:
|
#GameWorld.DebugLogEx("Ä¿±ê²»ÔÚ״̬ϲ»´¥·¢: tagID=%s,checkStateList=%s,ownerID=%s", tagObj.GetID(), checkStateList, ownerID)
|
return
|
|
if isSelfDOTTrigger:
|
if not connBuff:
|
GameWorld.DebugLogEx("5504ûÓйØÁªµÄbuff²»´¦Àí!")
|
return
|
curID = batObj.GetID()
|
buffOwnerID = connBuff.GetOwnerID()
|
connBuffID = connBuff.GetBuffID()
|
if curID != buffOwnerID:
|
GameWorld.DebugLogEx("5504·Ç×Ô¼ºµÄ³ÖÐøbuff´¥·¢µÄ²»´¦Àí: connBuffID=%s,buffOwnerID=%s != curID=%s", connBuffID, buffOwnerID, curID)
|
return
|
if checkStateList:
|
if connBuff.GetCurBuffState() not in checkStateList:
|
GameWorld.DebugLogEx("5504·Ç×Ô¼ºÖ¸¶¨³ÖÐøbuff´¥·¢µÄ²»´¦Àí: connBuffID=%s,buffState=%s not in %s", connBuffID, connBuff.GetCurBuffState(), checkStateList)
|
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):
|
effSkill = effBuff.GetSkillData().GetIpyData()
|
return DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs)
|