| | |
| | |
|
| | | import TurnBuff
|
| | | import GameWorld
|
| | | import TurnPassive
|
| | | import ChConfig
|
| | | import random
|
| | |
|
| | | def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
|
| | |
| | | return
|
| | |
|
| | | random.shuffle(tagBuffList) # 随机
|
| | | |
| | | changeToLayer = 0
|
| | | if changeLayers < len(tagBuffList):
|
| | | # 不足时才额外取其他被动增加的
|
| | | effSkillTypeID = effSkill.GetSkillTypeID()
|
| | | changeLayers += TurnPassive.GetTriggerEffectValue(turnFight, batObj, tagObj, ChConfig.PassiveEff_AddChangeLayers5008, connSkillTypeID=effSkillTypeID, **kwargs)
|
| | | |
| | | remainLayers = changeLayers # 剩余可转层数
|
| | | changeToLayer = 0 # 最终转层数
|
| | | for tagBuff in tagBuffList:
|
| | | if changeLayers <= 0:
|
| | | if remainLayers <= 0:
|
| | | break
|
| | | skillID = tagBuff.GetSkillID()
|
| | | curLayer = max(1, tagBuff.GetLayer()) # 至少算1层
|
| | | if curLayer > changeLayers:
|
| | | updLayer = curLayer - changeLayers
|
| | | changeLayers = 0
|
| | | changeToLayer += changeLayers
|
| | | if curLayer > remainLayers:
|
| | | updLayer = curLayer - remainLayers
|
| | | changeToLayer += remainLayers
|
| | | remainLayers = 0
|
| | | else:
|
| | | updLayer = 0
|
| | | changeLayers -= curLayer
|
| | | changeToLayer += curLayer
|
| | | remainLayers -= curLayer
|
| | | GameWorld.DebugLog("转化buff: tagID=%s,tagBuffID=%s,skillID=%s,curLayer=%s,updLayer=%s,changeToLayer=%s"
|
| | | % (tagObj.GetID(), tagBuff.GetBuffID(), skillID, curLayer, updLayer, changeToLayer))
|
| | | TurnBuff.DoBuffLayerChange(turnFight, tagObj, tagBuff, updLayer, connSkill)
|