| | |
| | | tagID = tagObj.GetID()
|
| | | if tagID == ChConfig.HeroID_Caoren:
|
| | | continue
|
| | | if tagObj.CheckInState(ChConfig.BatObjState_Wudi):
|
| | | if tagObj.CheckInState(ChConfig.ImmuneHurtStateList):
|
| | | continue
|
| | | if not caorenProtectObj or tagObj.GetHP() < caorenProtectObj.GetHP():
|
| | | caorenProtectObj = tagObj
|
| | |
| | | continue
|
| | | if tagID == ChConfig.HeroID_Caoren:
|
| | | continue
|
| | | if tagObj.CheckInState(ChConfig.BatObjState_Wudi):
|
| | | if tagObj.CheckInState(ChConfig.ImmuneHurtStateList):
|
| | | continue
|
| | | if not caorenProtectObj or tagObj.GetHP() < caorenProtectObj.GetHP():
|
| | | caorenProtectObj = tagObj
|
| | |
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_BeMiss, tagObj, connSkill=useSkill)
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_Miss, curObj, connSkill=useSkill)
|
| | |
|
| | | # 免疫
|
| | | if tagID in immuneObjIDList:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_ImmuneHurt, curObj, connSkill=useSkill)
|
| | | |
| | | if tagID in effIgnoreObjIDList:
|
| | | continue
|
| | |
|
| | |
| | | OnUseSkill(turnFight, curBatObj, enhanceSkillData, batType=ChConfig.TurnBattleType_Enhance, bySkill=useSkill)
|
| | | return
|
| | |
|
| | | def OnUsePassiveSkill(turnFight, batObj, tagObj, passiveSkill, connSkill=None, effSkillID=0, effectID=0, connBuff=None, **kwargs):
|
| | | def OnUsePassiveSkill(turnFight, batObj, tagObj, passiveSkill, connSkill=None, effSkillID=0, effectID=0, connBuff=None, batType=ChConfig.TurnBattleType_Passive, **kwargs):
|
| | | '''被动触发使用技能
|
| | | @param passiveSkill: 释放的被动技能 或 技能ID
|
| | | @param connSkill: 由什么技能引起的
|
| | |
| | | GameWorld.DebugLogEx(" 概率不触发: tagID=%s,happenRate=%s", tagID, happenRate)
|
| | | return
|
| | | passiveTagObjList = [tagObj]
|
| | | isOK = OnUseSkill(turnFight, batObj, passiveSkill, passiveTagObjList, batType=ChConfig.TurnBattleType_Passive, bySkill=connSkill, byBuff=connBuff, **kwargs)
|
| | | isOK = OnUseSkill(turnFight, batObj, passiveSkill, passiveTagObjList, batType=batType, bySkill=connSkill, byBuff=connBuff, **kwargs)
|
| | | elif tagAim == ChConfig.SkillTagAim_MainSkillEx:
|
| | | if not connSkill:
|
| | | return
|
| | | passiveTagObjList = connSkill.GetTagObjList()
|
| | | isOK = OnUseSkill(turnFight, batObj, passiveSkill, passiveTagObjList, batType=ChConfig.TurnBattleType_Passive, bySkill=connSkill, byBuff=connBuff, **kwargs)
|
| | | isOK = OnUseSkill(turnFight, batObj, passiveSkill, passiveTagObjList, batType=batType, bySkill=connSkill, byBuff=connBuff, **kwargs)
|
| | | elif tagAim == ChConfig.SkillTagAim_MainSkillFriend:
|
| | | if "byFriendObj" not in kwargs:
|
| | | return
|
| | |
| | | passiveTagObjList = [byFriendObj]
|
| | | GameWorld.DebugLogEx("被动触发技能,针对来源友军! effSkillID=%s,effectID=%s,passiveSkillID=%s,bySkillID=%s,byFriendID=%s",
|
| | | effSkillID, effectID, passiveSkillID, bySkillID, byFriendObj.GetID())
|
| | | isOK = OnUseSkill(turnFight, batObj, passiveSkill, passiveTagObjList, batType=ChConfig.TurnBattleType_Passive, bySkill=connSkill, byBuff=connBuff, **kwargs)
|
| | | isOK = OnUseSkill(turnFight, batObj, passiveSkill, passiveTagObjList, batType=batType, bySkill=connSkill, byBuff=connBuff, **kwargs)
|
| | | else:
|
| | | GameWorld.DebugLogEx("被动触发技能,重新锁定目标! effSkillID=%s,effectID=%s,passiveSkillID=%s,bySkillID=%s", effSkillID, effectID, passiveSkillID, bySkillID)
|
| | | isOK = OnUseSkill(turnFight, batObj, passiveSkill, batType=ChConfig.TurnBattleType_Passive, bySkill=connSkill, byBuff=connBuff, **kwargs)
|
| | | isOK = OnUseSkill(turnFight, batObj, passiveSkill, batType=batType, bySkill=connSkill, byBuff=connBuff, **kwargs)
|
| | |
|
| | | return isOK
|
| | |
|
| | |
| | | return hurtValue, hurtTypes, immuneHurt
|
| | |
|
| | | hurtValue = int(hurtValue)
|
| | | if defObj.CheckInState(ChConfig.BatObjState_Wudi):
|
| | | if defObj.CheckInState(ChConfig.ImmuneHurtStateList):
|
| | | hurtTypes |= pow(2, ChConfig.HurtAtkType_Immune) # 添加免疫
|
| | | immuneHurt = hurtValue
|
| | | hurtValue = 0
|
| | |
| | |
|
| | | immuneHurt = immuneHurtDict.get(aveObjID)
|
| | | if immuneHurt == None:
|
| | | if aveObj.CheckInState(ChConfig.BatObjState_Wudi):
|
| | | if aveObj.CheckInState(ChConfig.ImmuneHurtStateList):
|
| | | immuneHurt = 0
|
| | | else:
|
| | | immuneHurt = -1 # 标记没有无敌
|