From 26a85c195647c51159544a5460f16ce76c9008ec Mon Sep 17 00:00:00 2001 From: Alexander Sedov <alex0player@gmail.com> Date: Mon, 15 Dec 2014 07:21:42 +0300 Subject: [PATCH] Added a bit more checks to removeEffectsFilter and made it more concise. --- game/modules/tome/class/Actor.lua | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index 32bdd0c267..dfa22f8efb 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -5522,8 +5522,18 @@ function _M:removeEffectsFilter(t, nb, silent, force) local e = self.tempeffect_def[eff_id] if type(t) == "function" then if t(e) then effs[#effs+1] = eff_id end - elseif (not t.type or t.type == e.type) and (not t.status or e.status == t.status) and (not t.ignore_crosstier or not e.subtype["cross tier"]) then - effs[#effs+1] = eff_id + else + local test = true + test = (not t.ignore_crosstier or not e.subtype["cross tier"]) + test = test and (not t.type or t.type == e.type) + test = test and (not t.types or t.types[e.type]) + if t.subtype then + local valid = false + for k, _ in pairs(t.subtype) do valid = valid or e.subtype[k] end + test = test and valid + end + test = test and (not t.status or e.status == t.status) + if test then effs[#effs+1] = eff_id end end end -- GitLab