Skip to content
Snippets Groups Projects
Commit 34dc804c authored by dg's avatar dg
Browse files

spell reqs

git-svn-id: http://svn.net-core.org/repos/t-engine4@219 51575b47-30f0-44d4-a5cc-537603b46e54
parent 1801cf88
No related branches found
No related tags found
No related merge requests found
newTalent{
name = "Lightning",
type = {"spell/air", 1},
require = spells_req1,
points = 5,
mana = 10,
cooldown = 3,
......@@ -15,7 +16,6 @@ newTalent{
self:project(tg, x, y, DamageType.LIGHTNING, rng.avg(1, self:spellCrit(20 + self:combatSpellpower(0.8) * self:getTalentLevel(t)), 3), {type="lightning"})
return true
end,
require = { stat = { mag=10 }, },
info = function(self, t)
return ([[Conjures up mana into a powerful beam of lightning doing 1 to %0.2f damage
The damage will increase with the Magic stat]]):format(20 + self:combatSpellpower(0.8) * self:getTalentLevel(t))
......@@ -24,7 +24,8 @@ newTalent{
newTalent{
name = "Noxious Cloud",
type = {"spell/air",1},
type = {"spell/air",2},
require = spells_req2,
points = 5,
mana = 45,
cooldown = 8,
......@@ -50,7 +51,6 @@ newTalent{
)
return true
end,
require = { stat = { mag=16 }, },
info = function(self, t)
return ([[Noxious fumes raises from the ground doing %0.2f nature damage in a radius of 3 each turns for %d turns.
The damage and duration will increase with the Magic stat]]):format(4 + self:combatSpellpower(0.11) * self:getTalentLevel(t), self:getTalentLevel(t))
......
newTalent{
name = "Manathrust",
type = {"spell/arcane", 1},
require = spells_req1,
points = 5,
mana = 10,
cooldown = 3,
......@@ -16,7 +17,6 @@ newTalent{
self:project(tg, x, y, DamageType.ARCANE, self:spellCrit(20 + self:combatSpellpower(0.5) * self:getTalentLevel(t)), {type="manathrust"})
return true
end,
require = { stat = { mag=10 }, },
info = function(self, t)
return ([[Conjures up mana into a powerful bolt doing %0.2f arcane damage
At level 3 it becomes a beam.
......@@ -27,6 +27,7 @@ newTalent{
newTalent{
name = "Manaflow",
type = {"spell/arcane", 2},
require = spells_req2,
points = 5,
mana = 0,
cooldown = 300,
......@@ -39,7 +40,6 @@ newTalent{
end
return true
end,
require = { stat = { mag=20 }, },
info = function(self, t)
return ([[Engulf yourself into a surge of mana, quickly restoring %d mana every turns for 10 turns.
The mana restored will increase with the Magic stat]]):format(5 + self:combatSpellpower(0.06) * self:getTalentLevel(t))
......@@ -50,8 +50,8 @@ newTalent{
name = "Arcane Power",
type = {"spell/arcane", 3},
mode = "passive",
require = spells_req3,
points = 5,
require = { stat = { mag=28 }, },
on_learn = function(self, t)
self.combat_spellpower = self.combat_spellpower + 5
end,
......@@ -66,6 +66,7 @@ newTalent{
newTalent{
name = "Disruption Shield",
type = {"spell/arcane",4},
require = spells_req4,
points = 5,
mode = "sustained",
sustain_mana = 150,
......@@ -82,7 +83,6 @@ newTalent{
self:removeTemporaryValue("mana_shield", p.shield)
return true
end,
require = { stat = { mag=40 }, level=20 },
info = function(self, t)
return ([[Uses mana instead of life to take damage. Uses %0.2f mana per damage taken.
The damage to mana ratio increases with the Magic stat]]):format(3 - (self:combatSpellpower(1) * self:getTalentLevel(t)) / 280)
......
......@@ -2,6 +2,7 @@ newTalent{
name = "Phase Door",
type = {"spell/conveyance",1},
message = "@Source@ blinks.",
require = spells_req1,
points = 5,
mana = 10,
cooldown = 8,
......@@ -31,7 +32,6 @@ newTalent{
end
return true
end,
require = { stat = { mag=15 }, },
info = function(self, t)
return ([[Teleports you randomly on a small scale range (%d)
At level 4 it allows to specify the target area.
......@@ -44,6 +44,7 @@ newTalent{
name = "Teleport",
type = {"spell/conveyance",2},
message = "@Source@ teleports away.",
require = spells_req2,
points = 5,
mana = 20,
cooldown = 30,
......@@ -73,7 +74,6 @@ newTalent{
end
return true
end,
require = { stat = { mag=24 }, },
info = function(self, t)
return ([[Teleports you randomly on a small scale range (%d)
At level 4 it allows to specify the target area.
......@@ -85,6 +85,7 @@ newTalent{
newTalent{
name = "Recall",
type = {"spell/conveyance",3},
require = spells_req3,
points = 5,
mana = 30,
cooldown = 10,
......@@ -104,7 +105,6 @@ newTalent{
game.log("IMPLEMENT ME!")
return true
end,
require = { stat = { mag=34 }, },
info = function(self, t)
return ([[Recalls you to your home town after a few turns.]])
end,
......@@ -114,6 +114,7 @@ newTalent{
name = "Probability Travel",
type = {"spell/conveyance",4},
mode = "sustained",
require = spells_req4,
points = 1,
points = 2,
cooldown = 40,
......@@ -129,7 +130,6 @@ newTalent{
self:attr("prob_travel", -1)
return true
end,
require = { stat = { mag=34 }, },
info = function(self, t)
return ([[When you hit a solid surface this spell tears down the laws of probability to make you instantly appear on the other side.]])
end,
......
......@@ -4,6 +4,7 @@ newTalent{
name = "Stone Skin",
type = {"spell/earth", 1},
mode = "sustained",
require = spells_req1,
points = 5,
sustain_mana = 45,
cooldown = 10,
......@@ -20,7 +21,6 @@ newTalent{
self:removeTemporaryValue("combat_armor", p.armor)
return true
end,
require = { stat = { mag=14 }, },
info = function(self, t)
return ([[The caster skin grows as hard as stone, granting %d bonus to armor.
The bonus to armor will increase with the Magic stat]]):format(4 + self:combatSpellpower(0.03) * self:getTalentLevel(t))
......@@ -30,6 +30,7 @@ newTalent{
newTalent{
name = "Dig",
type = {"spell/earth",2},
require = spells_req2,
points = 5,
mana = 40,
range = 20,
......@@ -42,7 +43,6 @@ newTalent{
end
return true
end,
require = { stat = { mag=24 } },
info = function(self, t)
return ([[Digs up to %d grids into walls/trees/...]]):format(self:getTalentLevelRaw(t))
end,
......@@ -51,6 +51,7 @@ newTalent{
newTalent{
name = "Strike",
type = {"spell/earth",3},
require = spells_req3,
points = 5,
mana = 18,
cooldown = 6,
......@@ -65,7 +66,6 @@ newTalent{
self:project(tg, x, y, DamageType.SPELLKNOCKBACK, self:spellCrit(8 + self:combatSpellpower(0.15) * self:getTalentLevel(t)))
return true
end,
require = { stat = { mag=24 }, },
info = function(self, t)
return ([[Conjures up a fist of stone doing %0.2f physical damage and knocking the target back.
The damage will increase with the Magic stat]]):format(8 + self:combatSpellpower(0.15) * self:getTalentLevel(t))
......
newTalent{
name = "Flame",
type = {"spell/fire",1},
require = spells_req1,
points = 5,
mana = 12,
cooldown = 3,
......@@ -15,7 +16,6 @@ newTalent{
self:project(tg, x, y, DamageType.FIREBURN, self:spellCrit(25 + self:combatSpellpower(0.8) * self:getTalentLevel(t)), {type="flame"})
return true
end,
require = { stat = { mag=10 }, },
info = function(self, t)
return ([[Conjures up a bolt of fire setting the target ablaze and doing %0.2f fire damage over 3 turns.
The damage will increase with the Magic stat]]):format(25 + self:combatSpellpower(0.8) * self:getTalentLevel(t))
......@@ -25,6 +25,7 @@ newTalent{
newTalent{
name = "Globe of Light",
type = {"spell/fire",2},
require = spells_req2,
points = 5,
mana = 5,
cooldown = 14,
......@@ -36,9 +37,9 @@ newTalent{
end
return true
end,
require = { stat = { mag=14 }, },
info = function(self, t)
return ([[Creates a globe of pure light with a radius of %d that illuminates the area.
At level 3 it also blinds all who sees it (except the caster).
The radius will increase with the Magic stat]]):format(5 + self:getTalentLevel(t))
end,
}
......@@ -46,6 +47,7 @@ newTalent{
newTalent{
name = "Fireflash",
type = {"spell/fire",3},
require = spells_req3,
points = 5,
mana = 40,
cooldown = 8,
......@@ -60,7 +62,6 @@ newTalent{
self:project(tg, x, y, DamageType.FIRE, self:spellCrit(28 + self:combatSpellpower(0.4) * self:getTalentLevel(t)), {type="flame"})
return true
end,
require = { stat = { mag=20 } },
info = function(self, t)
return ([[Conjures up a flash of fire doing %0.2f fire damage in a radius of %d.
The damage will increase with the Magic stat]]):format(28 + self:combatSpellpower(0.4) * self:getTalentLevel(t), 1 + self:getTalentLevelRaw(t))
......@@ -70,6 +71,7 @@ newTalent{
newTalent{
name = "Inferno",
type = {"spell/fire",4},
require = spells_req4,
points = 5,
mana = 200,
cooldown = 30,
......@@ -95,7 +97,6 @@ newTalent{
)
return true
end,
require = { stat = { mag=34 } },
info = function(self, t)
return ([[Raging flames burn foes and allies alike doing %0.2f netherflame damage in a radius of 5 each turns for %d turns.
The damage and duration will increase with the Magic stat]]):format(15 + self:combatSpellpower(0.15) * self:getTalentLevel(t), 5 + self:getTalentLevel(t))
......
newTalent{
name = "Regeneration",
type = {"spell/nature", 1},
require = spells_req1,
points = 5,
mana = 30,
cooldown = 10,
......@@ -11,7 +12,6 @@ newTalent{
self:setEffect(self.EFF_REGENERATION, 10, {power=5 + self:combatSpellpower(0.07) * self:getTalentLevel(t)})
return true
end,
require = { stat = { mag=10 }, },
info = function(self, t)
return ([[Call upon the forces of nature to regenerate your body for %d life every turns for 10 turns.
The life healed will increase with the Magic stat]]):format(5 + self:combatSpellpower(0.07) * self:getTalentLevel(t))
......@@ -21,6 +21,7 @@ newTalent{
newTalent{
name = "Heal",
type = {"spell/nature", 2},
require = spells_req2,
points = 5,
mana = 60,
cooldown = 10,
......@@ -31,7 +32,6 @@ newTalent{
self:heal(self:spellCrit(10 + self:combatSpellpower(0.5) * self:getTalentLevel(t)), self)
return true
end,
require = { stat = { mag=20 }, },
info = function(self, t)
return ([[Call upon the forces of nature to heal your body for %d life.
The life healed will increase with the Magic stat]]):format(10 + self:combatSpellpower(0.5) * self:getTalentLevel(t))
......
......@@ -12,6 +12,29 @@ newTalentType{ type="spell/temporal", name = "temporal", description = "Temporal
newTalentType{ type="spell/mind", name = "mind", description = "Mind the caster to directly attack the mind of its foes." }
newTalentType{ type="spell/necromancy", name = "necromancy", description = "Necromancy is a dark school of magic dealing with death, and undeath." }
-- Generic requires for spells based on talent level
--
spells_req1 = {
stat = { mag=function(level) return 12 + (level-1) * 2 end },
level = function(level) return 0 + (level-1) end,
}
spells_req2 = {
stat = { mag=function(level) return 20 + (level-1) * 2 end },
level = function(level) return 4 + (level-1) end,
}
spells_req3 = {
stat = { mag=function(level) return 28 + (level-1) * 2 end },
level = function(level) return 8 + (level-1) end,
}
spells_req4 = {
stat = { mag=function(level) return 36 + (level-1) * 2 end },
level = function(level) return 12 + (level-1) end,
}
spells_req5 = {
stat = { mag=function(level) return 44 + (level-1) * 2 end },
level = function(level) return 16 + (level-1) end,
}
load("/data/talents/spells/arcane.lua")
load("/data/talents/spells/fire.lua")
load("/data/talents/spells/earth.lua")
......
newTalent{
name = "Ent-draught",
type = {"spell/water", 1},
points = 5,
mana = 10,
cooldown = 100,
action = function(self, t)
return true
end,
require = { stat = { mag=10 }, },
info = function(self, t)
return ([[Confures some Ent-draught to fill your stomach.]])
end,
}
newTalent{
name = "Freeze",
type = {"spell/water", 2},
type = {"spell/water", 1},
require = spells_req1,
points = 5,
mana = 14,
cooldown = 3,
......@@ -31,16 +17,31 @@ newTalent{
self:project(tg, x, y, DamageType.FREEZE, 3 + math.floor(self:getTalentLevel(t) / 3))
return true
end,
require = { stat = { mag=14 }, },
info = function(self, t)
return ([[Condenses ambiant water on a target, freezing it for a short while and damaging it for %0.2f.
The damage will increase with the Magic stat]]):format(12 + self:combatSpellpower(0.25) * self:getTalentLevel(t))
end,
}
newTalent{
name = "Ent-draught",
type = {"spell/water", 2},
require = spells_req2,
points = 5,
mana = 10,
cooldown = 100,
action = function(self, t)
return true
end,
info = function(self, t)
return ([[Confures some Ent-draught to fill your stomach.]])
end,
}
newTalent{
name = "Tidal Wave",
type = {"spell/water",3},
require = spells_req3,
points = 5,
mana = 55,
cooldown = 8,
......@@ -65,7 +66,6 @@ newTalent{
)
return true
end,
require = { stat = { mag=24 }, },
info = function(self, t)
return ([[A furious ice storm rages around the caster doing %0.2f cold damage in a radius of 3 each turns for %d turns.
The damage and duration will increase with the Magic stat]]):format(5 + self:combatSpellpower(0.2) * self:getTalentLevel(t), 5 + self:combatSpellpower(0.01) * self:getTalentLevel(t))
......@@ -75,6 +75,7 @@ newTalent{
newTalent{
name = "Ice Storm",
type = {"spell/water",4},
require = spells_req4,
points = 5,
mana = 100,
cooldown = 30,
......@@ -100,7 +101,6 @@ newTalent{
)
return true
end,
require = { stat = { mag=34 }, },
info = function(self, t)
return ([[A furious ice storm rages around the caster doing %0.2f cold damage in a radius of 3 each turns for %d turns.
It has 25%% chance to freeze damaged targets.
......
No preview for this file type
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