Updated diminishing returns

This commit is contained in:
hondacrx
2017-11-04 18:52:42 -04:00
parent 7272925732
commit 420d11b847
+112 -61
View File
@@ -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;
} }