diff --git a/game/modules/tome/data/gfx/particles_images/alchie_acid.png b/game/modules/tome/data/gfx/particles_images/alchie_acid.png
new file mode 100644
index 0000000000000000000000000000000000000000..003277acbd53fe8330a5e32476da6f8d41bb329c
Binary files /dev/null and b/game/modules/tome/data/gfx/particles_images/alchie_acid.png differ
diff --git a/game/modules/tome/data/gfx/particles_images/alchie_lightning.png b/game/modules/tome/data/gfx/particles_images/alchie_lightning.png
new file mode 100644
index 0000000000000000000000000000000000000000..0141abffd171572dc8b3612beed195a895a59973
Binary files /dev/null and b/game/modules/tome/data/gfx/particles_images/alchie_lightning.png differ
diff --git a/game/modules/tome/data/talents/spells/energy-alchemy.lua b/game/modules/tome/data/talents/spells/energy-alchemy.lua
index 5651a8c0ed1ebd5f7782011856e9e6174d9ecdf3..c63206d0a0b798f9f63d5d8c0d504e0fb8419a40 100644
--- a/game/modules/tome/data/talents/spells/energy-alchemy.lua
+++ b/game/modules/tome/data/talents/spells/energy-alchemy.lua
@@ -187,9 +187,15 @@ newTalent{
 		local ret = {name = self.name:capitalize().."'s "..t.name}
 		self:talentTemporaryValue(ret, "movement_speed", t.getSpeed(self, t))
 		ret.last_life = self.life
+
+		if core.shader.active(4) then
+			ret.particle = self:addParticles(Particles.new("shader_ring_rotating", 1, {z=5, rotation=0, radius=1.1, img="alchie_lightning"}, {type="lightningshield"}))
+		end
+
 		return ret
 	end,
 	deactivate = function(self, t, p)
+		self:removeParticles(p.particle)
 		return true
 	end,
 	info = function(self, t)
diff --git a/game/modules/tome/data/timed_effects/magical.lua b/game/modules/tome/data/timed_effects/magical.lua
index f2bba636a0bdf19cf5fae1fe5544f1b2f5e8487b..bc682a16dc6bf37056328cce3a2875474606f294 100644
--- a/game/modules/tome/data/timed_effects/magical.lua
+++ b/game/modules/tome/data/timed_effects/magical.lua
@@ -2571,6 +2571,14 @@ newEffect{
 		self:project({type="cone", cone_angle=25, range=0, radius=4}, src.x, src.y, DamageType.ACID, eff.dam)
 		game.level.map:particleEmitter(self.x, self.y, 4, "breath_acid", {radius=4, tx=src.x-self.x, ty=src.y-self.y, spread=20})
 	end,
+	activate = function(self, eff)
+		if core.shader.active(4) then
+			eff.particle = self:addParticles(Particles.new("shader_ring_rotating", 1, {z=5, rotation=0, radius=1.1, img="alchie_acid"}, {type="lightningshield"}))
+		end
+	end,
+	deactivate = function(self, eff)
+		self:removeParticles(eff.particle)
+	end,
 }
 
 newEffect{