Skip to content
Snippets Groups Projects
Commit 8a7ba0f9 authored by dg's avatar dg
Browse files

Fire Body drains 4 times less mana, does more damage and projectiles go throught friends safely

Fire Storm damage increased and cooldown reduced
Smoke Bomb radius increased
Smoke Bomb now will spread burning effects instead of changing LOS if a target is burning


git-svn-id: http://svn.net-core.org/repos/t-engine4@6257 51575b47-30f0-44d4-a5cc-537603b46e54
parent 5330a5ef
No related branches found
No related tags found
No related merge requests found
......@@ -61,38 +61,55 @@ newTalent{
requires_target = true,
getDuration = function(self, t) return 2 + self:combatSpellpower(0.03) * self:getTalentLevel(t) end,
action = function(self, t)
local tg = {type="ball", range=self:getTalentRange(t), radius=1, talent=t}
local tg = {type="ball", range=self:getTalentRange(t), radius=2, talent=t}
local x, y = self:getTarget(tg)
if not x or not y then return nil end
local heat = nil
self:project(tg, x, y, function(px, py)
local e = Object.new{
block_sight=true,
temporary = t.getDuration(self, 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, engine.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"})
local target = game.level.map(px, py, Map.ACTOR)
if target and target:hasEffect(target.EFF_BURNING) then heat = target:hasEffect(target.EFF_BURNING) end
end)
if not heat then
self:project(tg, x, y, function(px, py)
local e = Object.new{
block_sight=true,
temporary = t.getDuration(self, 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, engine.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"})
else
self:project(tg, x, y, function(px, py)
local target = game.level.map(px, py, Map.ACTOR)
if target and not target:hasEffect(target.EFF_BURNING) and self:reactionToward(target) < 0 then
target:setEffect(target.EFF_BURNING, heat.dur + math.ceil(t.getDuration(self, t)/3), {src=self, power=heat.power})
end
end)
end
game:playSoundNear(self, "talents/breath")
return true
end,
info = function(self, t)
local duration = t.getDuration(self, t)
return ([[Throw a smoke bomb, blocking everyone's line of sight. The smoke dissipates after %d turns.
If a creature inside is victim of fire burns the smoke will consume instantly, replicating the burns on all foes and increasing its duration by %d turns.
Duration will increase with your Spellpower.]]):
format(duration)
format(duration, math.ceil(duration / 3))
end,
}
......@@ -103,7 +120,7 @@ newTalent{
points = 5,
random_ego = "attack",
mana = 70,
cooldown = 30,
cooldown = 20,
range = 0,
radius = 3,
target = function(self, t)
......@@ -111,7 +128,7 @@ newTalent{
end,
tactical = { ATTACKAREA = { FIRE = 2 } },
getDuration = function(self, t) return 5 + self:combatSpellpower(0.05) + self:getTalentLevel(t) end,
getDamage = function(self, t) return self:combatTalentSpellDamage(t, 5, 90) end,
getDamage = function(self, t) return self:combatTalentSpellDamage(t, 5, 120) end,
action = function(self, t)
-- Add a lasting map effect
game.level.map:addEffect(self,
......@@ -155,7 +172,7 @@ newTalent{
getFireDamageOnHit = function(self, t) return self:combatTalentSpellDamage(t, 5, 25) end,
getResistance = function(self, t) return self:combatTalentSpellDamage(t, 5, 45) end,
getFireDamageInSight = function(self, t) return self:combatTalentSpellDamage(t, 15, 70) end,
getManaDrain = function(self, t) return -0.4 * self:getTalentLevelRaw(t) end,
getManaDrain = function(self, t) return -0.1 * self:getTalentLevelRaw(t) end,
do_fire = function(self, t)
if self:getMana() <= 0 then
self:forceUseTalent(t.id, {ignore_energy=true})
......@@ -172,7 +189,7 @@ newTalent{
end end
-- Randomly take targets
local tg = {type="bolt", range=self:getTalentRange(t), talent=t, display={particle="bolt_fire"}}
local tg = {type="bolt", range=self:getTalentRange(t), talent=t, display={particle="bolt_fire"}, friendlyblock=false}
for i = 1, math.floor(self:getTalentLevel(t)) do
if #tgts <= 0 then break end
local a, id = rng.table(tgts)
......@@ -204,6 +221,7 @@ newTalent{
local res = t.getResistance(self, t)
local manadrain = t.getManaDrain(self, t)
return ([[Turn your body into pure flame, increasing your fire resistance by %d%%, burning any creatures attacking you for %0.2f fire damage, and projecting random slow-moving fire bolts at targets in sight, doing %0.2f fire damage with each bolt.
The projectiles safely go through your friends without harming them.
This powerful spell drains %0.2f mana while active.
The damage and resistance will increase with your Spellpower.]]):
format(res,onhitdam,insightdam,-manadrain)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment