diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index afbc8a7dd3a5373befa1e86072c8c8b37316908e..ea60de902833c363c8b966a5445dd7e7c5cca0b1 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -7630,6 +7630,7 @@ function _M:on_set_temporary_effect(eff_id, e, p) p.getName = e.getName p.resolveSource = e.resolveSource + local old = self.tmp[eff_id] local olddur = old and not e.on_merge and old.dur or 0 -- let mergable effects handle their own duration -- Adjust duration based on saves if p.apply_power and (save_for_effects[e.type] or p.apply_save) then diff --git a/game/modules/tome/data/general/objects/random-artifacts/ranged.lua b/game/modules/tome/data/general/objects/random-artifacts/ranged.lua index fdc4ddf9e3058bf48b4ebd18fb29031748c30140..bff73ab0948116ec61d810da985656cf650daa72 100644 --- a/game/modules/tome/data/general/objects/random-artifacts/ranged.lua +++ b/game/modules/tome/data/general/objects/random-artifacts/ranged.lua @@ -30,6 +30,9 @@ load("/data/general/objects/random-artifacts/melee.lua", function(e) e.wielder.ranged_project = table.clone(e.wielder.melee_project) e.wielder.melee_project = nil end + if e.combat and e.combat.dam then -- bows & slings should not have base damage + e.rarity = nil + end end) ---------------------------------------------------------------- diff --git a/game/modules/tome/data/talents/misc/inscriptions.lua b/game/modules/tome/data/talents/misc/inscriptions.lua index 3aaa87c5f0942eea00925d9eb58aaed2ef98f6ac..ff7f4e6f62c9cfe1879535e750f1e177c6035451 100644 --- a/game/modules/tome/data/talents/misc/inscriptions.lua +++ b/game/modules/tome/data/talents/misc/inscriptions.lua @@ -751,11 +751,11 @@ newInscription{ end, getThreshold = function(self, t) local data = self:getInscriptionData(t.short_name) - return data.threshold + return math.ceil(data.threshold) end, getBlocks = function(self, t) local data = self:getInscriptionData(t.short_name) - return data.blocks + data.inc_stat + return math.ceil(data.blocks + data.inc_stat) end, action = function(self, t) local data = self:getInscriptionData(t.short_name) diff --git a/game/modules/tome/data/talents/spells/energy-alchemy.lua b/game/modules/tome/data/talents/spells/energy-alchemy.lua index 025deb5d4247c3e2ed924978faf8da5efbca38c1..e9fa2c03bbb9f7c4c9a61a1868177f97ae1a01c3 100644 --- a/game/modules/tome/data/talents/spells/energy-alchemy.lua +++ b/game/modules/tome/data/talents/spells/energy-alchemy.lua @@ -152,7 +152,7 @@ newTalent{ target = function(self, t) return{type="hit", range=self:getTalentRange(t), talent=t, friendlyblock=false, friendlyfire=false} end, callbackOnActBase = function(self, t) local tgts = {} - local grids = core.fov.circle_grids(self.x, self.y, 6, true) + local grids = core.fov.circle_grids(self.x, self.y, self:getTalentRange(t), true) for x, yy in pairs(grids) do for y, _ in pairs(grids[x]) do local a = game.level.map(x, y, Map.ACTOR) if a and self:reactionToward(a) < 0 then