From bfbd0cc0b3e595badae70a6e2c3848c3e5b6b7fd Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Tue, 5 Mar 2013 10:53:54 +0000
Subject: [PATCH] Wearing antimagic items as an arcane character will give you
 a visible debuff to notice of the spell failure

git-svn-id: http://svn.net-core.org/repos/t-engine4@6492 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/modules/tome/class/Actor.lua               |   3 +++
 .../data/gfx/effects/antimagic_disruption.png   | Bin 0 -> 3781 bytes
 game/modules/tome/data/timed_effects/other.lua  |  16 ++++++++++++++++
 3 files changed, 19 insertions(+)
 create mode 100644 game/modules/tome/data/gfx/effects/antimagic_disruption.png

diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index 70f4dccb5a..78d44b3d1c 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -2828,6 +2828,9 @@ function _M:onWear(o, bypass_set)
 	if o.power_source and o.power_source.antimagic then
 		self:attr("spellpower_reduction", 1)
 		self:attr("spell_failure", (o.material_level or 1) * 10)
+		if self:attr("has_arcane_knowledge") then
+			self:setEffect(self.EFF_ANTIMAGIC_DISRUPTION, 1, {})
+		end
 	end
 
 	-- Apply Psychometry
diff --git a/game/modules/tome/data/gfx/effects/antimagic_disruption.png b/game/modules/tome/data/gfx/effects/antimagic_disruption.png
new file mode 100644
index 0000000000000000000000000000000000000000..474a8f3a67d2549652a3adac3a1cbdc876f7bef4
GIT binary patch
literal 3781
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

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/timed_effects/other.lua b/game/modules/tome/data/timed_effects/other.lua
index 25a5753a36..396199213c 100644
--- a/game/modules/tome/data/timed_effects/other.lua
+++ b/game/modules/tome/data/timed_effects/other.lua
@@ -2229,3 +2229,19 @@ newEffect{
 		self.onTakeHit = old
 	end,
 }
+
+newEffect{
+	name = "ANTIMAGIC_DISRUPTION",
+	desc = "Antimagic Disruption",
+	long_desc = function(self, eff) return ("Your arcane powers are disrupted by your antimagic equipment."):format() end,
+	type = "other",
+	subtype = { antimagic=true },
+	status = "detrimental",
+	decrease = 0, no_remove = true,
+	parameters = { },
+	on_timeout = function(self, eff)
+		if not self:attr("has_arcane_knowledge") or not self:attr("spellpower_reduction") then
+			self:removeEffect(self.EFF_ANTIMAGIC_DISRUPTION, true, true)
+		end
+	end,
+}
-- 
GitLab