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