diff --git a/lua/app/module/battle/component/battle_unit_comp.lua b/lua/app/module/battle/component/battle_unit_comp.lua index 98b1b8a0..cf093660 100644 --- a/lua/app/module/battle/component/battle_unit_comp.lua +++ b/lua/app/module/battle/component/battle_unit_comp.lua @@ -1478,7 +1478,7 @@ function BattleUnitComp:judgeSkillEffectCondition(skill, index) local buffConditionIndex, conditionRel = rel[1], rel[2] local buffConditions = skill:getBuffCondition(buffConditionIndex) - return BATTLE_SKILL_CONDITION_HANDLE.judgeSkillEffectCondition(buffConditions, conditionRel, self.battleController) + return BATTLE_SKILL_CONDITION_HANDLE.judgeSkillEffectCondition(buffConditions, conditionRel, self.battleController, self.side) end function BattleUnitComp:takeEffect(buff, target, conditionResult) diff --git a/lua/app/module/battle/helper/battle_skill_condition_handle.lua b/lua/app/module/battle/helper/battle_skill_condition_handle.lua index 898c37ee..933e867b 100644 --- a/lua/app/module/battle/helper/battle_skill_condition_handle.lua +++ b/lua/app/module/battle/helper/battle_skill_condition_handle.lua @@ -47,7 +47,7 @@ BattleSkillConditionHandle._strOperatorOverloading = function(opStr, value1, val return false end -function BattleSkillConditionHandle.judgeSkillEffectCondition(buffConditions, conditionRel, battleController) +function BattleSkillConditionHandle.judgeSkillEffectCondition(buffConditions, conditionRel, battleController, side) if not buffConditions or not conditionRel then return BattleConst.SKILL_CONDITION_RESULT.NO_CONDITION end @@ -57,11 +57,20 @@ function BattleSkillConditionHandle.judgeSkillEffectCondition(buffConditions, co local func = BattleSkillConditionHandle._judgeSkillEffectCondition[condition.type] if func then local target - if condition.side == BattleConst.SIDE_ATK then - target = battleController.atkTeam:getMainUnit() + if side == BattleConst.SIDE_ATK then + if condition.side == 1 then + target = battleController.atkTeam:getMainUnit() + else + target = battleController.defTeam:getMainUnit() + end else - target = battleController.defTeam:getMainUnit() + if condition.side == 1 then + target = battleController.defTeam:getMainUnit() + else + target = battleController.atkTeam:getMainUnit() + end end + if func(condition, conditionRel, target, battleController) then passConditionCount = passConditionCount + 1 end