diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 14 | ||||
-rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 141 |
2 files changed, 7 insertions, 148 deletions
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index c42f5d8714c..7b34e1a08a1 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -2576,13 +2576,13 @@ enum Mechanics : uint32 }; // Used for spell 42292 Immune Movement Impairment and Loss of Control (0x49967ca6) -#define IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK (\ - (1<<MECHANIC_CHARM)|(1<<MECHANIC_DISORIENTED)|(1<<MECHANIC_FEAR)| \ - (1<<MECHANIC_ROOT)|(1<<MECHANIC_SLEEP)|(1<<MECHANIC_SNARE)| \ - (1<<MECHANIC_STUN)|(1<<MECHANIC_FREEZE)|(1<<MECHANIC_SILENCE)|(1<<MECHANIC_DISARM)|(1<<MECHANIC_KNOCKOUT)| \ - (1<<MECHANIC_POLYMORPH)|(1<<MECHANIC_BANISH)|(1<<MECHANIC_SHACKLE)| \ - (1<<MECHANIC_TURN)|(1<<MECHANIC_HORROR)|(1<<MECHANIC_DAZE)| \ - (1<<MECHANIC_SAPPED)) +inline constexpr uint64 IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK(\ + (1 << MECHANIC_CHARM) | (1 << MECHANIC_DISORIENTED) | (1 << MECHANIC_FEAR) | \ + (1 << MECHANIC_ROOT) | (1 << MECHANIC_SLEEP) | (1 << MECHANIC_SNARE) | \ + (1 << MECHANIC_STUN) | (1 << MECHANIC_FREEZE) | (1 << MECHANIC_SILENCE) | (1 << MECHANIC_DISARM) | (1 << MECHANIC_KNOCKOUT) | \ + (1 << MECHANIC_POLYMORPH) | (1 << MECHANIC_BANISH) | (1 << MECHANIC_SHACKLE) | \ + (1 << MECHANIC_TURN) | (1 << MECHANIC_HORROR) | (1 << MECHANIC_DAZE) | \ + (1 << MECHANIC_SAPPED)); // Spell dispel type enum DispelType diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index cb2875edd8e..7a365207d4b 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -3318,7 +3318,6 @@ void SpellInfo::_LoadImmunityInfo() uint32 damageImmunityMask = 0; int32 miscVal = effect.MiscValue; - int32 amount = effect.CalcValue(); SpellEffectInfo::ImmunityInfo& immuneInfo = *workBuffer; @@ -3336,146 +3335,6 @@ void SpellInfo::_LoadImmunityInfo() for (AuraType aura : creatureImmunities->Aura) immuneInfo.AuraTypeImmune.insert(aura); } - - switch (miscVal) - { - case 96: // Free Friend, Uncontrollable Frenzy, Warlord's Presence - { - mechanicImmunityMask |= IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK; - - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_DECREASE_SPEED); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_CONFUSE); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_FEAR); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT_2); - break; - } - case 1615: // Incite Rage, Wolf Spirit, Overload, Lightning Tendrils - { - switch (Id) - { - case 43292: // Incite Rage - case 49172: // Wolf Spirit - mechanicImmunityMask |= IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK; - - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_DECREASE_SPEED); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_CONFUSE); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_FEAR); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT_2); - [[fallthrough]]; - case 61869: // Overload - case 63481: - case 61887: // Lightning Tendrils - case 63486: - mechanicImmunityMask |= (1 << MECHANIC_INTERRUPT) | (1 << MECHANIC_SILENCE); - - immuneInfo.SpellEffectImmune.insert(SPELL_EFFECT_KNOCK_BACK); - immuneInfo.SpellEffectImmune.insert(SPELL_EFFECT_KNOCK_BACK_DEST); - break; - default: - break; - } - break; - } - case 679: // Mind Control, Avenging Fury - { - if (Id == 57742) // Avenging Fury - { - mechanicImmunityMask |= IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK; - - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_DECREASE_SPEED); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_CONFUSE); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_FEAR); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT_2); - } - break; - } - case 1557: // Startling Roar, Warlord Roar, Break Bonds, Stormshield - { - if (Id == 64187) // Stormshield - { - mechanicImmunityMask |= (1 << MECHANIC_STUN); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN); - } - else - { - mechanicImmunityMask |= IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK; - - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_DECREASE_SPEED); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_CONFUSE); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_FEAR); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT_2); - } - break; - } - case 1614: // Fixate - case 1694: // Fixated, Lightning Tendrils - { - immuneInfo.SpellEffectImmune.insert(SPELL_EFFECT_ATTACK_ME); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_TAUNT); - break; - } - case 1630: // Fervor, Berserk - { - if (Id == 64112) // Berserk - { - immuneInfo.SpellEffectImmune.insert(SPELL_EFFECT_ATTACK_ME); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_TAUNT); - } - else - { - mechanicImmunityMask |= IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK; - - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_DECREASE_SPEED); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_CONFUSE); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_FEAR); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT_2); - } - break; - } - case 477: // Bladestorm - case 1733: // Bladestorm, Killing Spree - { - if (!amount) - { - mechanicImmunityMask |= IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK; - - immuneInfo.SpellEffectImmune.insert(SPELL_EFFECT_KNOCK_BACK); - immuneInfo.SpellEffectImmune.insert(SPELL_EFFECT_KNOCK_BACK_DEST); - - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_DECREASE_SPEED); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_CONFUSE); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_FEAR); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT_2); - } - break; - } - case 878: // Whirlwind, Fog of Corruption, Determination - { - if (Id == 66092) // Determination - { - mechanicImmunityMask |= (1 << MECHANIC_SNARE) | (1 << MECHANIC_STUN) - | (1 << MECHANIC_DISORIENTED) | (1 << MECHANIC_FREEZE); - - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN); - immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_DECREASE_SPEED); - } - break; - } - default: - break; - } break; } case SPELL_AURA_MECHANIC_IMMUNITY: |