Index: game/modules/tome/dialogs/LevelupDialog.lua =================================================================== --- game/modules/tome/dialogs/LevelupDialog.lua (revision 5049) +++ game/modules/tome/dialogs/LevelupDialog.lua (working copy) @@ -482,7 +482,7 @@ end for i, tid in ipairs(reset) do self.actor:forceUseTalent(tid, {ignore_energy=true, ignore_cd=true, no_equilibrium_fail=true, no_paradox_fail=true}) - if self.actor:knowTalent(tid) then self.actor:forceUseTalent(tid, {ignore_energy=true, ignore_cd=true, no_equilibrium_fail=true, no_paradox_fail=true}) end + if self.actor:knowTalent(tid) then self.actor:forceUseTalent(tid, {ignore_energy=true, ignore_cd=true, no_equilibrium_fail=true, no_paradox_fail=true, talent_reuse=true}) end end if not self.on_birth then Index: game/modules/tome/class/Actor.lua =================================================================== --- game/modules/tome/class/Actor.lua (revision 5049) +++ game/modules/tome/class/Actor.lua (working copy) @@ -2838,7 +2838,7 @@ return true end ---- Called before a talent is used +--- Called after a talent is used -- Check if it must use a turn, mana, stamina, ... -- @param ab the talent (not the id, the table) -- @param ret the return of the talent action @@ -3003,9 +3003,11 @@ function _M:forceUseTalent(t, def) if def.no_equilibrium_fail then self:attr("no_equilibrium_fail", 1) end if def.no_paradox_fail then self:attr("no_paradox_fail", 1) end + if def.talent_reuse then self:attr("talent_reuse", 1) end local ret = {engine.interface.ActorTalents.forceUseTalent(self, t, def)} if def.no_equilibrium_fail then self:attr("no_equilibrium_fail", -1) end if def.no_paradox_fail then self:attr("no_paradox_fail", -1) end + if def.talent_reuse then self:attr("talent_reuse", -1) end return unpack(ret) end Index: game/modules/tome/data/talents/cursed/cursed-form.lua =================================================================== --- game/modules/tome/data/talents/cursed/cursed-form.lua (revision 5049) +++ game/modules/tome/data/talents/cursed/cursed-form.lua (working copy) @@ -113,8 +113,10 @@ end -- reduce hate by efficiency - local cost = self:getHate() * (1 - t.getEfficiency(self, t) / 100) - self:incHate(-cost) + if not self:attr("talent_reuse") then + local cost = self:getHate() * (1 - t.getEfficiency(self, t) / 100) + self:incHate(-cost) + end -- reduce damage local damageChange = t.getDamageChange(self, t)