diff options
Diffstat (limited to 'src/game/SpellMgr.cpp')
| -rw-r--r-- | src/game/SpellMgr.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index 21e9b4e8702..447a6059777 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -3030,17 +3030,21 @@ bool SpellArea::IsFitToRequirements(Player const* player, uint32 newZone, uint32 return false; } - if(auraSpell) + if (auraSpell) { // not have expected aura - if(!player) + if (!player || auraSpell > 0 && !player->HasAura(auraSpell) || auraSpell < 0 && player->HasAura(-auraSpell)) return false; - if(auraSpell > 0) - // have expected aura - return player->HasAura(auraSpell); - else - // not have expected aura - return !player->HasAura(-auraSpell); + } + + // Extra conditions + switch(spellId) + { + case 58045: // Essence of Wintergrasp - Wintergrasp + case 57940: // Essence of Wintergrasp - Northrend + if (!player || player->GetTeamId() != sWorld.getState(WORLDSTATE_WINTERGRASP_CONTROLING_FACTION)) + return false; + break; } return true; |
