diff --git a/game/modules/tome/data/gfx/particles/cursed_ground.lua b/game/modules/tome/data/gfx/particles/cursed_ground.lua
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..3d090868ada856d4b65b417b39923ce036a37272 100644
--- a/game/modules/tome/data/gfx/particles/cursed_ground.lua
+++ b/game/modules/tome/data/gfx/particles/cursed_ground.lua
@@ -0,0 +1,60 @@
+-- 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
+
+base_size = 32
+
+local distributionOffset = math.rad(rng.range(0, 360))
+
+return { generator = function()
+	local life = rng.float(10, 15)
+	local size = 1
+	local angle = math.rad(rng.range(0, 360))
+	local distribution = (math.sin(angle + distributionOffset) + 1) / 2
+	local distance = engine.Map.tile_w * rng.float(0.3, 0.9)
+	local startX = distance * math.cos(angle)
+	local startY = distance * math.sin(angle)
+	local alpha = (80 - distribution * 50) / 255
+	
+	local speed = 0.03
+	local dirv = math.pi * 2 * speed
+	local vel = math.pi * distance * speed
+	
+	return {
+		trail = 1,
+		life = life,
+		size = size, sizev = size / life / 3, sizea = 0,
+
+		x = -size / 2 + startX, xv = -startX / life, xa = 0,
+		y = -size / 2 + startY, yv = -startY / life, ya = 0,
+		dir = angle + math.rad(90), dirv = dirv, dira = 0,
+		vel = vel, velv = -vel / life, vela = 0,
+		
+		r = (100 + distribution * 100) / 255,  rv = 0, ra = 0,
+		g = 64 / 255,  gv = 0, ga = 0,
+		b = (200 - distribution * 100) / 255,  bv = 0, ba = 0,
+		a = alpha,  av = -alpha / life / 2, aa = 0,
+	}
+end, },
+function(self)
+	self.nb = (self.nb or 0) + 1
+	if self.nb <= 4 then
+		self.ps:emit(1000)
+	end
+end,
+1000 * 4