From fe6994625c13f3a4159ceb0019e1ed8f86bfbda1 Mon Sep 17 00:00:00 2001 From: xiekaidong Date: Mon, 29 May 2023 20:56:46 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/battle/component/battle_unit_comp.lua | 11 ++++++++--- .../userdata/battle/skill/battle_skill_entity.lua | 14 ++++++++++---- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/lua/app/module/battle/component/battle_unit_comp.lua b/lua/app/module/battle/component/battle_unit_comp.lua index 795db361..f26295d7 100644 --- a/lua/app/module/battle/component/battle_unit_comp.lua +++ b/lua/app/module/battle/component/battle_unit_comp.lua @@ -1372,12 +1372,17 @@ function BattleUnitComp:onSkillTakeEffect(skill, isFinalBlock, validEffectIdx) end function BattleUnitComp:judgeSkillEffectCondition(skill, index) - if not skill then + if not skill or skill:haveBuffCondition() then return true end - local buffConditions = skill:getBuffCondition(index) - local conditionRel = skill:getBuffConditionRel(index) + + + local buffConditionIndex, conditionRel = skill:getBuffConditionRel(index) + if not buffConditionIndex then + return true + end + local buffConditions = skill:getBuffCondition(buffConditionIndex) return BATTLE_SKILL_CONDITION_HANDLE.judgeSkillEffectCondition(buffConditions, conditionRel, self.battleController) end diff --git a/lua/app/userdata/battle/skill/battle_skill_entity.lua b/lua/app/userdata/battle/skill/battle_skill_entity.lua index b1243692..fb15983f 100644 --- a/lua/app/userdata/battle/skill/battle_skill_entity.lua +++ b/lua/app/userdata/battle/skill/battle_skill_entity.lua @@ -30,6 +30,7 @@ function BattleSkillEntity:init() self.available = false end self:clearRecordData() + self.buffConditionRel = nil end function BattleSkillEntity:initSkillEffect() @@ -210,12 +211,17 @@ function BattleSkillEntity:getBuffConditionRel(index) if not self.skillInfo.condition_rel then return end - for _, info in ipairs(self.skillInfo.condition_rel) do - if info[1] == index then - return info[2] + if not self.buffConditionRel then + self.buffConditionRel = {} + for i, info in ipairs(self.skillInfo.condition_rel) do + self.buffConditionRel[info[1]] = {i, info[2]} end end - return 1 + return self.buffConditionRel[index] +end + +function BattleSkillEntity:haveBuffCondition() + return self.skillInfo.condition_rel ~= nil end function BattleSkillEntity:getTargetType()