diff options
author | QAston <qaston@gmail.com> | 2011-09-01 09:06:24 +0200 |
---|---|---|
committer | QAston <qaston@gmail.com> | 2011-09-01 09:07:14 +0200 |
commit | 71b9e0d8de4d98fde3ca6440a4f8722ea090d5b8 (patch) | |
tree | 2dd25ac1a4f279f5a48a74932a389c738f9d1ac5 /src | |
parent | b12c75ecfa014a3f200410efcfa51afb4193903a (diff) |
Core/Spells: Make mind sear aoe no longet target unit at which caster is channeling the spell.
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Grids/Notifiers/GridNotifiers.h | 28 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_priest.cpp | 3 |
2 files changed, 30 insertions, 1 deletions
diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h index 4d4f0bfe05e..32ef215a5ee 100755 --- a/src/server/game/Grids/Notifiers/GridNotifiers.h +++ b/src/server/game/Grids/Notifiers/GridNotifiers.h @@ -1274,6 +1274,34 @@ namespace Trinity bool _equals; }; + class ObjectGUIDCheck + { + public: + ObjectGUIDCheck(uint64 GUID) : _GUID(GUID) {} + bool operator()(WorldObject* object) + { + return object->GetGUID() == _GUID; + } + + private: + uint64 _GUID; + }; + + class UnitAuraCheck + { + public: + UnitAuraCheck(bool present, uint32 spellId, uint64 casterGUID = 0) : _present(present), _spellId(spellId), _casterGUID(casterGUID) {} + bool operator()(Unit* unit) + { + return unit->HasAura(_spellId, _casterGUID) == _present; + } + + private: + bool _present; + uint32 _spellId; + uint64 _casterGUID; + }; + // Player checks and do // Prepare using Builder localized packets with caching and send to player diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index 623bfe0a5da..77048d6ea29 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -23,6 +23,7 @@ #include "ScriptPCH.h" #include "SpellAuraEffects.h" +#include "GridNotifiers.h" enum PriestSpells { @@ -130,7 +131,7 @@ class spell_pri_mind_sear : public SpellScriptLoader void FilterTargets(std::list<Unit*>& unitList) { - unitList.remove(GetTargetUnit()); + unitList.remove_if(Trinity::ObjectGUIDCheck(GetCaster()->GetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT))); } void Register() |