diff options
Diffstat (limited to 'src/server/game/Spells/SpellMgr.cpp')
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 472 |
1 files changed, 293 insertions, 179 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index bf036b4294d..02d3e2e2ea1 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -54,7 +54,7 @@ bool IsPartOfSkillLine(uint32 skillId, uint32 spellId) return false; } -DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const* spellproto, bool triggered) +DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const* spellproto) { if (spellproto->IsPositive()) return DIMINISHING_NONE; @@ -70,180 +70,336 @@ DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const* spellproto, { case SPELLFAMILY_GENERIC: { - // Pet charge effects (Infernal Awakening, Demon Charge) - if (spellproto->SpellVisual[0] == 2816 && spellproto->SpellIconID == 15) - return DIMINISHING_CONTROLLED_STUN; - // Frost Tomb - else if (spellproto->Id == 48400) - return DIMINISHING_NONE; - // Gnaw - else if (spellproto->Id == 47481) - return DIMINISHING_CONTROLLED_STUN; - // ToC Icehowl Arctic Breath - else if (spellproto->SpellVisual[0] == 14153) - return DIMINISHING_NONE; - // Black Plague - else if (spellproto->Id == 64155) - return DIMINISHING_NONE; - // Screams of the Dead (King Ymiron) - else if (spellproto->Id == 51750) - return DIMINISHING_NONE; + // Entrapment -- 135373 + if (spellproto->SpellIconID == 20 && spellproto->SpellVisual[0] == 39588) + return DIMINISHING_ROOT; + + // Intimidation -- 24394 + if (spellproto->SpellIconID == 166 && spellproto->SpellVisual[0] == 2816) + return DIMINISHING_STUN; + // Pulverize (Primal Earth Elemental) -- 118345 + if (spellproto->SpellIconID == 4507 && spellproto->SpellVisual[0] == 39877) + return DIMINISHING_STUN; + // Static Charge (Capacitor Totem) -- 118905 + if (spellproto->SpellIconID == 54 && spellproto->SpellVisual[0] == 24442) + return DIMINISHING_STUN; + // Remorseless Winter -- 115001 + if (spellproto->SpellIconID == 5744 && spellproto->SpellVisual[0] == 23514) + return DIMINISHING_STUN; + + // Gorefiend's Grasp -- 108199 + if (spellproto->SpellIconID == 5743 && spellproto->SpellVisual[0] == 28937) + return DIMINISHING_AOE_KNOCKBACK; break; } - // Event spells - case SPELLFAMILY_UNK1: - return DIMINISHING_NONE; case SPELLFAMILY_MAGE: { - // Frostbite - if (spellproto->SpellFamilyFlags[1] & 0x80000000) + // Frostjaw -- 102051 + if (spellproto->SpellFamilyFlags[2] & 0x40000) + return DIMINISHING_SILENCE; + + // Frost Nova -- 122 + if (spellproto->SpellFamilyFlags[0] & 0x40) return DIMINISHING_ROOT; - // Shattered Barrier - else if (spellproto->SpellVisual[0] == 12297) + // Ice Ward -- 111340 + if (spellproto->SpellFamilyFlags[0] & 0x80000 && spellproto->SpellFamilyFlags[2] & 0x2000) return DIMINISHING_ROOT; - // Deep Freeze - else if (spellproto->SpellIconID == 2939 && spellproto->SpellVisual[0] == 9963) - return DIMINISHING_CONTROLLED_STUN; - // Frost Nova / Freeze (Water Elemental) - else if (spellproto->SpellIconID == 193) - return DIMINISHING_CONTROLLED_ROOT; - // Dragon's Breath - else if (spellproto->SpellFamilyFlags[0] & 0x800000) - return DIMINISHING_DRAGONS_BREATH; + // Freeze (Water Elemental) -- 33395 + if (spellproto->SpellFamilyFlags[2] & 0x200) + return DIMINISHING_ROOT; + + // Deep Freeze -- 44572 + if (spellproto->SpellFamilyFlags[1] & 0x100000) + return DIMINISHING_STUN; + + // Dragon's Breath -- 31661 + if (spellproto->SpellFamilyFlags[0] & 0x800000) + return DIMINISHING_INCAPACITATE; + // Polymorph -- 118 + if (spellproto->SpellFamilyFlags[0] & 0x1000000) + return DIMINISHING_INCAPACITATE; + // Ring of Frost -- 82691 + if (spellproto->SpellFamilyFlags[2] & 0x40) + return DIMINISHING_INCAPACITATE; + // Ice Nova -- 157997 + if (spellproto->SpellFamilyFlags[2] & 0x800000) + return DIMINISHING_INCAPACITATE; break; } case SPELLFAMILY_WARRIOR: { - // Hamstring - limit duration to 10s in PvP + // Shockwave -- 132168 + if (spellproto->SpellFamilyFlags[1] & 0x8000) + return DIMINISHING_STUN; + // Storm Bolt -- 132169 + if (spellproto->SpellFamilyFlags[2] & 0x1000) + return DIMINISHING_STUN; + + // Intimidating Shout -- 5246 + if (spellproto->SpellFamilyFlags[0] & 0x40000) + return DIMINISHING_DISORIENT; + + // Hamstring -- 1715, 8 seconds in PvP (6.0) if (spellproto->SpellFamilyFlags[0] & 0x2) return DIMINISHING_LIMITONLY; - // Charge Stun (own diminishing) - else if (spellproto->SpellFamilyFlags[0] & 0x01000000) - return DIMINISHING_CHARGE; break; } case SPELLFAMILY_WARLOCK: { - // Curses/etc - if ((spellproto->SpellFamilyFlags[0] & 0x80000000) || (spellproto->SpellFamilyFlags[1] & 0x200)) - return DIMINISHING_LIMITONLY; - // Seduction - else if (spellproto->SpellFamilyFlags[1] & 0x10000000) - return DIMINISHING_FEAR; - // Sin and Punishment (Priest spell, don't ask) - else if (spellproto->SpellIconID == 1869) - return DIMINISHING_NONE; + // Mortal Coil -- 6789 + if (spellproto->SpellFamilyFlags[0] & 0x80000) + return DIMINISHING_INCAPACITATE; + // Banish -- 710 + if (spellproto->SpellFamilyFlags[1] & 0x8000000) + return DIMINISHING_INCAPACITATE; + // Blood Horror -- 137143, no flags (17986) + if (spellproto->SpellIconID == 6447 && spellproto->SpellVisual[0] == 26758) + return DIMINISHING_INCAPACITATE; + + // Fear -- 118699 + if (spellproto->SpellFamilyFlags[1] & 0x400) + return DIMINISHING_DISORIENT; + // Howl of Terror -- 5484 + if (spellproto->SpellFamilyFlags[1] & 0x8) + return DIMINISHING_DISORIENT; + + // Shadowfury -- 30283 + if (spellproto->SpellFamilyFlags[1] & 0x1000) + return DIMINISHING_STUN; + // Summon Infernal -- 22703 + if (spellproto->SpellFamilyFlags[0] & 0x1000) + return DIMINISHING_STUN; + break; + } + case SPELLFAMILY_WARLOCK_PET: + { + // Fellash -- 115770 + // Whiplash -- 6360 + if (spellproto->SpellFamilyFlags[0] & 0x8000000) + return DIMINISHING_AOE_KNOCKBACK; + + // Mesmerize (Shivarra pet) -- 115268 + // Seduction (Succubus pet) -- 6358 + if (spellproto->SpellFamilyFlags[0] & 0x2000000) + return DIMINISHING_DISORIENT; + + // Axe Toss (Felguard pet) -- 89766 + if (spellproto->SpellFamilyFlags[1] & 0x4) + return DIMINISHING_STUN; break; } case SPELLFAMILY_DRUID: { - // Pounce - if (spellproto->SpellFamilyFlags[0] & 0x20000) - return DIMINISHING_OPENING_STUN; - // Cyclone - else if (spellproto->SpellFamilyFlags[1] & 0x20) - return DIMINISHING_CYCLONE; - // Entangling Roots - // Nature's Grasp - else if (spellproto->SpellFamilyFlags[0] & 0x00000200) - return DIMINISHING_CONTROLLED_ROOT; - // Faerie Fire - else if (spellproto->SpellFamilyFlags[0] & 0x400) + // Maim -- 22570 + if (spellproto->SpellFamilyFlags[1] & 0x80) + return DIMINISHING_STUN; + // Mighty Bash -- 5211 + if (spellproto->SpellFamilyFlags[0] & 0x2000) + return DIMINISHING_STUN; + // Rake -- 163505 -- no flags on the stun, 20490 + if (spellproto->SpellIconID == 494 && spellproto->SpellVisual[0] == 38283) + return DIMINISHING_STUN; + + // Incapacitating Roar -- 99, no flags on the stun, 14 + if (spellproto->SpellIconID == 960 && spellproto->SpellVisual[0] == 38528) + return DIMINISHING_INCAPACITATE; + + // Cyclone -- 33786 + if (spellproto->SpellFamilyFlags[1] & 0x20) + return DIMINISHING_DISORIENT; + + // Glyph of Fae Silence -- 114238, no flags on the silence, 15035 + if (spellproto->SpellIconID == 957 && spellproto->SchoolMask == 8) + return DIMINISHING_SILENCE; + + // Typhoon -- 61391 + if (spellproto->SpellFamilyFlags[1] & 0x1000000) + return DIMINISHING_AOE_KNOCKBACK; + // Ursol's Vortex -- 127797, no flags on the effect, 16921 + if (spellproto->SpellIconID == 5784 && spellproto->SchoolMask == 8) + return DIMINISHING_AOE_KNOCKBACK; + + // Entangling Roots -- 339 + if (spellproto->SpellFamilyFlags[0] & 0x200) + return DIMINISHING_ROOT; + // Mass Entanglement -- 102359, no flags on the root, 13535 + if (spellproto->SpellIconID == 5782 && spellproto->SpellVisual[0] == 38269) + return DIMINISHING_ROOT; + + // Faerie Fire -- 770, 20 seconds in PvP (6.0) + if (spellproto->SpellFamilyFlags[0] & 0x400) return DIMINISHING_LIMITONLY; break; } case SPELLFAMILY_ROGUE: { - // Gouge + // Cheap Shot -- 1833 + if (spellproto->SpellFamilyFlags[0] & 0x400) + return DIMINISHING_STUN; + // Kidney Shot -- 408 + if (spellproto->SpellFamilyFlags[0] & 0x200000) + return DIMINISHING_STUN; + + // Gouge -- 1776 if (spellproto->SpellFamilyFlags[0] & 0x8) + return DIMINISHING_INCAPACITATE; + // Sap -- 6770 + if (spellproto->SpellFamilyFlags[0] & 0x80) + return DIMINISHING_INCAPACITATE; + + // Blind -- 2094 + if (spellproto->SpellFamilyFlags[0] & 0x1000000) return DIMINISHING_DISORIENT; - // Blind - else if (spellproto->SpellFamilyFlags[0] & 0x1000000) - return DIMINISHING_FEAR; - // Cheap Shot - else if (spellproto->SpellFamilyFlags[0] & 0x400) - return DIMINISHING_OPENING_STUN; - // Crippling poison - Limit to 10 seconds in PvP (No SpellFamilyFlags) - else if (spellproto->SpellIconID == 163) - return DIMINISHING_LIMITONLY; + + // Garrote -- 1330 + if (spellproto->SpellFamilyFlags[1] & 0x20000000) + return DIMINISHING_SILENCE; break; } case SPELLFAMILY_HUNTER: { - // Hunter's Mark - if ((spellproto->SpellFamilyFlags[0] & 0x400) && spellproto->SpellIconID == 538) - return DIMINISHING_LIMITONLY; - // Scatter Shot (own diminishing) - else if ((spellproto->SpellFamilyFlags[0] & 0x40000) && spellproto->SpellIconID == 132) - return DIMINISHING_SCATTER_SHOT; - // Entrapment (own diminishing) - else if (spellproto->SpellVisual[0] == 7484 && spellproto->SpellIconID == 20) - return DIMINISHING_ENTRAPMENT; - // Wyvern Sting mechanic is MECHANIC_SLEEP but the diminishing is DIMINISHING_DISORIENT - else if ((spellproto->SpellFamilyFlags[1] & 0x1000) && spellproto->SpellIconID == 1721) - return DIMINISHING_DISORIENT; - // Freezing Arrow - else if (spellproto->SpellFamilyFlags[0] & 0x8) - return DIMINISHING_DISORIENT; + // Glyph of Explosive Trap -- 149575 maybe? @todo + // return DIMINISHING_AOE_KNOCKBACK; + + // Charge (Tenacity pet) -- 53148, no flags (5526) + if (spellproto->SpellIconID == 1559 && spellproto->SpellVisual[0] == 39480) + return DIMINISHING_ROOT; + // Narrow Escape -- 136634, no flags (17964) + if (spellproto->SpellIconID == 3342 && spellproto->SchoolMask == 8) + return DIMINISHING_ROOT; + + // Binding Shot -- 117526, no flags (15581) + if (spellproto->SpellIconID == 4612 && spellproto->SpellVisual[0] == 6859) + return DIMINISHING_STUN; + + // Freezing Trap -- 3355 + if (spellproto->SpellFamilyFlags[0] & 0x8) + return DIMINISHING_INCAPACITATE; + // Wyvern Sting -- 19386 + if (spellproto->SpellFamilyFlags[1] & 0x1000) + return DIMINISHING_INCAPACITATE; break; } case SPELLFAMILY_PALADIN: { - // Judgement of Justice - limit duration to 10s in PvP - if (spellproto->SpellFamilyFlags[0] & 0x100000) - return DIMINISHING_LIMITONLY; - // Turn Evil - else if ((spellproto->SpellFamilyFlags[1] & 0x804000) && spellproto->SpellIconID == 309) - return DIMINISHING_FEAR; + // Repentance -- 20066 + if (spellproto->SpellFamilyFlags[0] & 0x4) + return DIMINISHING_INCAPACITATE; + + // Turn Evil -- 10326 + if (spellproto->SpellFamilyFlags[1] & 0x800000) + return DIMINISHING_DISORIENT; + + // Avenger's Shield -- 31935 + if (spellproto->SpellFamilyFlags[0] & 0x4000) + return DIMINISHING_SILENCE; + + // Fist of Justice -- 105593 + // Hammer of Justice -- 853 + if (spellproto->SpellFamilyFlags[0] & 0x800) + return DIMINISHING_STUN; + // Holy Wrath -- 119072 + if (spellproto->SpellFamilyFlags[1] & 0x200000) + return DIMINISHING_STUN; break; } case SPELLFAMILY_SHAMAN: { - // Storm, Earth and Fire - Earthgrab + // Hex -- 51514 + if (spellproto->SpellFamilyFlags[1] & 0x8000) + return DIMINISHING_INCAPACITATE; + + // Thunderstorm -- 51490 + if (spellproto->SpellFamilyFlags[1] & 0x2000) + return DIMINISHING_AOE_KNOCKBACK; + // Earthgrab Totem -- 64695 if (spellproto->SpellFamilyFlags[2] & 0x4000) - return DIMINISHING_NONE; + return DIMINISHING_ROOT; + // Frost Shock (with Frozen Power) -- 63685, no flags (6918) + if (spellproto->SpellIconID == 193 && spellproto->SpellVisual[0] == 39876) + return DIMINISHING_ROOT; break; } case SPELLFAMILY_DEATHKNIGHT: { - // Hungering Cold (no flags) - if (spellproto->SpellIconID == 2797) + // Strangulate -- 47476 + if (spellproto->SpellFamilyFlags[0] & 0x200) + return DIMINISHING_SILENCE; + + // Chains of Ice (with Chilblains) -- 96294, no flags (13020) + if (spellproto->SpellIconID == 180 && spellproto->SpellVisual[0] == 20135) + return DIMINISHING_ROOT; + + // Asphyxiate -- 108194 + if (spellproto->SpellFamilyFlags[2] & 0x100000) + return DIMINISHING_STUN; + // Gnaw (Ghoul) -- 91800, no flags (12511) + if (spellproto->SpellIconID == 3010 && spellproto->SpellVisual[0] == 38760) + return DIMINISHING_STUN; + // Monstrous Blow (Ghoul w/ Dark Transformation active) -- 91797, no flags (12510) + if (spellproto->SpellIconID == 15 && spellproto->SpellVisual[0] == 38761) + return DIMINISHING_STUN; + break; + } + case SPELLFAMILY_PRIEST: + { + // Glyph of Mind Blast -- 87194, no flags (10092) + if (spellproto->SpellIconID == 2114 && spellproto->SpellVisual[0] == 38927) + return DIMINISHING_ROOT; + // Void Tendrils -- 114404, no flags (15067) + if (spellproto->SpellIconID == 5816 && spellproto->SpellVisual[0] == 25199) + return DIMINISHING_ROOT; + + // Dominate Mind -- 605 + if (spellproto->SpellFamilyFlags[0] & 0x20000 && spellproto->SpellVisual[0] == 39068) + return DIMINISHING_INCAPACITATE; + // Holy Word: Chastise -- 88625 + if (spellproto->SpellFamilyFlags[2] & 0x20) + return DIMINISHING_INCAPACITATE; + // Psychic Horror -- 64044 + if (spellproto->SpellFamilyFlags[2] & 0x2000) + return DIMINISHING_INCAPACITATE; + + // Psychic Scream -- 8122 + if (spellproto->SpellFamilyFlags[0] & 0x10000) return DIMINISHING_DISORIENT; - // Mark of Blood - else if ((spellproto->SpellFamilyFlags[0] & 0x10000000) && spellproto->SpellIconID == 2285) - return DIMINISHING_LIMITONLY; + + // Silence -- 15487 + if (spellproto->SpellFamilyFlags[1] & 0x200000 && spellproto->SchoolMask == 32) + return DIMINISHING_SILENCE; + break; + } + case SPELLFAMILY_MONK: + { + // Disable -- 116706, no flags (15483) + if (spellproto->SpellIconID == 23 && spellproto->SpellVisual[0] == 39984) + return DIMINISHING_ROOT; + + // Charging Ox Wave -- 119392 + if (spellproto->SpellFamilyFlags[1] & 0x10000) + return DIMINISHING_STUN; + // Fists of Fury -- 120086 + if (spellproto->SpellFamilyFlags[1] & 0x800000 && !(spellproto->SpellFamilyFlags[2] & 0x8)) + return DIMINISHING_STUN; + // Leg Sweep -- 119381 + if (spellproto->SpellFamilyFlags[1] & 0x200) + return DIMINISHING_STUN; + + // Glyph of Breath of Fire -- 123393, no flags (16504) + if (spellproto->SpellIconID == 15 && spellproto->SpellVisual[0] == 25408) + return DIMINISHING_INCAPACITATE; + // Paralysis -- 115078 + if (spellproto->SpellFamilyFlags[2] & 0x800000) + return DIMINISHING_INCAPACITATE; + // Ring of Peace -- 137460, no flags (18006) + if (spellproto->SpellIconID == 7195 && spellproto->SpellVisual[0] == 39999) + return DIMINISHING_INCAPACITATE; break; } default: break; } - // Lastly - Set diminishing depending on mechanic - uint32 mechanic = spellproto->GetAllEffectsMechanicMask(); - if (mechanic & (1 << MECHANIC_CHARM)) - return DIMINISHING_MIND_CONTROL; - if (mechanic & (1 << MECHANIC_SILENCE)) - return DIMINISHING_SILENCE; - if (mechanic & (1 << MECHANIC_SLEEP)) - return DIMINISHING_SLEEP; - if (mechanic & ((1 << MECHANIC_SAPPED) | (1 << MECHANIC_POLYMORPH) | (1 << MECHANIC_SHACKLE))) - return DIMINISHING_DISORIENT; - // Mechanic Knockout, except Blast Wave - if (mechanic & (1 << MECHANIC_KNOCKOUT) && spellproto->SpellIconID != 292) - return DIMINISHING_DISORIENT; - if (mechanic & (1 << MECHANIC_DISARM)) - return DIMINISHING_DISARM; - if (mechanic & (1 << MECHANIC_FEAR)) - return DIMINISHING_FEAR; - if (mechanic & (1 << MECHANIC_STUN)) - return triggered ? DIMINISHING_STUN : DIMINISHING_CONTROLLED_STUN; - if (mechanic & (1 << MECHANIC_BANISH)) - return DIMINISHING_BANISH; - if (mechanic & (1 << MECHANIC_ROOT)) - return triggered ? DIMINISHING_ROOT : DIMINISHING_CONTROLLED_ROOT; - if (mechanic & (1 << MECHANIC_HORROR)) - return DIMINISHING_HORROR; - return DIMINISHING_NONE; } @@ -252,11 +408,7 @@ DiminishingReturnsType GetDiminishingReturnsGroupType(DiminishingGroup group) switch (group) { case DIMINISHING_TAUNT: - case DIMINISHING_CONTROLLED_STUN: case DIMINISHING_STUN: - case DIMINISHING_OPENING_STUN: - case DIMINISHING_CYCLONE: - case DIMINISHING_CHARGE: return DRTYPE_ALL; case DIMINISHING_LIMITONLY: case DIMINISHING_NONE: @@ -272,54 +424,40 @@ DiminishingLevels GetDiminishingReturnsMaxLevel(DiminishingGroup group) { case DIMINISHING_TAUNT: return DIMINISHING_LEVEL_TAUNT_IMMUNE; + case DIMINISHING_AOE_KNOCKBACK: + return DIMINISHING_LEVEL_2; default: return DIMINISHING_LEVEL_IMMUNE; } } -int32 GetDiminishingReturnsLimitDuration(DiminishingGroup group, SpellInfo const* spellproto) +int32 GetDiminishingReturnsLimitDuration(SpellInfo const* spellproto) { - if (!IsDiminishingReturnsGroupDurationLimited(group)) - return 0; - // Explicit diminishing duration switch (spellproto->SpellFamilyName) { case SPELLFAMILY_DRUID: { - // Faerie Fire - limit to 40 seconds in PvP (3.1) + // Faerie Fire - 20 seconds in PvP (6.0) if (spellproto->SpellFamilyFlags[0] & 0x400) - return 40 * IN_MILLISECONDS; + return 20 * IN_MILLISECONDS; break; } case SPELLFAMILY_HUNTER: { - // Wyvern Sting + // Binding Shot - 3 seconds in PvP (6.0) + if (spellproto->SpellIconID == 4612 && spellproto->SpellVisual[0] == 6859) + return 3 * IN_MILLISECONDS; + // Wyvern Sting - 6 seconds in PvP (6.0) if (spellproto->SpellFamilyFlags[1] & 0x1000) return 6 * IN_MILLISECONDS; - // Hunter's Mark - if (spellproto->SpellFamilyFlags[0] & 0x400) - return 30 * IN_MILLISECONDS; - break; - } - case SPELLFAMILY_PALADIN: - { - // Repentance - limit to 6 seconds in PvP - if (spellproto->SpellFamilyFlags[0] & 0x4) - return 6 * IN_MILLISECONDS; break; } - case SPELLFAMILY_WARLOCK: + case SPELLFAMILY_MONK: { - // Banish - limit to 6 seconds in PvP - if (spellproto->SpellFamilyFlags[1] & 0x8000000) - return 6 * IN_MILLISECONDS; - // Curse of Tongues - limit to 12 seconds in PvP - else if (spellproto->SpellFamilyFlags[2] & 0x800) - return 12 * IN_MILLISECONDS; - // Curse of Elements - limit to 120 seconds in PvP - else if (spellproto->SpellFamilyFlags[1] & 0x200) - return 120 * IN_MILLISECONDS; + // Paralysis - 4 seconds in PvP regardless of if they are facing you (6.0) + if (spellproto->SpellFamilyFlags[2] & 0x800000) + return 4 * IN_MILLISECONDS; break; } default: @@ -329,30 +467,6 @@ int32 GetDiminishingReturnsLimitDuration(DiminishingGroup group, SpellInfo const return 8 * IN_MILLISECONDS; } -bool IsDiminishingReturnsGroupDurationLimited(DiminishingGroup group) -{ - switch (group) - { - case DIMINISHING_BANISH: - case DIMINISHING_CONTROLLED_STUN: - case DIMINISHING_CONTROLLED_ROOT: - case DIMINISHING_CYCLONE: - case DIMINISHING_DISORIENT: - case DIMINISHING_ENTRAPMENT: - case DIMINISHING_FEAR: - case DIMINISHING_HORROR: - case DIMINISHING_MIND_CONTROL: - case DIMINISHING_OPENING_STUN: - case DIMINISHING_ROOT: - case DIMINISHING_STUN: - case DIMINISHING_SLEEP: - case DIMINISHING_LIMITONLY: - return true; - default: - return false; - } -} - SpellMgr::SpellMgr() { } SpellMgr::~SpellMgr() |