diff options
Diffstat (limited to 'src/game/SpellMgr.cpp')
-rw-r--r-- | src/game/SpellMgr.cpp | 59 |
1 files changed, 5 insertions, 54 deletions
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index 3534a9da14e..879e030a614 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -733,6 +733,7 @@ bool IsPositiveTarget(uint32 targetA, uint32 targetB) // non-positive targets switch(targetA) { + case TARGET_UNIT_NEARBY_ENEMY: case TARGET_UNIT_TARGET_ENEMY: case TARGET_UNIT_AREA_ENEMY_SRC: case TARGET_UNIT_AREA_ENEMY_DST: @@ -754,20 +755,16 @@ bool SpellMgr::_isPositiveEffect(uint32 spellId, uint32 effIndex, bool deep) con SpellEntry const *spellproto = sSpellStore.LookupEntry(spellId); if (!spellproto) return false; + // not found a single positive spell with this attribute + if (spellproto->Attributes & SPELL_ATTR_NEGATIVE_1) + return false; + switch(spellId) { - case 1852: // Silenced (GM) - case 46392: // Focused Assault - case 46393: // Brutal Assault //case 37675: // Chaos Blast removed from mangos - case 41519: // Mark of Stormrage - case 34877: // Custodian of Time case 34700: // Allergic Reaction - case 31719: // Suspension case 61987: // Avenging Wrath Marker case 50524: // Runic Power Feed - case 52671: // Arcing Burn - case 59834: // Arcing Burn return false; case 12042: // Arcane Power return true; @@ -813,24 +810,6 @@ bool SpellMgr::_isPositiveEffect(uint32 spellId, uint32 effIndex, bool deep) con { switch(spellproto->EffectApplyAuraName[effIndex]) { - case SPELL_AURA_DUMMY: - { - // dummy aura can be positive or negative dependent from casted spell - switch(spellproto->Id) - { - case 13139: // net-o-matic special effect - case 23445: // evil twin - case 35679: // Protectorate Demolitionist - case 38637: // Nether Exhaustion (red) - case 38638: // Nether Exhaustion (green) - case 38639: // Nether Exhaustion (blue) - case 11196: // Recently Bandaged - case 44689: // Relay Race Accept Hidden Debuff - DND - return false; - default: - break; - } - } break; case SPELL_AURA_MOD_DAMAGE_DONE: // dependent from bas point sign (negative -> negative) case SPELL_AURA_MOD_STAT: case SPELL_AURA_MOD_SKILL: @@ -878,10 +857,6 @@ bool SpellMgr::_isPositiveEffect(uint32 spellId, uint32 effIndex, bool deep) con case SPELL_AURA_MOD_STUN: //have positive and negative spells, we can't sort its correctly at this moment. if(effIndex==0 && spellproto->Effect[1]==0 && spellproto->Effect[2]==0) return false; // but all single stun aura spells is negative - - // Petrification - if(spellproto->Id == 17624) - return false; break; case SPELL_AURA_MOD_PACIFY_SILENCE: if(spellproto->Id == 24740) // Wisp Costume @@ -907,26 +882,6 @@ bool SpellMgr::_isPositiveEffect(uint32 spellId, uint32 effIndex, bool deep) con if(spellproto->Attributes & 0x4000000 && effIndex==0) return false; break; - case SPELL_AURA_TRANSFORM: - // some spells negative - switch(spellproto->Id) - { - case 36897: // Transporter Malfunction (race mutation to horde) - case 36899: // Transporter Malfunction (race mutation to alliance) - return false; - } - break; - case SPELL_AURA_MOD_SCALE: - // some spells negative - switch(spellproto->Id) - { - case 36900: // Soul Split: Evil! - case 36901: // Soul Split: Good - case 36893: // Transporter Malfunction (decrease size case) - case 36895: // Transporter Malfunction (increase size case) - return false; - } - break; case SPELL_AURA_MECHANIC_IMMUNITY: { // non-positive immunities @@ -971,10 +926,6 @@ bool SpellMgr::_isPositiveEffect(uint32 spellId, uint32 effIndex, bool deep) con break; } } break; - case SPELL_AURA_FORCE_REACTION: - if(spellproto->Id==42792) // Recently Dropped Flag (prevent cancel) - return false; - break; default: break; } |