#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package Skill.PassiveTrigger.PassiveEff_5012
|
#
|
# @todo:¸ÅÂʽøÐÐ×·»÷
|
# @author hxp
|
# @date 2025-09-18
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ¸ÅÂʽøÐÐ×·»÷
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2025-09-18 10:30"""
|
#-------------------------------------------------------------------------------
|
|
import TurnSkill
|
import IpyGameDataPY
|
import GameWorld
|
import ChConfig
|
import TurnBuff
|
|
def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
|
rate = curEffect.GetEffectValue(0)
|
bySameCountryFriendRate = curEffect.GetEffectValue(2) # ´¥·¢À´Ô´ÓÑ·½ÊÇͬ¹úʱµÄ¸ÅÂÊ
|
if bySameCountryFriendRate:
|
if "byFriendObj" in kwargs:
|
byFriendObj = kwargs["byFriendObj"]
|
if byFriendObj and byFriendObj.GetCountry() == batObj.GetCountry():
|
rate = bySameCountryFriendRate
|
if not GameWorld.CanHappen(rate):
|
#GameWorld.DebugLogEx("5012¸ÅÂʽøÐÐ×·»÷²»´¥·¢! %s", rate)
|
return
|
|
costBuffState = curEffect.GetEffectValue(3) # ¿ÉÉèÖÃÐèÏûºÄij״̬buff£¨Ä¬ÈÏ1²ã£©
|
if costBuffState:
|
buffMgr = batObj.GetBuffManager()
|
buff = buffMgr.FindBuffByState(costBuffState)
|
if not buff:
|
#GameWorld.DebugLogEx("5012²»´æÔÚbuff״̬£¬ÎÞ·¨´¥·¢! costBuffState=%s", costBuffState)
|
return
|
TurnBuff.DoBuffLayerChange(turnFight, batObj, buff, buff.GetLayer() - 1, connSkill)
|
|
skillID = curEffect.GetEffectValue(1) # ¼¼ÄÜID£¬Îª0ʱÊͷű¾¼¼ÄÜ
|
if not skillID:
|
passiveSkill = effSkill
|
else:
|
passiveSkill = IpyGameDataPY.GetIpyGameData("Skill", skillID)
|
if not passiveSkill:
|
return
|
noUseXP = curEffect.GetEffectValue(4) # ÅÆø×·»÷ʱÊÇ·ñ²»ÏûºÄÅÆø
|
if noUseXP:
|
kwargs["noUseXP"] = 1
|
return TurnSkill.OnUseSkill(turnFight, batObj, passiveSkill, batType=ChConfig.TurnBattleType_Pursue, bySkill=connSkill, byBuff=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)
|