Code:

`newTalent{`

name = "Unveil", shortname = "UNVEIL",

type = {"spell/vile-tactics", 4},

require = make_require(4),

no_energy = "false",

points = 5,

cooldown = 10,

mana = 30,

hate = 5,

range = 0,

radius = function(self, t) return math.floor(self:combatTalentScale(t, 3, 7)) end,

target = function(self, t)

return {type="ball", range=self:getTalentRange(t), radius=self:getTalentRadius(t), friendlyfire=false, talent=t}

end,

action = function(src, x, y, type, dam, tmp)

local target = game.level.map(x, y, Map.ACTOR)

tmp = tmp or {}

-- extra damage on hiding targets

if target and target:attr("stealth") then

dam = dam * 2

if target and target:attr("invisible") then

dam = dam * 2

-- Dont lit magically unlit grids

local a = game.level.map(x, y, Map.ACTOR)

if a then

a:setEffect(a.EFF_LUMINESCENCE, math.ceil(dam.turns), {power=dam.power, no_ct_effect=true})

end}

self:project(tg, self.x, self.y, DamageType.DARKNESS, self:mindCrit(self:combatTalentStatDamage(t, "cun", 40, 400)))

self:project(tg, self.x, self.y, DamageType.CONFUSION, {

dur=3,

dam=40 + 6 * self:getTalentLevel(t),

power_check=function() return self:combatPhysicalpower() end,

resist_check=self.combatMindResist,

})

game.level.map:particleEmitter(self.x, self.y, self:getTalentRadius(t), "shout", {additive=true, life=10, size=3, distorion_factor=0.5, radius=self:getTalentRadius(t), nb_circles=8, rm=0.8, rM=1, gm=0, gM=0, bm=0.1, bM=0.2, am=0.4, aM=0.6})

return true

end,

info = function(self, t)

local radius = self:getTalentRadius(t)

return ([[None can hide from you. Deals %d%% darkness damage in a radius of %d%%. This reveals hidden targets, and does double damage to them.

The damage will scaling with your cunning]]):format(radius, self:combatTalentStatDamage(t, "cun", 40, 400))

end,

}