aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorthenecromancer <none@none>2010-03-15 18:03:43 +0100
committerthenecromancer <none@none>2010-03-15 18:03:43 +0100
commita81ad6986c65f966bb3af100b60a4ad1794f6aed (patch)
tree2227850674fefdeb36548dd525b35af2851a040b /src
parent3ba08629266146e6fbe5534443a0fefd16230d8e (diff)
Remove Hack detecting spell 61988 in HasAura()
Correctly cast 61988/61987 after casting Avenging Wrath/Divine Shield respectively (This will correctly show both spells disabled state) Don't allow casting Lay on Hands on self when aura 61988 is present (ie. after using Avenging Wrath) --HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/Spell.cpp11
-rw-r--r--src/game/SpellMgr.cpp1
-rw-r--r--src/game/Unit.cpp4
3 files changed, 12 insertions, 4 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 85c9c17e07c..88d22b63164 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -1419,6 +1419,12 @@ void Spell::DoTriggersOnSpellHit(Unit *unit)
// Cast Avenging Wrath Marker
m_caster->CastSpell(unit,61987, true, m_CastItem);
}
+ // Avenging Wrath Marker
+ else if (m_preCastSpell==61987)
+ {
+ // Cast unknown spell (client will use to determine if Divine Shield is castable)
+ m_caster->CastSpell(unit,61988, true, m_CastItem);
+ }
else if (sSpellStore.LookupEntry(m_preCastSpell))
m_caster->CastSpell(unit,m_preCastSpell, true, m_CastItem);
}
@@ -4511,6 +4517,11 @@ SpellCastResult Spell::CheckCast(bool strict)
else
return SPELL_FAILED_BAD_TARGETS;
}
+ // Lay on Hands - cannot be casted on paladin after using Avenging Wrath
+ if (m_spellInfo->SpellFamilyName == SPELLFAMILY_PALADIN
+ && m_spellInfo->SpellFamilyFlags[0] & 0x0008000)
+ if (target->HasAura(61988)) // Avenging Wrath Marker (Not existing spell)
+ return SPELL_FAILED_TARGET_AURASTATE;
}
}
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
index aed3fc4789f..0b77f1b51e9 100644
--- a/src/game/SpellMgr.cpp
+++ b/src/game/SpellMgr.cpp
@@ -746,6 +746,7 @@ bool SpellMgr::_isPositiveEffect(uint32 spellId, uint32 effIndex, bool deep) con
//case 37675: // Chaos Blast removed from mangos
case 34700: // Allergic Reaction
case 61987: // Avenging Wrath Marker
+ case 61988: // Divine Shield exclude aura
case 50524: // Runic Power Feed
return false;
case 12042: // Arcane Power
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index ba4f49f6691..a758e836845 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -4532,10 +4532,6 @@ bool Unit::HasAuraEffect(uint32 spellId, uint8 effIndex, uint64 caster) const
bool Unit::HasAura(uint32 spellId, uint64 caster, uint8 reqEffMask) const
{
- //Special case for non existing spell
- if (spellId==61988)
- return HasAura(61987, caster, reqEffMask) || HasAura(25771, caster, reqEffMask);
-
if (GetAuraApplication(spellId, caster, reqEffMask))
return true;
return false;