diff --git a/game/modules/tome/data/talents/gifts/cold-drake.lua b/game/modules/tome/data/talents/gifts/cold-drake.lua index 787008aea49802a865f7071b1e3bd0298d9148d7..fc807b0c20257a8b4b134774194d716a53fcbe3c 100644 --- a/game/modules/tome/data/talents/gifts/cold-drake.lua +++ b/game/modules/tome/data/talents/gifts/cold-drake.lua @@ -117,7 +117,13 @@ newTalent{ range = 10, tactical = { DISABLE = 2 }, requires_target = true, - target = function(self, t) return {type="wall", range=self:getTalentRange(t), halflength=halflength, talent=t, halfmax_spots=halflength+1, block_radius=block} end, + target = function(self, t) + local halflength = math.floor(t.getLength(self,t)/2) + local block = function(_, lx, ly) + return game.level.map:checkAllEntities(lx, ly, "block_move") + end + return {type="wall", range=self:getTalentRange(t), halflength=halflength, talent=t, halfmax_spots=halflength+1, block_radius=block} + end, on_learn = function(self, t) self.resists[DamageType.COLD] = (self.resists[DamageType.COLD] or 0) + 1 end, on_unlearn = function(self, t) self.resists[DamageType.COLD] = (self.resists[DamageType.COLD] or 0) - 1 end, getDuration = function(self, t) return math.floor(self:combatTalentScale(t, 5, 9)) end, @@ -125,10 +131,6 @@ newTalent{ getIceDamage = function(self, t) return self:combatTalentMindDamage(t, 3, 15) end, getIceRadius = function(self, t) return math.floor(self:combatTalentScale(t, 1, 2)) end, action = function(self, t) - local halflength = math.floor(t.getLength(self,t)/2) - local block = function(_, lx, ly) - return game.level.map:checkAllEntities(lx, ly, "block_move") - end local tg = self:getTalentTarget(t) local x, y = self:getTarget(tg) if not x or not y then return nil end @@ -159,7 +161,8 @@ newTalent{ dam = ice_damage, radius = ice_radius, act = function(self) - local tg = {type="ball", range=0, radius=ice_radius, friendlyfire=false, talent=t, x=self.x, y=self.y} + local t = self.summoner:getTalentFromId(self.T_ICE_WALL) + local tg = {type="ball", range=0, radius=self.radius, friendlyfire=false, talent=t, x=self.x, y=self.y} self.summoner.__project_source = self self.summoner:project(tg, self.x, self.y, engine.DamageType.ICE, self.dam) self.summoner.__project_source = nil diff --git a/game/modules/tome/data/talents/psionic/dream-forge.lua b/game/modules/tome/data/talents/psionic/dream-forge.lua index e7511d451dc8f3f4a670c83416d516c79c4ac8e4..bd701fcabac7b7808fde245bd3bc455780ed3162 100644 --- a/game/modules/tome/data/talents/psionic/dream-forge.lua +++ b/game/modules/tome/data/talents/psionic/dream-forge.lua @@ -152,7 +152,7 @@ newTalent{ dam = forge_damage, radius = self:getTalentRadius(t), act = function(self) - local t = self:getTalentFromId(self.T_FORGE_BELLOWS) + local t = self.summoner:getTalentFromId(self.T_FORGE_BELLOWS) local tg = {type="ball", range=0, friendlyfire=false, radius = 1, talent=t, x=self.x, y=self.y,} self.summoner.__project_source = self self.summoner:project(tg, self.x, self.y, engine.DamageType.DREAMFORGE, self.dam)