Code: Select all
newTalent{
	name = "Cold Flames", short_name = "COLD_FLAMES_2",
	type = {"spell/grave",3},
	require = spells_req3,
	points = 5,
	random_ego = "attack",
	mana = 18,
	cooldown = 6,
	tactical = { ATTACKAREA = { COLD = 2 } },
	range = 10,
	proj_speed = 2,
	getDamage = function(self, t) return self:combatTalentSpellDamage(t, 12, 100) end,
	on_learn = function(self, t)
		self:learnTalent(self.T_COLD_FLAMES_DETONATE, nil, nil, {no_unlearn=true})
	end,
 	on_unlearn = function(self, t)
		self:unlearnTalent(self.T_COLD_FLAMES_DETONATE)
 	end,
	action = function(self, t)
		local tg = {type="beam", range=self:getTalentRange(t), talent=t, display={particle="bolt_ice"}}
		local x, y = self:getTarget(tg)
		if not x or not y then return nil end
		local _ _, x, y = self:canProject(tg, x, y)
		local dam = self:spellCrit(t.getDamage(self,t))
		self:projectile(tg, x, y, function(px, py, tg, self)
			name = "Frozen Orb"
			local tgts = {}
			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
				tgts[#tgts+1] = a
			end
			end end
			
			local tg = {type="bolt", range=self:getTalentRange(t), talent=t, friendlyfire=false, display={particle="bolt_ice"}}
			for i = 1, 5 do
			if #tgts <= 0 then break end
			local a, id = rng.table(tgts)
			table.remove(tgts, id)
			self:projectile(table.clone(tg), a.x, a.y, DamageType.COLD, self:spellCrit(t.getDamage(self, t)), {type="freeze"})
			end			
		end)
		return true
	end,
	info = function(self, t)
	local dam = t.getDamage(self, t)
		return ([[Conjure a sphere of cold fire that slowly drifts outwards, dealing %0.2f cold damage to adjacent targets each turn. While the sphere is active, you gain the ability to detonate it.
		The damage will increase with your Spellpower.]]):format(damDesc(self, DamageType.COLD, dam))
	end,
}