diff --git a/game/engines/default/engine/interface/ActorTalents.lua b/game/engines/default/engine/interface/ActorTalents.lua index 931ac6f8df3d0c4f8632c938d876b3413937302f..07df45bd14b8b890c69b79fe287165bf1656adc1 100644 --- a/game/engines/default/engine/interface/ActorTalents.lua +++ b/game/engines/default/engine/interface/ActorTalents.lua @@ -447,6 +447,24 @@ function _M:unlearnTalent(t_id, nb) return true end +--- Force passives update +function _M:updateTalentPassives(tid) + if not self:knowTalent(tid) then return end + + local t = self:getTalentFromId(tid) + if not t.passives then return end + + self.talents_learn_vals[t.id] = self.talents_learn_vals[t.id] or {} + local p = self.talents_learn_vals[t.id] + + if p.__tmpvals then for i = 1, #p.__tmpvals do + self:removeTemporaryValue(p.__tmpvals[i][1], p.__tmpvals[i][2]) + end end + + self.talents_learn_vals[t.id] = {} + t.passives(self, t, self.talents_learn_vals[t.id]) +end + --- Checks the talent if learnable -- @param t the talent to check -- @param offset the level offset to check, defaults to 1