diff --git a/game/modules/tome/data/general/npcs/wight.lua b/game/modules/tome/data/general/npcs/wight.lua index 03773e22a50c1ee87e99d5234847f1f76653c713..fdd076d0b0fe38799faf594bb36d3579b50c3102 100644 --- a/game/modules/tome/data/general/npcs/wight.lua +++ b/game/modules/tome/data/general/npcs/wight.lua @@ -74,7 +74,7 @@ newEntity{ base = "BASE_NPC_WIGHT", combat_armor = 7, combat_def = 6, resolvers.talents{ - [Talents.T_FLAMESHOCK]={base=1, every=5, max=5}, [Talents.T_LIGHTNING]={base=1, every=5, max=5}, [Talents.T_CORROSIVE_VAPOUR]={base=1, every=5, max=5}, + [Talents.T_FLAMESHOCK]={base=1, every=5, max=5}, [Talents.T_LIGHTNING]={base=1, every=5, max=5}, [Talents.T_GLACIAL_VAPOUR]={base=1, every=5, max=5}, [Talents.T_MIND_DISRUPTION]={base=1, every=5, max=5}, }, } @@ -87,7 +87,7 @@ newEntity{ base = "BASE_NPC_WIGHT", max_life = resolvers.rngavg(70,80), combat_armor = 9, combat_def = 6, - resolvers.talents{ [Talents.T_FLAMESHOCK]={base=2, every=5, max=6}, [Talents.T_LIGHTNING]={base=2, every=5, max=6}, [Talents.T_CORROSIVE_VAPOUR]={base=2, every=5, max=6}, + resolvers.talents{ [Talents.T_FLAMESHOCK]={base=2, every=5, max=6}, [Talents.T_LIGHTNING]={base=2, every=5, max=6}, [Talents.T_GLACIAL_VAPOUR]={base=2, every=5, max=6}, [Talents.T_MIND_DISRUPTION]={base=2, every=5, max=6}, }, } @@ -101,7 +101,7 @@ newEntity{ base = "BASE_NPC_WIGHT", max_life = resolvers.rngavg(80,90), combat_armor = 10, combat_def = 8, - resolvers.talents{ [Talents.T_FLAMESHOCK]={base=3, every=5, max=7}, [Talents.T_LIGHTNING]={base=3, every=5, max=7}, [Talents.T_CORROSIVE_VAPOUR]={base=3, every=5, max=7}, + resolvers.talents{ [Talents.T_FLAMESHOCK]={base=3, every=5, max=7}, [Talents.T_LIGHTNING]={base=3, every=5, max=7}, [Talents.T_GLACIAL_VAPOUR]={base=3, every=5, max=7}, [Talents.T_MIND_DISRUPTION]={base=3, every=5, max=7}, }, } @@ -122,7 +122,7 @@ newEntity{ base = "BASE_NPC_WIGHT", make_escort = { {type="undead", subtype="wight", number=resolvers.mbonus(2, 2)}, }, - resolvers.talents{ [Talents.T_FLAMESHOCK]={base=3, every=5, max=7}, [Talents.T_LIGHTNING]={base=4, every=5, max=8}, [Talents.T_CORROSIVE_VAPOUR]={base=3, every=5, max=7}, [Talents.T_THUNDERSTORM]={base=2, every=5, max=7}, + resolvers.talents{ [Talents.T_FLAMESHOCK]={base=3, every=5, max=7}, [Talents.T_LIGHTNING]={base=4, every=5, max=8}, [Talents.T_GLACIAL_VAPOUR]={base=3, every=5, max=7}, [Talents.T_THUNDERSTORM]={base=2, every=5, max=7}, [Talents.T_MIND_DISRUPTION]={base=4, every=5, max=8}, }, } diff --git a/game/modules/tome/data/gfx/particles/ice_vapour.lua b/game/modules/tome/data/gfx/particles/ice_vapour.lua new file mode 100644 index 0000000000000000000000000000000000000000..9fa154f4b6be43223492be588349d9ce22d8d811 --- /dev/null +++ b/game/modules/tome/data/gfx/particles/ice_vapour.lua @@ -0,0 +1,49 @@ +-- ToME - Tales of Maj'Eyal +-- Copyright (C) 2009, 2010, 2011, 2012 Nicolas Casalini +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +-- Nicolas Casalini "DarkGod" +-- darkgod@te4.org + +base_size = 32 + +return { generator = function() + local ad = rng.range(0, 360) + local a = math.rad(ad) + local dir = math.rad(ad + 90) + local r = rng.range(1, 20) + local dirv = math.rad(1) + + return { + trail = 1, + life = 10, + size = 1, sizev = 0.5, sizea = 0, + + x = r * math.cos(a), xv = -0.1, xa = 0, + y = r * math.sin(a), yv = -0.1, ya = 0, + dir = math.rad(rng.range(0, 360)), dirv = 0, dira = 0, + vel = 0.1, velv = 0, vela = 0, + + r = 0, rv = 0, ra = 0, + g = rng.range(170, 210)/255, gv = 0, ga = 0, + b = rng.range(200, 255)/255, gv = 0, ga = 0, + a = rng.range(80, 130)/255, av = 0, aa = 0, + } +end, }, +function(self) + self.ps:emit(4) +end, +40, +"particle_torus" diff --git a/game/modules/tome/data/gfx/talents/glacial_vapour.png b/game/modules/tome/data/gfx/talents/glacial_vapour.png new file mode 100644 index 0000000000000000000000000000000000000000..7cf0ee657d58aedf44febeed9c6c5c7375e846bc Binary files /dev/null and b/game/modules/tome/data/gfx/talents/glacial_vapour.png differ diff --git a/game/modules/tome/data/talents/misc/npcs.lua b/game/modules/tome/data/talents/misc/npcs.lua index 6300ab9690e759fcf71a373c1b6d4533615fbf8e..091c45ce045b13a733dec5bb60f5440f60cdbcdd 100644 --- a/game/modules/tome/data/talents/misc/npcs.lua +++ b/game/modules/tome/data/talents/misc/npcs.lua @@ -1592,3 +1592,46 @@ newTalent{ end, } +newTalent{ + name = "Corrosive Vapour", + type = {"spell/other",1}, + require = spells_req1, + points = 5, + random_ego = "attack", + mana = 20, + cooldown = 8, + tactical = { ATTACKAREA = { ACID = 2 } }, + range = 8, + radius = 3, + direct_hit = true, + requires_target = true, + target = function(self, t) + return {type="ball", range=self:getTalentRange(t), radius=self:getTalentRadius(t)} + end, + getDamage = function(self, t) return self:combatTalentSpellDamage(t, 4, 50) end, + getDuration = function(self, t) return self:getTalentLevel(t) + 2 end, + action = function(self, t) + local tg = self:getTalentTarget(t) + local x, y = self:getTarget(tg) + if not x or not y then return nil end + local _ _, _, _, x, y = self:canProject(tg, x, y) + -- Add a lasting map effect + game.level.map:addEffect(self, + x, y, t.getDuration(self, t), + DamageType.ACID, t.getDamage(self, t), + self:getTalentRadius(t), + 5, nil, + {type="vapour"}, + nil, self:spellFriendlyFire() + ) + game:playSoundNear(self, "talents/cloud") + return true + end, + info = function(self, t) + local damage = t.getDamage(self, t) + local duration = t.getDuration(self, t) + return ([[Corrosive fumes rise from the ground doing %0.2f acid damage in a radius of 3 each turn for %d turns. + The damage will increase with your Spellpower.]]): + format(damDesc(self, DamageType.ACID, damage), duration) + end, +} diff --git a/game/modules/tome/data/talents/spells/necrotic-minions.lua b/game/modules/tome/data/talents/spells/necrotic-minions.lua index eb082c967fb753986934f58cfa24070414d7a3c5..13d7537fd82c8daf42a8e21e6b77d0aa50efded2 100644 --- a/game/modules/tome/data/talents/spells/necrotic-minions.lua +++ b/game/modules/tome/data/talents/spells/necrotic-minions.lua @@ -457,7 +457,7 @@ local minions_list = { desc=[[It is a ghostly form with eyes that haunt you.]], max_life = resolvers.rngavg(70,80), combat_armor = 9, combat_def = 6, - resolvers.talents{ T_FLAMESHOCK={base=2, every=5, max=6}, T_LIGHTNING={base=2, every=5, max=6}, T_CORROSIVE_VAPOUR={base=2, every=5, max=6}, + resolvers.talents{ T_FLAMESHOCK={base=2, every=5, max=6}, T_LIGHTNING={base=2, every=5, max=6}, T_GLACIAL_VAPOUR={base=2, every=5, max=6}, T_MIND_DISRUPTION={base=2, every=5, max=6}, }, }, @@ -485,7 +485,7 @@ local minions_list = { desc=[[It is a ghostly nightmare of an entity.]], max_life = resolvers.rngavg(80,90), combat_armor = 10, combat_def = 8, - resolvers.talents{ T_FLAMESHOCK={base=3, every=5, max=7}, T_LIGHTNING={base=3, every=5, max=7}, T_CORROSIVE_VAPOUR={base=3, every=5, max=7}, + resolvers.talents{ T_FLAMESHOCK={base=3, every=5, max=7}, T_LIGHTNING={base=3, every=5, max=7}, T_GLACIAL_VAPOUR={base=3, every=5, max=7}, T_MIND_DISRUPTION={base=3, every=5, max=7}, }, }, diff --git a/game/modules/tome/data/talents/spells/water.lua b/game/modules/tome/data/talents/spells/water.lua index afb61e5045945e0f009749ff60a9253be27fe541..4ef10e52d258a50236a2577b546c61bec3cc1fd9 100644 --- a/game/modules/tome/data/talents/spells/water.lua +++ b/game/modules/tome/data/talents/spells/water.lua @@ -18,14 +18,14 @@ -- darkgod@te4.org newTalent{ - name = "Corrosive Vapour", + name = "Glacial Vapour", type = {"spell/water",1}, require = spells_req1, points = 5, random_ego = "attack", - mana = 25, + mana = 12, cooldown = 8, - tactical = { ATTACKAREA = { ACID = 2 } }, + tactical = { ATTACKAREA = { COLD = 2 } }, range = 8, radius = 3, direct_hit = true, @@ -43,10 +43,10 @@ newTalent{ -- Add a lasting map effect game.level.map:addEffect(self, x, y, t.getDuration(self, t), - DamageType.ACID, t.getDamage(self, t), + DamageType.COLD, t.getDamage(self, t), self:getTalentRadius(t), 5, nil, - {type="vapour"}, + {type="ice_vapour"}, nil, self:spellFriendlyFire() ) game:playSoundNear(self, "talents/cloud") @@ -55,9 +55,9 @@ newTalent{ info = function(self, t) local damage = t.getDamage(self, t) local duration = t.getDuration(self, t) - return ([[Corrosive fumes rise from the ground doing %0.2f acid damage in a radius of 3 each turn for %d turns. + return ([[Glacial fumes rise from the ground doing %0.2f cold damage in a radius of 3 each turn for %d turns. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.ACID, damage), duration) + format(damDesc(self, DamageType.COLD, damage), duration) end, } diff --git a/game/modules/tome/data/zones/telmur/npcs.lua b/game/modules/tome/data/zones/telmur/npcs.lua index 03e3efbf69444d82562febe2a672df546cdcea49..276718b82857a9048cc0b9bda49502f04f628791 100644 --- a/game/modules/tome/data/zones/telmur/npcs.lua +++ b/game/modules/tome/data/zones/telmur/npcs.lua @@ -73,7 +73,7 @@ newEntity{ define_as = "SHADE_OF_TELOS", [Talents.T_UTTERCOLD]=8, [Talents.T_FROZEN_GROUND]=5, [Talents.T_SHATTER]=5, - [Talents.T_CORROSIVE_VAPOUR]=5, + [Talents.T_GLACIAL_VAPOUR]=5, [Talents.T_CURSE_OF_IMPOTENCE]=5, [Talents.T_VIRULENT_DISEASE]=5, },