From 951cd29348e5f0a461fec6c36f3e52f975a7721e Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Sat, 24 Jul 2010 16:10:00 +0000
Subject: [PATCH] start fire alchemy

git-svn-id: http://svn.net-core.org/repos/t-engine4@937 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/engine/Tooltip.lua                       |   2 +-
 .../tome/data/talents/spells/fire-alchemy.lua |  72 +++++++++++-------
 ideas/crafting.ods                            | Bin 23310 -> 23421 bytes
 3 files changed, 45 insertions(+), 29 deletions(-)

diff --git a/game/engine/Tooltip.lua b/game/engine/Tooltip.lua
index 00ffe5eb6a..c279832bd0 100644
--- a/game/engine/Tooltip.lua
+++ b/game/engine/Tooltip.lua
@@ -91,7 +91,7 @@ function _M:display()
 			i = i + 1
 			y = y + self.font_h
 		else
-			r, g, b, max_h = self.surface:drawColorStringBlended(self.font, self.text[i], 4, 4 + y, r, g, b)
+			r, g, b, max_h = self.surface:drawColorStringBlended(self.font, self.text[i], 4, 4 + y, self.color[1], self.color[2], self.color[3])
 			i = i + 1
 			y = y + max_h
 		end
diff --git a/game/modules/tome/data/talents/spells/fire-alchemy.lua b/game/modules/tome/data/talents/spells/fire-alchemy.lua
index 2f421a7ebd..fa05788054 100644
--- a/game/modules/tome/data/talents/spells/fire-alchemy.lua
+++ b/game/modules/tome/data/talents/spells/fire-alchemy.lua
@@ -16,30 +16,29 @@
 --
 -- Nicolas Casalini "DarkGod"
 -- darkgod@te4.org
+local Object = require "engine.Object"
 
 newTalent{
 	name = "Heat",
 	type = {"spell/fire-alchemy", 1},
 	require = spells_req1,
 	points = 5,
-	mana = 5,
-	cooldown = 20,
+	mana = 10,
+	cooldown = 5,
+	random_ego = "attack",
+	refectable = true,
+	proj_speed = 20,
 	action = function(self, t)
-		self:showEquipInven("Try to extract gems from which metallic item?", function(o) return o.metallic and (o.material_level or 1) <= self:getTalentLevelRaw(t) end, function(o, inven, item)
-			self:removeObject(inven, item)
-
-			local level = o.material_level or 1
-			local gem = game.zone:makeEntity(game.level, "object", {type="gem", special=function(e) return e.material_level == level end}, nil, true)
-			if gem then
-				self:addObject(self.INVEN_INVEN, gem)
-				game.logPlayer(self, "You extract: %s", gem:getName{do_color=true, do_count=true})
-			end
-			return true
-		end)
+		local tg = {type="hit", range=self:getTalentRange(t), talent=t}
+		local x, y = self:getTarget(tg)
+		if not x or not y then return nil end
+		self:project(tg, x, y, DamageType.FIREBURN, {dur=5, initial=0, dam=self:spellCrit(self:combatTalentSpellDamage(t, 25, 220))}, {type="flame"})
+		game:playSoundNear(self, "talents/fire")
 		return true
 	end,
 	info = function(self, t)
-		return ([[Extract magical gems from metal weapons and armours, the higher your skill the higher level items you can work with.]])
+		return ([[Turn part of your target into fire, burning the rest for %0.2f fire damage over 5 turns.
+		The damage will increase with Magic stat.]]):format(self:combatTalentSpellDamage(t, 25, 220))
 	end,
 }
 
@@ -49,22 +48,39 @@ newTalent{
 	require = spells_req2,
 	points = 5,
 	mana = 80,
-	cooldown = 100,
+	cooldown = 34,
+	range = 10,
 	action = function(self, t)
-		self:showInventory("Use which gem?", self:getInven("INVEN"), function(gem) return gem.type == "gem" and gem.material_level <= self:getTalentLevelRaw(t) end, function(gem, gem_item)
-			self:showInventory("Imbue which armour?", self:getInven("INVEN"), function(o) return o.type == "armor" and o.slot == "BODY" and not o.been_imbued end, function(o, item)
-				self:removeObject(self:getInven("INVEN"), gem_item)
-				o.wielder = o.wielder or {}
-				table.mergeAdd(o.wielder, gem.imbue_powers)
-				o.been_imbued = true
-				game.logPlayer(self, "You imbue your %s with %s.", o:getName{do_colour=true, no_count=true}, gem:getName{do_colour=true, no_count=true})
-			end)
-		end)
+		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, function(px, py)
+			local e = Object.new{
+				block_sight=true,
+				temporary = 2 + self:combatSpellpower(0.03) * self:getTalentLevel(t),
+				x = px, y = py,
+				canAct = false,
+				act = function(self)
+					self:useEnergy()
+					self.temporary = self.temporary - 1
+					if self.temporary <= 0 then
+						game.level.map:remove(self.x, self.y, Map.TERRAIN+2)
+						game.level:removeEntity(self)
+						game.level.map:redisplay()
+					end
+				end,
+				summoner_gain_exp = true,
+				summoner = self,
+			}
+			game.level:addEntity(e)
+			game.level.map(px, py, Map.TERRAIN+2, e)
+		end, nil, {type="dark"})
+		self:teleportRandom(self.x, self.y, 5)
+		game:playSoundNear(self, "talents/breath")
 		return true
 	end,
 	info = function(self, t)
-		return ([[Imbue an body armour with a gem, granting it additional powers.
-		You can only imbue items once, and it is permanent.]])
+		return ([[Throw a smoke bomb, blocking line of sight. The smoke dissipates after %d turns.]]):format(2 + self:combatSpellpower(0.03) * self:getTalentLevel(t))
 	end,
 }
 newTalent{
@@ -94,8 +110,8 @@ newTalent{
 		return true
 	end,
 	info = function(self, t)
-		return ([[Crush 5 alchemists gems into dust to mark an impassable terrain, you immediately enter it and appear on the other side of the obstacle.
-		Works up to %d grids away.]]):
+		return ([[Turn your body into pure flame, increasing your fire resistance, burning any creatures attacking you for %0.2f fire damage and projecting randomly fire bolts at targets in sight.
+		The damage will increase with Magic stat.]]):
 		format(math.floor(4 + self:combatSpellpower(0.06) * self:getTalentLevel(t)))
 	end,
 }
diff --git a/ideas/crafting.ods b/ideas/crafting.ods
index 4442b2832f1c682ccda0ca46f480f1367da9e232..bc24a72522f012236788ae9c95557dc94a5d1c17 100644
GIT binary patch
delta 9947
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
AegFUf

delta 9840
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

-- 
GitLab