diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 2 | ||||
-rwxr-xr-x | src/server/game/Spells/SpellMgr.cpp | 30 |
2 files changed, 28 insertions, 4 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 25af367685d..adfb0d67bfa 100755 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -1562,7 +1562,7 @@ void AuraEffect::HandleShapeshiftBoosts(Unit* target, bool apply) const // Survival of the Fittest if (AuraEffect const* aurEff = target->GetAuraEffect(SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE, SPELLFAMILY_DRUID, 961, 0)) { - int32 bp = 100 + aurEff->GetSpellInfo()->Effects[EFFECT_2].CalcValue(); + int32 bp = aurEff->GetSpellInfo()->Effects[EFFECT_2].CalcValue(); target->CastCustomSpell(target, 62069, &bp, NULL, NULL, true, 0, this); } break; 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; } |