From 022ee3c558b6a2a4c4a3995e9bdd0a473da9a061 Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Thu, 11 Nov 2010 23:34:13 +0000 Subject: [PATCH] Fix dreadmaster disperse magic git-svn-id: http://svn.net-core.org/repos/t-engine4@1871 51575b47-30f0-44d4-a5cc-537603b46e54 --- .../engine/interface/GameTargeting.lua | 2 +- game/modules/tome/data/general/npcs/ghost.lua | 12 ++-- .../tome/data/gfx/particles/ball_light.lua | 59 +++++++++++++++++++ 3 files changed, 66 insertions(+), 7 deletions(-) create mode 100644 game/modules/tome/data/gfx/particles/ball_light.lua diff --git a/game/engines/default/engine/interface/GameTargeting.lua b/game/engines/default/engine/interface/GameTargeting.lua index d81faef06a..0cbf440d06 100644 --- a/game/engines/default/engine/interface/GameTargeting.lua +++ b/game/engines/default/engine/interface/GameTargeting.lua @@ -206,7 +206,7 @@ end -- @param typ the targeting parameters function _M:targetGetForPlayer(typ) if self.target.forced then return unpack(self.target.forced) end - if coroutine.running() then + if coroutine.running() and typ then local msg if type(typ) == "string" then msg, typ = typ, nil elseif type(typ) == "table" then diff --git a/game/modules/tome/data/general/npcs/ghost.lua b/game/modules/tome/data/general/npcs/ghost.lua index e8cabd7d62..4cbf0d08ab 100644 --- a/game/modules/tome/data/general/npcs/ghost.lua +++ b/game/modules/tome/data/general/npcs/ghost.lua @@ -85,13 +85,13 @@ newEntity{ base = "BASE_NPC_GHOST", summon = {{type="undead", subtype="ghost", name="dead", number=3, hasxp=false}, }, resolvers.talents{ --- [Talents.T_SUMMON]=1, --- [Talents.T_PHASE_DOOR]=2, --- [Talents.T_BLUR_SIGHT]=4, + [Talents.T_SUMMON]=1, + [Talents.T_PHASE_DOOR]=2, + [Talents.T_BLUR_SIGHT]=4, [Talents.T_DISPERSE_MAGIC]=3, --- [Talents.T_SILENCE]=2, --- [Talents.T_MIND_DISRUPTION]=3, --- [Talents.T_BURNING_HEX]=5, + [Talents.T_SILENCE]=2, + [Talents.T_MIND_DISRUPTION]=3, + [Talents.T_BURNING_HEX]=5, }, } diff --git a/game/modules/tome/data/gfx/particles/ball_light.lua b/game/modules/tome/data/gfx/particles/ball_light.lua new file mode 100644 index 0000000000..46b57d6abe --- /dev/null +++ b/game/modules/tome/data/gfx/particles/ball_light.lua @@ -0,0 +1,59 @@ +-- ToME - Tales of Maj'Eyal +-- Copyright (C) 2009, 2010 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 + +local nb = 12 +local dir +local radius = radius or 6 + +return { generator = function() + local sradius = (radius + 0.5) * (engine.Map.tile_w + engine.Map.tile_h) / 2 + local ad = rng.float(0, 360) + local a = math.rad(ad) + local r = 0 + local x = r * math.cos(a) + local y = r * math.sin(a) + local static = rng.percent(40) + local vel = sradius * ((24 - nb * 1.4) / 24) / 12 + + return { + trail = 1, + life = 12, + size = 12 - (12 - nb) * 0.7, sizev = 0, sizea = 0, + + x = x, xv = 0, xa = 0, + y = y, yv = 0, ya = 0, + dir = a, dirv = 0, dira = 0, + vel = rng.float(vel * 0.6, vel * 1.2), velv = 0, vela = 0, + + r = rng.range(220, 255)/255, rv = 0, ra = 0, + g = rng.range(200, 230)/255, gv = 0, ga = 0, + b = 0, bv = 0, ba = 0, + a = rng.range(25, 220)/255, av = 0, aa = 0, + } +end, }, +function(self) + if nb > 0 then + local i = math.min(nb, 6) + i = (i * i) * radius + self.ps:emit(i) + nb = nb - 1 + end +end, +30*radius*7*12, +"particle_cloud" -- GitLab