aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Spells/SpellMgr.cpp30
1 files changed, 27 insertions, 3 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index fbaf603b822..3234f573ec1 100755
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -101,8 +101,11 @@ DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const* spellproto,
}
case SPELLFAMILY_WARRIOR:
{
+ // Hamstring - limit duration to 10s in PvP
+ if (spellproto->SpellFamilyFlags[0] & 0x2)
+ return DIMINISHING_LIMITONLY;
// Improved Hamstring
- if (spellproto->AttributesEx3 & 0x80000 && spellproto->SpellIconID == 23)
+ else if (spellproto->AttributesEx3 & 0x80000 && spellproto->SpellIconID == 23)
return DIMINISHING_ROOT;
// Charge Stun (own diminishing)
else if (spellproto->SpellFamilyFlags[0] & 0x01000000)
@@ -114,6 +117,9 @@ DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const* spellproto,
// Death Coil
if (spellproto->SpellFamilyFlags[0] & 0x80000)
return DIMINISHING_HORROR;
+ // Curses/etc
+ else if ((spellproto->SpellFamilyFlags[0] & 0x80000000) || (spellproto->SpellFamilyFlags[1] & 0x200))
+ return DIMINISHING_LIMITONLY;
// Seduction
else if (spellproto->SpellFamilyFlags[1] & 0x10000000)
return DIMINISHING_FEAR;
@@ -138,6 +144,9 @@ DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const* spellproto,
// Nature's Grasp
else if (spellproto->SpellFamilyFlags[0] & 0x00000200)
return DIMINISHING_CONTROLLED_ROOT;
+ // Faerie Fire
+ else if (spellproto->SpellFamilyFlags[0] & 0x400)
+ return DIMINISHING_LIMITONLY;
break;
}
case SPELLFAMILY_ROGUE:
@@ -151,12 +160,18 @@ DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const* spellproto,
// 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;
break;
}
case SPELLFAMILY_HUNTER:
{
+ // Hunter's mark
+ if ((spellproto->SpellFamilyFlags[0] & 0x400) && spellproto->SpellIconID == 538)
+ return DIMINISHING_LIMITONLY;
// Scatter Shot (own diminishing)
- if ((spellproto->SpellFamilyFlags[0] & 0x40000) && spellproto->SpellIconID == 132)
+ 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)
@@ -171,8 +186,11 @@ DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const* spellproto,
}
case SPELLFAMILY_PALADIN:
{
+ // Judgement of Justice - limit duration to 10s in PvP
+ if (spellproto->SpellFamilyFlags[0] & 0x100000)
+ return DIMINISHING_LIMITONLY;
// Turn Evil
- if ((spellproto->SpellFamilyFlags[1] & 0x804000) && spellproto->SpellIconID == 309)
+ else if ((spellproto->SpellFamilyFlags[1] & 0x804000) && spellproto->SpellIconID == 309)
return DIMINISHING_FEAR;
break;
}
@@ -181,6 +199,9 @@ DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const* spellproto,
// Hungering Cold (no flags)
if (spellproto->SpellIconID == 2797)
return DIMINISHING_DISORIENT;
+ // Mark of Blood
+ else if ((spellproto->SpellFamilyFlags[0] & 0x10000000) && spellproto->SpellIconID == 2285)
+ return DIMINISHING_LIMITONLY;
break;
}
default:
@@ -225,6 +246,9 @@ DiminishingReturnsType GetDiminishingReturnsGroupType(DiminishingGroup group)
case DIMINISHING_CYCLONE:
case DIMINISHING_CHARGE:
return DRTYPE_ALL;
+ case DIMINISHING_LIMITONLY:
+ case DIMINISHING_NONE:
+ return DRTYPE_NONE;
default:
return DRTYPE_PLAYER;
}