| | |
| | | import GameWorld
|
| | | import SkillCommon
|
| | | import BuffSkill
|
| | | import SkillShell
|
| | | import IPY_GameWorld
|
| | |
|
| | | def CheckCanHappen(attacker, defender, passiveEffect, skillID):
|
| | | def CheckCanHappen(attacker, defender, passiveEffect, skillID, **skillkwargs):
|
| | | # 先判断概率
|
| | | rate = passiveEffect.GetEffectValue(0)
|
| | | if rate and not GameWorld.CanHappen(rate):
|
| | | return False
|
| | | |
| | | # 关联技能
|
| | | checkSkillID = passiveEffect.GetEffectValue(2)
|
| | | if checkSkillID:
|
| | | useSkill = skillkwargs.get("useSkill", None)
|
| | | if not useSkill:
|
| | | return False
|
| | | if useSkill.GetSkillTypeID() != checkSkillID:
|
| | | return False
|
| | | |
| | | curSkill = GameWorld.GetGameData().GetSkillBySkillID(skillID)
|
| | | if not curSkill:
|
| | | return False
|
| | |
| | | return False
|
| | |
|
| | | buffManager = buffTuple[0]
|
| | | buff = buffManager.FindBuff(skillID)
|
| | | buff = buffManager.FindBuff(curSkill.GetSkillTypeID())
|
| | | if not buff:
|
| | | return False
|
| | | |
| | |
|
| | | if buff.GetLayer() <= 0:
|
| | | return False
|
| | |
|
| | | triggerSkillID = passiveEffect.GetEffectValue(1)
|
| | | |
| | | BuffSkill.SetBuffLayer(attacker, buff, buff.GetLayer()-1, skillTypeID=curSkill.GetSkillTypeID())
|
| | | |
| | | if triggerSkillID and attacker.GetGameObjType() == IPY_GameWorld.gotPlayer:
|
| | | skillManager = attacker.GetSkillManager()
|
| | | #获得技能
|
| | | triggerSkill = skillManager.FindSkillBySkillTypeID(triggerSkillID)
|
| | | if triggerSkill:
|
| | | #玩家技能会升级
|
| | | SkillShell.UsePassiveTriggerSkill(attacker, triggerSkill, defender, GameWorld.GetGameWorld().GetTick(), isEnhanceSkill = True)
|
| | | else:
|
| | | triggerSkill = GameWorld.GetGameData().GetSkillBySkillID(triggerSkillID)
|
| | | if triggerSkill:
|
| | | SkillShell.UsePassiveTriggerSkill(attacker, triggerSkill, defender, GameWorld.GetGameWorld().GetTick(), isEnhanceSkill = True)
|
| | | return True
|
| | |
|
| | |
|