diff --git a/game/modules/tome/data/talents/cursed/cursed-aura.lua b/game/modules/tome/data/talents/cursed/cursed-aura.lua index a4f60e85e99eb9b07172e26a1235eddea6186c1a..24c611a4f0f3d61d172c8e1a5138233a8ad0c0a8 100644 --- a/game/modules/tome/data/talents/cursed/cursed-aura.lua +++ b/game/modules/tome/data/talents/cursed/cursed-aura.lua @@ -357,8 +357,9 @@ newTalent{ points = 1, no_energy = true, action = function(self, t) + local ct = self:getTalentFromId(self.T_CURSED_SENTRY) local inven = self:getInven("INVEN") - local d = self:showInventory("Which weapon will be your sentry?", inven, function(o) return o.type == "weapon" end, nil) + local d = self:showInventory("Which weapon will be your sentry?", inven, function(o) return ct.filterObject(self, ct, o) end, nil) d.action = function(o, item) self:talentDialogReturn(true, o, item) return false end local ret, o, item = self:talentDialog(d) if not ret then return nil end @@ -378,6 +379,11 @@ newTalent{ no_npc_use = true, getDuration = function(self, t) return math.floor(self:combatTalentScale(t, 8, 16)) end, getAttackSpeed = function(self, t) return self:combatTalentScale(t, 0.6, 1.4) end, + filterObject = function(self, t, o) + local tl = self:getTalentLevel(t) + local power = (tl >= 5 and 3) or (tl >= 3 and 2) or 1 + return o.type == "weapon" and o:getPowerRank() <= power + end, target = function(self, t) return {type="bolt", nowarning=true, range=self:getTalentRange(t), nolock=true, talent=t} end, autolearn_talent = Talents.T_CHOOSE_CURSED_SENTRY, action = function(self, t) @@ -402,7 +408,7 @@ newTalent{ if game.level.map(x, y, Map.ACTOR) or game.level.map:checkEntity(x, y, game.level.map.TERRAIN, "block_move") then return nil end -- select the item - if not self.cursed_sentry or not self:findInInventoryByObject(inven, self.cursed_sentry) then + if not self.cursed_sentry or not self:findInInventoryByObject(inven, self.cursed_sentry) or not t.filterObject(self, t, self.cursed_sentry) then -- save compat if not self:knowTalent(self.T_CHOOSE_CURSED_SENTRY) then self:checkPool(t.id, self.T_CHOOSE_CURSED_SENTRY) @@ -570,6 +576,8 @@ newTalent{ return ([[Instill a part of your living curse into a weapon in your inventory, and toss it nearby. This nearly impervious sentry will attack all nearby enemies for %d turns. When the curse ends, the weapon will drop to the ground. Cursed Sentry attack speed (currently %d%%) will improve with talent level. - When you first select a weapon, it will be remembered and used as long as it's in your inventory. Use Choose Cursed Sentry talent to alter your selection.]]):format(duration, attackSpeed) + When you first select a weapon, it will be remembered and used as long as it's in your inventory. Use Choose Cursed Sentry talent to alter your selection. + At talent level 3, you get the ability to afflict powerful mundane objects (greater egos). + At talent level 5, you can corrupt artifacts.]]):format(duration, attackSpeed) end, }