diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index af392548834a96fbd92aff3a63642d6f836510df..979d33baa159dffdf55d8c24591c5be75e6c33f4 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -3323,8 +3323,6 @@ function _M:levelup() self:no_points_on_levelup() end - if self:knowTalent(self.T_LEGACY_OF_THE_NALOREN) then self:callTalent(self.T_LEGACY_OF_THE_NALOREN,"updateTalent") end-- Update Bonus Talent levels - -- Gain some basic resistances if not self.no_auto_resists then -- Make up a random list of resists the first time @@ -3386,11 +3384,7 @@ function _M:levelup() engine.Autolevel:autoLevel(self) end - -- Force levelup of the golem - if self.alchemy_golem then - self.alchemy_golem.max_level = self.max_level -- make sure golem can level up with master - self.alchemy_golem:forceLevelup(self.level) - end + self:fireTalentCheck("callbackOnLevelup", self.level) -- Notify party levelups if self.x and self.y and game.party:hasMember(self) and not self.silent_levelup then @@ -4890,6 +4884,7 @@ local sustainCallbackCheck = { callbackOnMove = "talents_on_move", callbackOnRest = "talents_on_rest", callbackOnRun = "talents_on_run", + callbackOnLevelup = "talents_on_levelup", callbackOnDeath = "talents_on_death", callbackOnSummonDeath = "talents_on_summon_death", callbackOnKill = "talents_on_kill", diff --git a/game/modules/tome/data/talents/spells/golemancy.lua b/game/modules/tome/data/talents/spells/golemancy.lua index 888d421eb7f82dd3282aa48ae68bbdcba1d506dc..30daa409f874468a9d0e6854ca4d4acb45122d4f 100644 --- a/game/modules/tome/data/talents/spells/golemancy.lua +++ b/game/modules/tome/data/talents/spells/golemancy.lua @@ -316,6 +316,12 @@ newTalent{ game:playSoundNear(self, "talents/arcane") return true end, + -- This is an all-catch talent, and it is auto-learned on anything involving golems, so this is a good place to stick that onto + callbackOnLevelup = function(self, t, new_level) + local _, golem = getGolem(self) + golem.max_level = self.max_level + golem:forceLevelup(new_level) + end, info = function(self, t) local heal = t.getHeal(self, t) return ([[Take care of your golem: diff --git a/game/modules/tome/data/talents/uber/str.lua b/game/modules/tome/data/talents/uber/str.lua index 9202a4d4ea53731099366587c49b59d102c9e3d1..a2a5c2e252d3fd8cdbca46036fef9431be2cf474 100644 --- a/game/modules/tome/data/talents/uber/str.lua +++ b/game/modules/tome/data/talents/uber/str.lua @@ -171,7 +171,7 @@ uberTalent{ end} }, -- _M:levelup function in mod.class.Actor.lua updates the talent levels with character level bonusLevel = function(self, t) return math.ceil(self.level/10) end, - updateTalent = function(self, t) + callbackOnLevelup = function(self, t, new_level) local p = self.talents_learn_vals[t.id] or {} if p.__tmpvals then for i = 1, #p.__tmpvals do