| | |
| | | import ChConfig
|
| | | import GameWorld
|
| | | import IPY_GameWorld
|
| | | import SkillCommon
|
| | | import AttackCommon
|
| | |
|
| | | def CheckCanHappen(attacker, defender, passiveEffect, skillID, **skillkwargs):
|
| | | if not defender:
|
| | | return False
|
| | | if defender.GetGameObjType() != IPY_GameWorld.gotPlayer:
|
| | | return False
|
| | |
|
| | | curSkill = GameWorld.GetGameData().GetSkillBySkillID(skillID)
|
| | | if not curSkill:
|
| | | return
|
| | | |
| | | buffType = SkillCommon.GetBuffType(curSkill)
|
| | | buffTuple = SkillCommon.GetBuffManagerByBuffType(attacker, buffType)
|
| | | #通过类型获取目标的buff管理器为空,则跳出
|
| | | if buffTuple == ():
|
| | | return
|
| | | |
| | | buffManager = buffTuple[0]
|
| | | buff = buffManager.FindBuff(skillID)
|
| | | if not buff:
|
| | | return
|
| | | return buff.GetValue() == defender.GetID()
|
| | | if passiveEffect.GetEffectValue(1):
|
| | | # 第一目标
|
| | | if AttackCommon.GetFirstDefenderID(attacker) != defender.GetID():
|
| | | return False
|
| | | |
| | | if passiveEffect.GetEffectValue(2):
|
| | | useSkill = skillkwargs.get("useSkill", None)
|
| | | if not useSkill:
|
| | | return False
|
| | | # 普通攻击有效
|
| | | if useSkill.GetFuncType() != ChConfig.Def_SkillFuncType_NormalAttack:
|
| | | return False
|
| | | return True
|
| | |
|
| | |
|
| | | def GetValue(attacker, defender, passiveEffect):
|