| | |
| | | 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.DebugLog("概率进行追击不触发!")
|
| | | #GameWorld.DebugLogEx("5012概率进行追击不触发! %s", rate)
|
| | | return
|
| | | |
| | | costBuffState = curEffect.GetEffectValue(3) # 可设置需消耗某状态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
|
| | |
| | | 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):
|