From 1a808dfd5434175e2c2e659bd67f7b6a115e47af Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Mon, 27 Sep 2021 17:33:51 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=88=98=E6=96=97]=3D=3D=3D=3D=3D=3D=3D=3D=3D?= =?UTF-8?q?=3D=3D=3D=E8=A2=AB=E5=8A=A8137=E4=BF=AE=E6=94=B9=20=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=9F=A5=E6=89=BE=E6=B2=A1=E6=9C=89=E8=A7=A6=E5=8F=91?= =?UTF-8?q?=E4=B8=8D=E7=81=AD=E7=9A=84=E6=8A=80=E8=83=BD=E7=9B=AE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../~Lua/Modules/Battle/Logic/Base/EffectCaster.lua | 11 ++++++++++- .../~Lua/Modules/Battle/Logic/Base/Passivity.lua | 2 +- .../~Lua/Modules/Battle/Logic/Role/Skill.lua | 5 +++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/EffectCaster.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/EffectCaster.lua index c9193ec185..d313ced391 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/EffectCaster.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/EffectCaster.lua @@ -205,7 +205,16 @@ function EffectCaster:GetDirectTargetsNoExile() return list end - +-- 获取直接目标和没有被放逐的目标,不包含不灭可能为空 +function EffectCaster:GetDirectTargetsNoNODead() + local list = {} + for _, role in ipairs(self.effectTargets[1]) do + if not BattleLogic.BuffMgr:HasBuff(role,BuffName.NoDead) then + table.insert(list, role) + end + end + return list +end -- 获取技能目标最大人数 function EffectCaster:GetMaxTargetNum() diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua index 6b0a8d5ecb..3db31337ff 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua @@ -2720,7 +2720,7 @@ local passivityList = { return end if skill.type == BattleSkillType.Special then - local list = skill:GetDirectTargets() + local list = skill:GetDirectTargetsNoNoDead() if list then local tv = floor(BattleUtil.ErrorCorrection(role:GetRoleData(BattlePropList[pro]) * f1)) for _, r in ipairs(list) do diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/Skill.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/Skill.lua index 8b3e55be94..68a8958b38 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/Skill.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/Skill.lua @@ -125,6 +125,11 @@ end function Skill:GetDirectTargetsNoExile() return self.effectCaster:GetDirectTargetsNoExile() end + +-- 获取直接目标,不包含触发不灭的目标,可能为空 +function Skill:GetDirectTargetsNoNoDead() + return self.effectCaster:GetDirectTargetsNoNODead() +end -- 获取技能目标最大人数 function Skill:GetMaxTargetNum() return self.effectCaster:GetMaxTargetNum()