diff --git a/game/modules/tome/data/gfx/particles/ice_shards.lua b/game/modules/tome/data/gfx/particles/ice_shards.lua new file mode 100644 index 0000000000000000000000000000000000000000..008beaaafc1ccfaf1ed78b2beb73d2d9ede01e4a --- /dev/null +++ b/game/modules/tome/data/gfx/particles/ice_shards.lua @@ -0,0 +1,63 @@ +-- ToME - Tales of Middle-Earth +-- 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 + +-- Make the ray +local ray = {} +local tiles = math.ceil(math.sqrt(tx*tx+ty*ty)) +local tx = tx * engine.Map.tile_w +local ty = ty * engine.Map.tile_h +local breakdir = math.rad(rng.range(-8, 8)) +ray.dir = math.atan2(ty, tx) +ray.size = math.sqrt(tx*tx+ty*ty) + +local starts = {} +for i = 1, 4 do + starts[#starts+1] = { a = math.rad(rng.range(0, 360)), r = rng.range(6, 20) } +end + +-- Populate the beam based on the forks +return { generator = function() + local a = ray.dir + local rad = rng.range(-3,3) + local s = rng.table(starts) + local ra = s.a + local r = s.r + + return { + life = 10, + size = rng.range(4, 6), sizev = -0.1, sizea = 0, + + x = r * math.cos(a) + 2 * math.cos(ra), xv = 0, xa = 0, + y = r * math.sin(a) + 2 * math.sin(ra), yv = 0, ya = 0, + dir = a, dirv = 0, dira = 0, + vel = ray.size / 10, 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(230, 225)/255, av = 0, aa = 0, + } +end, }, +function(self) + self.nb = (self.nb or 0) + 1 + if self.nb < 3 then + self.ps:emit(30 * 4) + end +end, +10*30*4*2 diff --git a/game/modules/tome/data/gfx/particles/uttercold.lua b/game/modules/tome/data/gfx/particles/uttercold.lua new file mode 100644 index 0000000000000000000000000000000000000000..97c728a3aa65e50770ef39fe421d3f44e3a994bc --- /dev/null +++ b/game/modules/tome/data/gfx/particles/uttercold.lua @@ -0,0 +1,44 @@ +-- ToME - Tales of Middle-Earth +-- 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 + +return { generator = function() + local ad = rng.range(0, 360) + local a = math.rad(ad) + local dir = math.rad(ad) + local r = rng.range(8, 18) + + return { + life = 20, + size = 2, sizev = 0.3, sizea = -0.01, + + x = r * math.cos(a), xv = 0, xa = 0, + y = r * math.sin(a), yv = 0, ya = 0, + dir = 0, dirv = 0, dira = 0, + vel = 0, 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(230, 225)/255, av = 0, aa = 0, + } +end, }, +function(self) + self.ps:emit(4) +end, +80