| | |
| | | ght = useSkill.GetHurtType() % 10
|
| | | if ght == IPY_GameWorld.ghtMag: # 做配置兼容用,优先验证法伤,否则默认物伤
|
| | | return IPY_GameWorld.ghtMag
|
| | | if ght == 3: # 由触发的技能决定
|
| | | bySkill = useSkill.GetBySkill()
|
| | | if bySkill:
|
| | | #GameWorld.DebugLogEx("物法类型取触发的技能: useSkillID=%s,bySkillID=%s", useSkill.GetSkillID(), bySkill.GetSkillID())
|
| | | return GetPMType(batObj, bySkill)
|
| | | return IPY_GameWorld.ghtPhy
|
| | |
|
| | | def IsIgnoreDef(useSkill):
|
| | |
| | | useSkill.SetBatType(batType)
|
| | | useSkill.SetBySkill(bySkill)
|
| | | useSkill.SetByBuff(byBuff)
|
| | | # 注:理论上原先的 byFriendObj 都可以直接用这个,但是旧的代码先不修改了,后续的累计敌军、友军之类的触发可以统一使用 byBatObj
|
| | | useSkill.SetByBatObj(kwargs.pop("byBatObj", None))
|
| | | useSkill.SetByTriggerWay(byTriggerWay)
|
| | |
|
| | | isTurnNormalSkill = SkillCommon.isTurnNormalSkill(useSkill)
|
| | |
| | | triggerOne = False
|
| | | batType = useSkill.GetBatType()
|
| | | isAttackDirect = (isUseSkill and SkillCommon.isAttackDirectSkill(useSkill)) # 是否直接攻击
|
| | | curBatLineup = None
|
| | | curBatLineup = curObj.GetBatLineup()
|
| | | curMGObj = curBatLineup.getMinggeObj()
|
| | | for tagObj in tagObjListAll:
|
| | | tagID = tagObj.GetID()
|
| | |
|
| | |
| | | # 追击
|
| | | elif batType == ChConfig.TurnBattleType_Pursue:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_Pursue, tagObj, connSkill=useSkill)
|
| | | if isAttackDirect:
|
| | | if curMGObj:
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, curMGObj, ChConfig.TriggerWay_PursueAtk, tagObj, connSkill=useSkill, byBatObj=curObj)
|
| | | TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BePursue, curObj, connSkill=useSkill)
|
| | | # 反击
|
| | | elif batType == ChConfig.TurnBattleType_AtkBack:
|
| | |
| | |
|
| | | # 敌友方
|
| | | if isAttackDirect or batType in [ChConfig.TurnBattleType_Combo, ChConfig.TurnBattleType_Pursue] or isDotHurt:
|
| | | if not curBatLineup:
|
| | | curBatLineup = curObj.GetBatLineup()
|
| | | for lineupObjID in curBatLineup.posObjIDDict.values():
|
| | | lineupObj = batObjMgr.getBatObj(lineupObjID)
|
| | | if not lineupObj.IsAlive():
|
| | |
| | | '''按公式计算伤害,默认按攻击计算
|
| | | '''
|
| | |
|
| | | #mapID = turnFight.mapID
|
| | | skillID = curSkill.GetSkillID()
|
| | | # 命格攻击类技能,取触发者为施法方,因为部分战斗属性需要取施法方的,如最终增伤等
|
| | | if curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_MinggeSkill:
|
| | | byBatObj = curSkill.GetByBatObj()
|
| | | if byBatObj:
|
| | | GameWorld.DebugLogEx("命格攻击类技能计算伤害属性取触发者! mgObjID=%s,byObjID=%s,skillID=%s", atkObj.GetID(), byBatObj.GetID(), skillID)
|
| | | atkObj = byBatObj
|
| | | |
| | | #mapID = turnFight.mapID
|
| | | pmType = GetPMType(atkObj, curSkill)
|
| | | ignoreDef = IsIgnoreDef(curSkill)
|
| | | batType = curSkill.GetBatType()
|