Updated diminishing returns
This commit is contained in:
+112
-61
@@ -1578,16 +1578,17 @@ namespace Game.Spells
|
|||||||
|
|
||||||
switch (Id)
|
switch (Id)
|
||||||
{
|
{
|
||||||
case 64803: // Entrapment
|
case 20549: // War Stomp (Racial - Tauren)
|
||||||
case 135373: // Entrapment
|
|
||||||
return DiminishingGroup.Root;
|
|
||||||
case 24394: // Intimidation
|
case 24394: // Intimidation
|
||||||
return DiminishingGroup.Stun;
|
|
||||||
case 118345: // Pulverize (Primal Earth Elemental)
|
case 118345: // Pulverize (Primal Earth Elemental)
|
||||||
return DiminishingGroup.Stun;
|
|
||||||
case 118905: // Static Charge (Capacitor Totem)
|
case 118905: // Static Charge (Capacitor Totem)
|
||||||
return DiminishingGroup.Stun;
|
return DiminishingGroup.Stun;
|
||||||
|
case 107079: // Quaking Palm
|
||||||
|
return DiminishingGroup.Incapacitate;
|
||||||
|
case 155145: // Arcane Torrent (Racial - Blood Elf)
|
||||||
|
return DiminishingGroup.Silence;
|
||||||
case 108199: // Gorefiend's Grasp
|
case 108199: // Gorefiend's Grasp
|
||||||
|
case 191244: // Sticky Bomb
|
||||||
return DiminishingGroup.AOEKnockback;
|
return DiminishingGroup.AOEKnockback;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -1600,24 +1601,13 @@ namespace Game.Spells
|
|||||||
break;
|
break;
|
||||||
case SpellFamilyNames.Mage:
|
case SpellFamilyNames.Mage:
|
||||||
{
|
{
|
||||||
// Frostjaw -- 102051
|
|
||||||
if (SpellFamilyFlags[2].HasAnyFlag(0x40000u))
|
|
||||||
return DiminishingGroup.Silence;
|
|
||||||
|
|
||||||
// Frost Nova -- 122
|
// Frost Nova -- 122
|
||||||
if (SpellFamilyFlags[0].HasAnyFlag(0x40u))
|
if (SpellFamilyFlags[0].HasAnyFlag(0x40u))
|
||||||
return DiminishingGroup.Root;
|
return DiminishingGroup.Root;
|
||||||
// Ice Ward -- 111340
|
|
||||||
if (SpellFamilyFlags[0].HasAnyFlag(0x80000u) && SpellFamilyFlags[2].HasAnyFlag(0x2000u))
|
|
||||||
return DiminishingGroup.Root;
|
|
||||||
// Freeze (Water Elemental) -- 33395
|
// Freeze (Water Elemental) -- 33395
|
||||||
if (SpellFamilyFlags[2].HasAnyFlag(0x200u))
|
if (SpellFamilyFlags[2].HasAnyFlag(0x200u))
|
||||||
return DiminishingGroup.Root;
|
return DiminishingGroup.Root;
|
||||||
|
|
||||||
// Deep Freeze -- 44572
|
|
||||||
if (SpellFamilyFlags[1].HasAnyFlag(0x100000u))
|
|
||||||
return DiminishingGroup.Stun;
|
|
||||||
|
|
||||||
// Dragon's Breath -- 31661
|
// Dragon's Breath -- 31661
|
||||||
if (SpellFamilyFlags[0].HasAnyFlag(0x800000u))
|
if (SpellFamilyFlags[0].HasAnyFlag(0x800000u))
|
||||||
return DiminishingGroup.Incapacitate;
|
return DiminishingGroup.Incapacitate;
|
||||||
@@ -1644,10 +1634,6 @@ namespace Game.Spells
|
|||||||
// Intimidating Shout -- 5246
|
// Intimidating Shout -- 5246
|
||||||
if (SpellFamilyFlags[0].HasAnyFlag(0x40000u))
|
if (SpellFamilyFlags[0].HasAnyFlag(0x40000u))
|
||||||
return DiminishingGroup.Disorient;
|
return DiminishingGroup.Disorient;
|
||||||
|
|
||||||
// Hamstring -- 1715, 8 seconds in PvP (6.0)
|
|
||||||
if (SpellFamilyFlags[0].HasAnyFlag(0x2u))
|
|
||||||
return DiminishingGroup.LimitOnly;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SpellFamilyNames.Warlock:
|
case SpellFamilyNames.Warlock:
|
||||||
@@ -1672,6 +1658,10 @@ namespace Game.Spells
|
|||||||
// Summon Infernal -- 22703
|
// Summon Infernal -- 22703
|
||||||
if (SpellFamilyFlags[0].HasAnyFlag(0x1000u))
|
if (SpellFamilyFlags[0].HasAnyFlag(0x1000u))
|
||||||
return DiminishingGroup.Stun;
|
return DiminishingGroup.Stun;
|
||||||
|
|
||||||
|
// 170995 -- Cripple
|
||||||
|
if (Id == 170995)
|
||||||
|
return DiminishingGroup.LimitOnly;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SpellFamilyNames.WarlockPet:
|
case SpellFamilyNames.WarlockPet:
|
||||||
@@ -1711,6 +1701,10 @@ namespace Game.Spells
|
|||||||
if (SpellFamilyFlags[1].HasAnyFlag(0x20u))
|
if (SpellFamilyFlags[1].HasAnyFlag(0x20u))
|
||||||
return DiminishingGroup.Disorient;
|
return DiminishingGroup.Disorient;
|
||||||
|
|
||||||
|
// Solar Beam -- 81261
|
||||||
|
if (Id == 81261)
|
||||||
|
return DiminishingGroup.Silence;
|
||||||
|
|
||||||
// Typhoon -- 61391
|
// Typhoon -- 61391
|
||||||
if (SpellFamilyFlags[1].HasAnyFlag(0x1000000u))
|
if (SpellFamilyFlags[1].HasAnyFlag(0x1000000u))
|
||||||
return DiminishingGroup.AOEKnockback;
|
return DiminishingGroup.AOEKnockback;
|
||||||
@@ -1724,14 +1718,13 @@ namespace Game.Spells
|
|||||||
// Mass Entanglement -- 102359
|
// Mass Entanglement -- 102359
|
||||||
if (SpellFamilyFlags[2].HasAnyFlag(0x4u))
|
if (SpellFamilyFlags[2].HasAnyFlag(0x4u))
|
||||||
return DiminishingGroup.Root;
|
return DiminishingGroup.Root;
|
||||||
|
|
||||||
// Faerie Fire -- 770, 20 seconds in PvP (6.0)
|
|
||||||
if (SpellFamilyFlags[0].HasAnyFlag(0x400u))
|
|
||||||
return DiminishingGroup.LimitOnly;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SpellFamilyNames.Rogue:
|
case SpellFamilyNames.Rogue:
|
||||||
{
|
{
|
||||||
|
// Between the Eyes -- 199804
|
||||||
|
if (SpellFamilyFlags[0].HasAnyFlag(0x800000u))
|
||||||
|
return DiminishingGroup.Stun;
|
||||||
// Cheap Shot -- 1833
|
// Cheap Shot -- 1833
|
||||||
if (SpellFamilyFlags[0].HasAnyFlag(0x400u))
|
if (SpellFamilyFlags[0].HasAnyFlag(0x400u))
|
||||||
return DiminishingGroup.Stun;
|
return DiminishingGroup.Stun;
|
||||||
@@ -1760,8 +1753,9 @@ namespace Game.Spells
|
|||||||
// Charge (Tenacity pet) -- 53148, no flags
|
// Charge (Tenacity pet) -- 53148, no flags
|
||||||
if (Id == 53148)
|
if (Id == 53148)
|
||||||
return DiminishingGroup.Root;
|
return DiminishingGroup.Root;
|
||||||
// Narrow Escape -- 136634, no flags
|
// Ranger's Net -- 200108
|
||||||
if (Id == 136634)
|
// Tracker's Net -- 212638
|
||||||
|
if (Id == 200108 || Id == 212638)
|
||||||
return DiminishingGroup.Root;
|
return DiminishingGroup.Root;
|
||||||
|
|
||||||
// Binding Shot -- 117526, no flags
|
// Binding Shot -- 117526, no flags
|
||||||
@@ -1774,6 +1768,17 @@ namespace Game.Spells
|
|||||||
// Wyvern Sting -- 19386
|
// Wyvern Sting -- 19386
|
||||||
if (SpellFamilyFlags[1].HasAnyFlag(0x1000u))
|
if (SpellFamilyFlags[1].HasAnyFlag(0x1000u))
|
||||||
return DiminishingGroup.Incapacitate;
|
return DiminishingGroup.Incapacitate;
|
||||||
|
|
||||||
|
// Bursting Shot -- 224729
|
||||||
|
if (SpellFamilyFlags[2].HasAnyFlag(0x40u))
|
||||||
|
return DiminishingGroup.Disorient;
|
||||||
|
// Scatter Shot -- 213691
|
||||||
|
if (SpellFamilyFlags[2].HasAnyFlag(0x8000u))
|
||||||
|
return DiminishingGroup.Disorient;
|
||||||
|
|
||||||
|
// Spider Sting -- 202933
|
||||||
|
if (Id == 202933)
|
||||||
|
return DiminishingGroup.Silence;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SpellFamilyNames.Paladin:
|
case SpellFamilyNames.Paladin:
|
||||||
@@ -1782,26 +1787,23 @@ namespace Game.Spells
|
|||||||
if (SpellFamilyFlags[0].HasAnyFlag(0x4u))
|
if (SpellFamilyFlags[0].HasAnyFlag(0x4u))
|
||||||
return DiminishingGroup.Incapacitate;
|
return DiminishingGroup.Incapacitate;
|
||||||
|
|
||||||
// Turn Evil -- 10326
|
// Blinding Light -- 105421
|
||||||
if (SpellFamilyFlags[1].HasAnyFlag(0x800000u))
|
if (Id == 105421)
|
||||||
return DiminishingGroup.Disorient;
|
return DiminishingGroup.Disorient;
|
||||||
|
|
||||||
// Avenger's Shield -- 31935
|
// Avenger's Shield -- 31935
|
||||||
if (SpellFamilyFlags[0].HasAnyFlag(0x4000u))
|
if (SpellFamilyFlags[0].HasAnyFlag(0x4000u))
|
||||||
return DiminishingGroup.Silence;
|
return DiminishingGroup.Silence;
|
||||||
|
|
||||||
// Fist of Justice -- 105593
|
|
||||||
// Hammer of Justice -- 853
|
// Hammer of Justice -- 853
|
||||||
if (SpellFamilyFlags[0].HasAnyFlag(0x800u))
|
if (SpellFamilyFlags[0].HasAnyFlag(0x800u))
|
||||||
return DiminishingGroup.Stun;
|
return DiminishingGroup.Stun;
|
||||||
// Holy Wrath -- 119072
|
|
||||||
if (SpellFamilyFlags[1].HasAnyFlag(0x200000u))
|
|
||||||
return DiminishingGroup.Stun;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SpellFamilyNames.Shaman:
|
case SpellFamilyNames.Shaman:
|
||||||
{
|
{
|
||||||
// Hex -- 51514
|
// Hex -- 51514
|
||||||
|
// Hex -- 196942 (Voodoo Totem)
|
||||||
if (SpellFamilyFlags[1].HasAnyFlag(0x8000u))
|
if (SpellFamilyFlags[1].HasAnyFlag(0x8000u))
|
||||||
return DiminishingGroup.Incapacitate;
|
return DiminishingGroup.Incapacitate;
|
||||||
|
|
||||||
@@ -1811,10 +1813,22 @@ namespace Game.Spells
|
|||||||
// Earthgrab Totem -- 64695
|
// Earthgrab Totem -- 64695
|
||||||
if (SpellFamilyFlags[2].HasAnyFlag(0x4000u))
|
if (SpellFamilyFlags[2].HasAnyFlag(0x4000u))
|
||||||
return DiminishingGroup.Root;
|
return DiminishingGroup.Root;
|
||||||
|
|
||||||
|
// Lightning Lasso -- 204437
|
||||||
|
if (SpellFamilyFlags[3].HasAnyFlag(0x2000000u))
|
||||||
|
return DiminishingGroup.Stun;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SpellFamilyNames.Deathknight:
|
case SpellFamilyNames.Deathknight:
|
||||||
{
|
{
|
||||||
|
// Chains of Ice -- 96294
|
||||||
|
if (Id == 96294)
|
||||||
|
return DiminishingGroup.Root;
|
||||||
|
|
||||||
|
// Blinding Sleet -- 207167
|
||||||
|
if (Id == 207167)
|
||||||
|
return DiminishingGroup.Disorient;
|
||||||
|
|
||||||
// Strangulate -- 47476
|
// Strangulate -- 47476
|
||||||
if (SpellFamilyFlags[0].HasAnyFlag(0x200u))
|
if (SpellFamilyFlags[0].HasAnyFlag(0x200u))
|
||||||
return DiminishingGroup.Silence;
|
return DiminishingGroup.Silence;
|
||||||
@@ -1828,18 +1842,25 @@ namespace Game.Spells
|
|||||||
// Monstrous Blow (Ghoul w/ Dark Transformation active) -- 91797
|
// Monstrous Blow (Ghoul w/ Dark Transformation active) -- 91797
|
||||||
if (Id == 91797)
|
if (Id == 91797)
|
||||||
return DiminishingGroup.Stun;
|
return DiminishingGroup.Stun;
|
||||||
|
// Winter is Coming -- 207171
|
||||||
|
if (Id == 207171)
|
||||||
|
return DiminishingGroup.Stun;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SpellFamilyNames.Priest:
|
case SpellFamilyNames.Priest:
|
||||||
{
|
{
|
||||||
// Dominate Mind -- 605
|
// Holy Word: Chastise -- 200200
|
||||||
|
if (SpellFamilyFlags[2].HasAnyFlag(0x20u) && GetSpellVisual() == 52021)
|
||||||
|
return DiminishingGroup.Stun;
|
||||||
|
// Mind Bomb -- 226943
|
||||||
|
if (Id == 226943)
|
||||||
|
return DiminishingGroup.Stun;
|
||||||
|
|
||||||
|
// Mind Control -- 605
|
||||||
if (SpellFamilyFlags[0].HasAnyFlag(0x20000u) && GetSpellVisual() == 39068)
|
if (SpellFamilyFlags[0].HasAnyFlag(0x20000u) && GetSpellVisual() == 39068)
|
||||||
return DiminishingGroup.Incapacitate;
|
return DiminishingGroup.Incapacitate;
|
||||||
// Holy Word: Chastise -- 88625
|
// Holy Word: Chastise -- 200196
|
||||||
if (SpellFamilyFlags[2].HasAnyFlag(0x20u))
|
if (SpellFamilyFlags[2].HasAnyFlag(0x20u) && GetSpellVisual() == 52019)
|
||||||
return DiminishingGroup.Incapacitate;
|
|
||||||
// Psychic Horror -- 64044
|
|
||||||
if (SpellFamilyFlags[2].HasAnyFlag(0x2000u))
|
|
||||||
return DiminishingGroup.Incapacitate;
|
return DiminishingGroup.Incapacitate;
|
||||||
|
|
||||||
// Psychic Scream -- 8122
|
// Psychic Scream -- 8122
|
||||||
@@ -1847,8 +1868,12 @@ namespace Game.Spells
|
|||||||
return DiminishingGroup.Disorient;
|
return DiminishingGroup.Disorient;
|
||||||
|
|
||||||
// Silence -- 15487
|
// Silence -- 15487
|
||||||
if (SpellFamilyFlags[1].HasAnyFlag(0x200000u) && SchoolMask == (SpellSchoolMask)32)
|
if (SpellFamilyFlags[1].HasAnyFlag(0x200000u) && GetSpellVisual() == 39025)
|
||||||
return DiminishingGroup.Silence;
|
return DiminishingGroup.Silence;
|
||||||
|
|
||||||
|
// Shining Force -- 204263
|
||||||
|
if (Id == 204263)
|
||||||
|
return DiminishingGroup.AOEKnockback;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SpellFamilyNames.Monk:
|
case SpellFamilyNames.Monk:
|
||||||
@@ -1857,9 +1882,6 @@ namespace Game.Spells
|
|||||||
if (Id == 116706)
|
if (Id == 116706)
|
||||||
return DiminishingGroup.Root;
|
return DiminishingGroup.Root;
|
||||||
|
|
||||||
// Charging Ox Wave -- 119392
|
|
||||||
if (SpellFamilyFlags[1].HasAnyFlag(0x10000u))
|
|
||||||
return DiminishingGroup.Stun;
|
|
||||||
// Fists of Fury -- 120086
|
// Fists of Fury -- 120086
|
||||||
if (SpellFamilyFlags[1].HasAnyFlag(0x800000u) && !SpellFamilyFlags[2].HasAnyFlag(0x8u))
|
if (SpellFamilyFlags[1].HasAnyFlag(0x800000u) && !SpellFamilyFlags[2].HasAnyFlag(0x8u))
|
||||||
return DiminishingGroup.Stun;
|
return DiminishingGroup.Stun;
|
||||||
@@ -1873,8 +1895,27 @@ namespace Game.Spells
|
|||||||
// Paralysis -- 115078
|
// Paralysis -- 115078
|
||||||
if (SpellFamilyFlags[2].HasAnyFlag(0x800000u))
|
if (SpellFamilyFlags[2].HasAnyFlag(0x800000u))
|
||||||
return DiminishingGroup.Incapacitate;
|
return DiminishingGroup.Incapacitate;
|
||||||
|
|
||||||
|
// Song of Chi-Ji -- 198909
|
||||||
|
if (Id == 198909)
|
||||||
|
return DiminishingGroup.Disorient;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case SpellFamilyNames.DemonHunter:
|
||||||
|
switch (Id)
|
||||||
|
{
|
||||||
|
case 179057: // Chaos Nova
|
||||||
|
case 211881: // Fel Eruption
|
||||||
|
case 200166: // Metamorphosis
|
||||||
|
case 205630: // Illidan's Grasp
|
||||||
|
return DiminishingGroup.Stun;
|
||||||
|
case 217832: // Imprison
|
||||||
|
case 221527: // Imprison
|
||||||
|
return DiminishingGroup.Incapacitate;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1915,30 +1956,40 @@ namespace Game.Spells
|
|||||||
// Explicit diminishing duration
|
// Explicit diminishing duration
|
||||||
switch (SpellFamilyName)
|
switch (SpellFamilyName)
|
||||||
{
|
{
|
||||||
case SpellFamilyNames.Druid:
|
case SpellFamilyNames.Mage:
|
||||||
{
|
// Dragon's Breath - 3 seconds in PvP
|
||||||
// Faerie Fire - 20 seconds in PvP (6.0)
|
if (SpellFamilyFlags[0].HasAnyFlag(0x800000u))
|
||||||
if (SpellFamilyFlags[0].HasAnyFlag(0x400u))
|
return 3 * Time.InMilliseconds;
|
||||||
return 20 * Time.InMilliseconds;
|
break;
|
||||||
break;
|
case SpellFamilyNames.Warlock:
|
||||||
}
|
// Cripple - 4 seconds in PvP
|
||||||
|
if (Id == 170995)
|
||||||
|
return 4 * Time.InMilliseconds;
|
||||||
|
break;
|
||||||
case SpellFamilyNames.Hunter:
|
case SpellFamilyNames.Hunter:
|
||||||
{
|
// Binding Shot - 3 seconds in PvP
|
||||||
// Binding Shot - 3 seconds in PvP (6.0)
|
if (Id == 117526)
|
||||||
if (Id == 117526)
|
return 3 * Time.InMilliseconds;
|
||||||
return 3 * Time.InMilliseconds;
|
|
||||||
// Wyvern Sting - 6 seconds in PvP (6.0)
|
// Wyvern Sting - 6 seconds in PvP
|
||||||
if (SpellFamilyFlags[1].HasAnyFlag(0x1000u))
|
if (SpellFamilyFlags[1].HasAnyFlag(0x1000u))
|
||||||
return 6 * Time.InMilliseconds;
|
return 6 * Time.InMilliseconds;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case SpellFamilyNames.Monk:
|
case SpellFamilyNames.Monk:
|
||||||
|
// Paralysis - 4 seconds in PvP regardless of if they are facing you
|
||||||
|
if (SpellFamilyFlags[2].HasAnyFlag(0x800000u))
|
||||||
|
return 4 * Time.InMilliseconds;
|
||||||
|
break;
|
||||||
|
case SpellFamilyNames.DemonHunter:
|
||||||
|
switch (Id)
|
||||||
{
|
{
|
||||||
// Paralysis - 4 seconds in PvP regardless of if they are facing you (6.0)
|
case 217832: // Imprison
|
||||||
if (SpellFamilyFlags[2].HasAnyFlag(0x800000u))
|
case 221527: // Imprison
|
||||||
return 4 * Time.InMilliseconds;
|
return 4 * Time.InMilliseconds;
|
||||||
break;
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user