From 45b32dcfecf444ac57ee64d44ab8539f6208d7b0 Mon Sep 17 00:00:00 2001
From: DarkGod <darkgod@net-core.org>
Date: Tue, 28 Feb 2017 10:13:03 +0100
Subject: [PATCH] New visuals for Deflection

---
 .../tome/data/gfx/particles/perfect_strike.lua  |   2 +-
 .../spinningwinds_doomed_deflection.png         | Bin 0 -> 28305 bytes
 .../tome/data/talents/cursed/force-of-will.lua  |   4 +++-
 game/modules/tome/data/timed_effects/mental.lua |   6 ++++--
 4 files changed, 8 insertions(+), 4 deletions(-)
 create mode 100644 game/modules/tome/data/gfx/particles_images/spinningwinds_doomed_deflection.png

diff --git a/game/modules/tome/data/gfx/particles/perfect_strike.lua b/game/modules/tome/data/gfx/particles/perfect_strike.lua
index a899cf04ae..0f169111fe 100644
--- a/game/modules/tome/data/gfx/particles/perfect_strike.lua
+++ b/game/modules/tome/data/gfx/particles/perfect_strike.lua
@@ -18,7 +18,7 @@
 -- darkgod@te4.org
 
 local rot = rng.range(0,359)
-local img = "spinningwinds_perfect_strike"
+local img = img or "spinningwinds_perfect_strike"
 local radius = radius or 1
 
 use_shader = {type="spinningwinds", ellipsoidalFactor={1,1}, time_factor=4000, noup=0.0, verticalIntensityAdjust=-3.0}
diff --git a/game/modules/tome/data/gfx/particles_images/spinningwinds_doomed_deflection.png b/game/modules/tome/data/gfx/particles_images/spinningwinds_doomed_deflection.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4d50a261b423433d30017be27bb7a6e7a2cabd6
GIT binary patch
literal 28305
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
C4V;+(

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/talents/cursed/force-of-will.lua b/game/modules/tome/data/talents/cursed/force-of-will.lua
index da4450b7c9..438e20db86 100644
--- a/game/modules/tome/data/talents/cursed/force-of-will.lua
+++ b/game/modules/tome/data/talents/cursed/force-of-will.lua
@@ -172,10 +172,12 @@ newTalent{
 	getRechargeRate = function(self, t) return self:combatTalentLimit(t, 5, 35, 10) end,
 	activate = function(self, t)
 		game:playSoundNear(self, "talents/spell_generic2")
-		return {
+		local ret = {
 			value = 0,
 			__update_display = true,
 		}
+		self:talentParticles(ret, {type="perfect_strike", args={radius=1, img="spinningwinds_doomed_deflection"}})
+		return ret
 	end,
 	deactivate = function(self, t, p)
 		if p.particles then self:removeParticles(p.particles) end
diff --git a/game/modules/tome/data/timed_effects/mental.lua b/game/modules/tome/data/timed_effects/mental.lua
index f23e839393..572aeb012e 100644
--- a/game/modules/tome/data/timed_effects/mental.lua
+++ b/game/modules/tome/data/timed_effects/mental.lua
@@ -2995,10 +2995,12 @@ newEffect{
 	parameters = { power=10 },
 	activate = function(self, eff)
 		self:effectTemporaryValue(eff, "die_at", -eff.power)
-		eff.particle = self:addParticles(Particles.new("darkness_power", 1))
+		self:effectParticles(eff, {type="darkness_power"})
+		-- if core.shader.active() then
+		-- 	self:effectParticles(eff, {type="circle", args={shader=true, oversize=1.5, a=225, appear=8, speed=0, img="shadow_decoy_aura", base_rot=0, radius=0}})
+		-- end
 	end,
 	deactivate = function(self, eff)
-		self:removeParticles(eff.particle)
 	end,
 }
 
-- 
GitLab