Commit 0e82ff634afd8e9fa06b767b6bafca8b2bc1ac38
Merge branch '174-miscs' into 'master'
Miscs 1. Bring back the fix: The duration of an existing effect will not be reduced by setting a new effect with a shorter duration (controlled by on_merge for some effects). 2. Living lightning correctly works with Range Amplification Device 3. Stormshield rune's block number and threshold should be an integer 4. Randart bows & slings should not have base damage See merge request !771
Showing
4 changed files
with
7 additions
and
3 deletions
... | ... | @@ -7630,6 +7630,7 @@ function _M:on_set_temporary_effect(eff_id, e, p) |
7630 | 7630 | p.getName = e.getName |
7631 | 7631 | p.resolveSource = e.resolveSource |
7632 | 7632 | |
7633 | + local old = self.tmp[eff_id] | |
7633 | 7634 | local olddur = old and not e.on_merge and old.dur or 0 -- let mergable effects handle their own duration |
7634 | 7635 | -- Adjust duration based on saves |
7635 | 7636 | if p.apply_power and (save_for_effects[e.type] or p.apply_save) then | ... | ... |
... | ... | @@ -30,6 +30,9 @@ load("/data/general/objects/random-artifacts/melee.lua", function(e) |
30 | 30 | e.wielder.ranged_project = table.clone(e.wielder.melee_project) |
31 | 31 | e.wielder.melee_project = nil |
32 | 32 | end |
33 | + if e.combat and e.combat.dam then -- bows & slings should not have base damage | |
34 | + e.rarity = nil | |
35 | + end | |
33 | 36 | end) |
34 | 37 | |
35 | 38 | ---------------------------------------------------------------- | ... | ... |
... | ... | @@ -751,11 +751,11 @@ newInscription{ |
751 | 751 | end, |
752 | 752 | getThreshold = function(self, t) |
753 | 753 | local data = self:getInscriptionData(t.short_name) |
754 | - return data.threshold | |
754 | + return math.ceil(data.threshold) | |
755 | 755 | end, |
756 | 756 | getBlocks = function(self, t) |
757 | 757 | local data = self:getInscriptionData(t.short_name) |
758 | - return data.blocks + data.inc_stat | |
758 | + return math.ceil(data.blocks + data.inc_stat) | |
759 | 759 | end, |
760 | 760 | action = function(self, t) |
761 | 761 | local data = self:getInscriptionData(t.short_name) | ... | ... |
... | ... | @@ -152,7 +152,7 @@ newTalent{ |
152 | 152 | target = function(self, t) return{type="hit", range=self:getTalentRange(t), talent=t, friendlyblock=false, friendlyfire=false} end, |
153 | 153 | callbackOnActBase = function(self, t) |
154 | 154 | local tgts = {} |
155 | - local grids = core.fov.circle_grids(self.x, self.y, 6, true) | |
155 | + local grids = core.fov.circle_grids(self.x, self.y, self:getTalentRange(t), true) | |
156 | 156 | for x, yy in pairs(grids) do for y, _ in pairs(grids[x]) do |
157 | 157 | local a = game.level.map(x, y, Map.ACTOR) |
158 | 158 | if a and self:reactionToward(a) < 0 then | ... | ... |
-
Please register or login to post a comment