| | |
| | |
|
| | | import TurnSkill
|
| | | import IpyGameDataPY
|
| | | import GameWorld
|
| | | import ChConfig
|
| | |
|
| | | def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill):
|
| | | effectID = curEffect.GetEffectID()
|
| | | def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
|
| | | skillID = curEffect.GetEffectValue(0) # 技能ID,为0时释放本技能
|
| | | if not skillID:
|
| | | passiveSkill = effSkill
|
| | |
| | | passiveSkill = IpyGameDataPY.GetIpyGameData("Skill", skillID)
|
| | | if not passiveSkill:
|
| | | return
|
| | | passiveSkillID = passiveSkill.GetSkillID()
|
| | | # 继承主技能目标
|
| | | if passiveSkill.GetTagAim() == ChConfig.SkillTagAim_MainSkill:
|
| | | happenRate = passiveSkill.GetHappenRate()
|
| | | GameWorld.DebugLog("被动触发技能,继承主技能目标! effectID=%s,passiveSkillID=%s,happenRate=%s" % (effectID, passiveSkillID, happenRate))
|
| | | tagObjList = [tagObj]
|
| | | passiveTagObjList = []
|
| | | for tagObj in tagObjList:
|
| | | tagID = tagObj.GetID()
|
| | | if not tagObj.IsAlive():
|
| | | GameWorld.DebugLog(" 已被击杀不触发: tagID=%s" % (tagID))
|
| | | continue
|
| | | if happenRate and happenRate != ChConfig.Def_MaxRateValue and not GameWorld.CanHappen(happenRate, ChConfig.Def_MaxRateValue):
|
| | | GameWorld.DebugLog(" 概率不触发: tagID=%s,happenRate=%s" % (tagID, happenRate))
|
| | | continue
|
| | | passiveTagObjList.append(tagObj)
|
| | | |
| | | if passiveTagObjList:
|
| | | TurnSkill.OnUseSkill(turnFight, batObj, passiveSkill, passiveTagObjList, batType=ChConfig.TurnBattleType_Passive, bySkill=connSkill)
|
| | | else:
|
| | | GameWorld.DebugLog("被动触发技能,重新锁定目标! effectID=%s,passiveSkillID=%s" % (effectID, passiveSkillID))
|
| | | TurnSkill.OnUseSkill(turnFight, batObj, passiveSkill, batType=ChConfig.TurnBattleType_Passive, bySkill=connSkill)
|
| | | |
| | | return
|
| | | effectID = curEffect.GetEffectID()
|
| | | effSkillID = effSkill.GetSkillID()
|
| | | return TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, passiveSkill, connSkill, effSkillID, effectID, connBuff)
|
| | |
|
| | | def DoBuffEffectLogic(turnFight, batObj, tagObj, curBuff, curEffect, connSkill):
|
| | | return DoSkillEffectLogic(turnFight, batObj, tagObj, None, curEffect, connSkill)
|
| | | def DoBuffEffectLogic(turnFight, batObj, tagObj, effBuff, curEffect, connSkill, connBuff, **kwargs):
|
| | | effSkill = effBuff.GetSkillData().GetIpyData()
|
| | | return DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs)
|