diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index 5376779dd2d216b5d83dc98f1bc191f34ef8e50e..95c9b372d07310d1885dce4063bbd25fb78df7d6 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -1970,8 +1970,10 @@ function _M:onHeal(value, src) end end - local ret = self:fireTalentCheck("callbackOnHeal", value, src) - if ret then value = ret.value end + for _, cb in self:listCallbacks("callbackOnHeal") do + local ret = cb(value, src) + if ret then value = ret.value end + end -- print("[HEALING]", self.uid, self.name, "for", value) if (not self.resting and (not game.party:hasMember(self) or not game:getPlayer(true).resting)) and value + psi_heal >= 1 and not self:attr("silent_heal") then @@ -4858,7 +4860,6 @@ function _M:listCallbacks(event) for _, info in ipairs(self[store].__sorted) do local priority, kind, stringId, tid = unpack(info) if kind == "effect" then - self.__project_source = self.tmp[tid] cbs[#cbs+1] = function(...) self.__project_source = self.tmp[tid] local ret = self:callEffect(tid, event, ...) @@ -4866,10 +4867,9 @@ function _M:listCallbacks(event) return ret end elseif kind == "object" then - self.__project_source = tid cbs[#cbs+1] = function(...) self.__project_source = tid - local ret = tid:check(event, self, ...) end + local ret = tid:check(event, self, ...) self.__project_source = nil return ret end