diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index b024318e108e6b32cf10d7638e5bcc57155380b6..49069afe1826e840f54f97f100c50f2e680bf895 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -6847,6 +6847,7 @@ end function _M:alterTalentLevelRaw(t, lvl) if t.no_unlearn_last then return lvl end -- Those are dangerous, do not change them if self.talents_add_levels and self.talents_add_levels[t.id] then lvl = lvl + self.talents_add_levels[t.id] end + if self:attr("all_talents_bonus_level") then lvl = lvl + self:attr("all_talents_bonus_level") end if self:attr("spells_bonus_level") and t.is_spell then lvl = lvl + self:attr("spells_bonus_level") end if self.talents_add_levels_custom and next(self.talents_add_levels_custom) then for id, filter in pairs(self.talents_add_levels_custom) do if type(filter) == "function" then diff --git a/game/modules/tome/data/talents/spells/phantasm.lua b/game/modules/tome/data/talents/spells/phantasm.lua index b1d88284c720f646f45d7df34c4243ab864c6472..f3bbe7783c6df8c7f49d6d8211b7a9e025841f48 100644 --- a/game/modules/tome/data/talents/spells/phantasm.lua +++ b/game/modules/tome/data/talents/spells/phantasm.lua @@ -208,6 +208,20 @@ newTalent{ faction = self.faction, summoner = self, heal = function() return 0 end, -- Cant ever heal + useCharge = function(self) + self.charges = self.charges - 1 + self.max_life = self.max_charges + self.life = self.charges + if self.charges < 0 then self:die(self) end + end, + callbackOnAct = function(self) + self.max_life = self.max_charges + self.life = self.charges + end, + onTemporaryValueChange = function(self, ...) + self:callbackOnAct() + return mod.class.NPC.onTemporaryValueChange(self, ...) + end, takeHit = function(self, value, src, death_note) -- Cant ever take more than one damage per turn per actor if not src then return false, 0 end if src ~= self then @@ -216,7 +230,9 @@ newTalent{ self.turn_procs.mirror_image_dmg = self.turn_procs.mirror_image_dmg or {} self.turn_procs.mirror_image_dmg[src] = true end - return mod.class.NPC.takeHit(self, 1, src, death_note) + self:useCharge() + return false, 1 + -- return mod.class.NPC.takeHit(self, 1, src, death_note) end, on_die = function(self) self.summoner:removeEffect(self.summoner.EFF_MIRROR_IMAGE_REAL, true, true) @@ -230,6 +246,8 @@ newTalent{ game.zone:addEntity(game.level, image, "actor", tx, ty) image.max_life = t:_getLife(self) image.life = t:_getLife(self) + image.max_charges = t:_getLife(self) + image.charges = t:_getLife(self) -- Clone particles for ps, _ in pairs(self.__particles) do diff --git a/game/modules/tome/data/talents/uber/cun.lua b/game/modules/tome/data/talents/uber/cun.lua index 7ec1585c70f55d35699d08b3cf8a842e942bc1b8..a2fd1adaa0912d1f76c85dfc5f0ad58ff02c6e77 100644 --- a/game/modules/tome/data/talents/uber/cun.lua +++ b/game/modules/tome/data/talents/uber/cun.lua @@ -471,17 +471,11 @@ uberTalent{ mode = "passive", cant_steal = true, info = function(self, t) - return ([[Your talent masteries are increased by 0.3. Note that many talents will not benefit from this increase.]]) - :tformat() + return ([[You are adept at many different skills, granting you +2 to all talent levels. + This works on already known talents and those that you will learn afterwards.]]):tformat() end, - passives = function(self, t, tmptable) - self:talentTemporaryValue(tmptable, "talents_mastery_bonus", {all = 0.3}) - - if not self._updating_adept then - self._updating_adept = true - self:updateAllTalentsPassives() - self._updating_adept = nil - end + passives = function(self, t, p) + self:talentTemporaryValue(p, "all_talents_bonus_level", 2) end, } diff --git a/game/modules/tome/data/timed_effects/other.lua b/game/modules/tome/data/timed_effects/other.lua index 6033baf27973bc26ddef61317fc99c37bbc3a22c..5accdee5d44b6fd36674c0eb7d06ff95c43e0ecc 100644 --- a/game/modules/tome/data/timed_effects/other.lua +++ b/game/modules/tome/data/timed_effects/other.lua @@ -4059,7 +4059,8 @@ newEffect{ pcall(function() -- Just in case eff.image:forceUseTalent(ab.id, {force_level=self:getTalentLevelRaw(ab.id), ignore_cd=true, no_talent_fail=true, ignore_energy=true, force_talent_ignore_ressources=true, force_target=tgt}) - eff.image:takeHit(1, eff.image) + -- eff.image:takeHit(1, eff.image) + eff.image:useCharge() end) eff.last_talent = true