From 30c71ca2256befed95e5527e38fbdc59b8c6b37b Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Mon, 29 Aug 2022 10:57:07 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=88=98=E6=96=97]=3D=3D=3D=3D=3D=3D=3D?= =?UTF-8?q?=E8=A2=AB=E5=8A=A8189=E4=BF=AE=E6=94=B9=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/Battle/Logic/Base/Passivity.lua | 19 ++++++++++++++----- .../Battle/Logic/Misc/BattleDefine.lua | 1 + .../Modules/Battle/Logic/Role/RoleLogic.lua | 9 +++++++++ 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua index 8d52c8fde3..0bdadae171 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua @@ -4027,13 +4027,22 @@ local passivityList = { -- a[持续伤害状态] [189] = function(role, args) local dot = args[1] + --如果身上有自己上的效果,不让他上无敌盾buff + -- local onBuffCaster = function(buff) + -- if buff.type == BuffName.DOT and buff.damageType == dot then + -- buff.target:AddBuff(Buff.Create(role, BuffName.Immune, buff.duration, 3)) + -- end + -- end + -- role.Event:AddEvent(BattleEventName.BuffCaster, onBuffCaster,nil,nil,role) - local onBuffCaster = function(buff) - if buff.type == BuffName.DOT and buff.damageType == dot then - buff.target:AddBuff(Buff.Create(role, BuffName.Immune, buff.duration, 3)) + local checkBuffBan=function(func,target,aBuff) + if BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function(buff) return buff.damageType == dot and buff.caster==role end) and aBuff.type==BuffName.Shield and aBuff.shieldType == ShieldTypeName.AllReduce then + if func then + func(true) + end end end - role.Event:AddEvent(BattleEventName.BuffCaster, onBuffCaster,nil,nil,role) + BattleLogic.Event:AddEvent(BattleEventName.RoleAddBuffCheckBan,checkBuffBan,nil,nil,role) end, -- 所有攻击优先攻击敌方[a]最少的单位 @@ -6198,7 +6207,7 @@ local passivityList = { end,nil,nil,role) end, -- 释放技能时如目标处于[a]状态,几率[b]解除周围[c]系神将的控制状态(状态1[d],状态2[e],状态3[f],状态4[g]) - -- a[持续伤害状态]b[float] c[int] + -- a[持续伤害状态]b[float],c[int],d[int],e[int],f[int],g[int] [273] = function(role, args,id,judge) local dot = args[1] local f1 = args[2] diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua index c163414839..5b5cc2b592 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua @@ -199,6 +199,7 @@ BattleEventName = { RoleIsVanish = indexAdd(), -- 角色已经从显示层消失 CheckDamageIsImmune = indexAdd(),--检测伤害是否免疫 BloodValueGetZero = indexAdd(), --御甲值清零 + RoleAddBuffCheckBan = indexAdd(),--角色添加buff检测是否被禁止 } diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua index c5d07ab2f9..e2299d06c7 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua @@ -354,6 +354,15 @@ function RoleLogic:AddBuff(buff,_ignorePro) BattleLogic.BuffMgr:PutBuff(buff) return end + local isBan=false + local function banCallBack(_isBan) + isBan=_isBan + end + BattleLogic.Event:DispatchEvent(BattleEventName.RoleAddBuffCheckBan,banCallBack,self,buff) + if isBan then + self.Event:DispatchEvent(BattleEventName.ShowHintText, BattleArtFontType.Blood) + return + end -- buff的miss率 local missF = 0 -- 检测被动对miss概率的影响