From 3f847d6ba0b331271fe2f0f24830cf1187b3cbba Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Mon, 26 Dec 2011 17:58:28 +0000
Subject: [PATCH] Disruption Shield now takes effect *after* damage shield,
 time shield, displacement shield

git-svn-id: http://svn.net-core.org/repos/t-engine4@4761 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/modules/tome/class/Actor.lua | 42 +++++++++++++++----------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index d6544f39e6..deec5163a0 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -1178,27 +1178,6 @@ function _M:onTakeHit(value, src)
 
 	end
 
-	if self:attr("disruption_shield") then
-		local mana = self:getMana()
-		local mana_val = value * self:attr("disruption_shield")
-		-- We have enough to absorb the full hit
-		if mana_val <= mana then
-			self:incMana(-mana_val)
-			self.disruption_shield_absorb = self.disruption_shield_absorb + value
-			return 0
-		-- Or the shield collapses in a deadly arcane explosion
-		else
-			local dam = self.disruption_shield_absorb
-
-			-- Deactivate without loosing energy
-			self:forceUseTalent(self.T_DISRUPTION_SHIELD, {ignore_energy=true})
-
-			-- Explode!
-			local t = self:getTalentFromId(self.T_DISRUPTION_SHIELD)
-			t.explode(self, t, dam)
-		end
-	end
-
 	if self:attr("time_shield") then
 		-- Absorb damage into the time shield
 		self.time_shield_absorb = self.time_shield_absorb or 0
@@ -1249,6 +1228,27 @@ function _M:onTakeHit(value, src)
 		end
 	end
 
+	if self:attr("disruption_shield") then
+		local mana = self:getMana()
+		local mana_val = value * self:attr("disruption_shield")
+		-- We have enough to absorb the full hit
+		if mana_val <= mana then
+			self:incMana(-mana_val)
+			self.disruption_shield_absorb = self.disruption_shield_absorb + value
+			return 0
+		-- Or the shield collapses in a deadly arcane explosion
+		else
+			local dam = self.disruption_shield_absorb
+
+			-- Deactivate without loosing energy
+			self:forceUseTalent(self.T_DISRUPTION_SHIELD, {ignore_energy=true})
+
+			-- Explode!
+			local t = self:getTalentFromId(self.T_DISRUPTION_SHIELD)
+			t.explode(self, t, dam)
+		end
+	end
+
 	if self:hasEffect(self.EFF_BONE_SHIELD) then
 		local e = self.tempeffect_def[self.EFF_BONE_SHIELD]
 		e.absorb(self, self.tmp[self.EFF_BONE_SHIELD])
-- 
GitLab