From e21550ca505f8c9c0f2f7b8ce30fff5ee4a6edb0 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Thu, 29 Jul 2010 19:41:28 +0000
Subject: [PATCH] ice shards

git-svn-id: http://svn.net-core.org/repos/t-engine4@950 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/modules/tome/data/damage_types.lua       |  2 +-
 game/modules/tome/data/talents/spells/ice.lua | 11 +++++++++--
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/game/modules/tome/data/damage_types.lua b/game/modules/tome/data/damage_types.lua
index a796f4973e..e8c8aaed82 100644
--- a/game/modules/tome/data/damage_types.lua
+++ b/game/modules/tome/data/damage_types.lua
@@ -117,7 +117,7 @@ newDamageType{
 	end,
 }
 newDamageType{
-	name = "cold", type = "COLD", text_color = "#BLUE#",
+	name = "cold", type = "COLD", text_color = "#1133F3#",
 	projector = function(src, x, y, type, dam)
 		local realdam = DamageType.defaultProjector(src, x, y, type, dam)
 		local target = game.level.map(x, y, Map.ACTOR)
diff --git a/game/modules/tome/data/talents/spells/ice.lua b/game/modules/tome/data/talents/spells/ice.lua
index 7bf3a6e6df..f2752a7315 100644
--- a/game/modules/tome/data/talents/spells/ice.lua
+++ b/game/modules/tome/data/talents/spells/ice.lua
@@ -33,13 +33,20 @@ newTalent{
 		local tg = {type="ball", range=self:getTalentRange(t), radius=1, talent=t}
 		local x, y = self:getTarget(tg)
 		if not x or not y then return nil end
-		self:project(tg, x, y, DamageType.ICE, self:spellCrit(self:combatTalentSpellDamage(t, 18, 200)))
-		game.level.map:particleEmitter(self.x, self.y, math.max(math.abs(x-self.x), math.abs(y-self.y)), "ice_shards", {tx=x-self.x, ty=y-self.y})
+		local grids = self:project(tg, x, y, function(px, py)
+			local actor = game.level.map(px, py, Map.ACTOR)
+			if actor and actor ~= self then
+				DamageType:get(DamageType.ICE).projector(self, actor.x, actor.y, DamageType.ICE, self:spellCrit(self:combatTalentSpellDamage(t, 18, 200)))
+				game.level.map:particleEmitter(self.x, self.y, math.max(math.abs(actor.x-self.x), math.abs(actor.y-self.y)), "ice_shards", {tx=actor.x-self.x, ty=actor.y-self.y})
+			end
+		end)
+
 		game:playSoundNear(self, "talents/ice")
 		return true
 	end,
 	info = function(self, t)
 		return ([[Conjures up a bolt of fire, setting the target ablaze and doing %0.2f fire damage over 3 turns.
+		This spell will never hit the caster.
 		The damage will increase with the Magic stat]]):format(self:combatTalentSpellDamage(t, 25, 200))
 	end,
 }
-- 
GitLab