aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/3.3.5/2019_07_24_00_world.sql11
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp9
2 files changed, 19 insertions, 1 deletions
diff --git a/sql/updates/world/3.3.5/2019_07_24_00_world.sql b/sql/updates/world/3.3.5/2019_07_24_00_world.sql
new file mode 100644
index 00000000000..97d47fd919c
--- /dev/null
+++ b/sql/updates/world/3.3.5/2019_07_24_00_world.sql
@@ -0,0 +1,11 @@
+-- Heroism/Bloodlust should not stack with Power Infusion
+DELETE FROM `spell_group` WHERE `id`=1122;
+INSERT INTO `spell_group` (`id`, `spell_id`) VALUES
+(1122,32182),
+(1122,2825),
+(1122,10060),
+(1122,12472);
+
+DELETE FROM `spell_group_stack_rules` WHERE `group_id`=1122;
+INSERT INTO `spell_group_stack_rules` (`group_id`, `stack_rule`) VALUES
+(1122,4);
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index ccfc442725f..d643235ed26 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -3168,7 +3168,7 @@ void AuraEffect::HandleAuraModSchoolImmunity(AuraApplication const* aurApp, uint
target->GetThreatManager().EvaluateSuppressed();
}
else
- {
+ {
// do not remove unit flag if there are more than this auraEffect of that kind on unit
if (target->HasAuraType(GetAuraType()))
return;
@@ -3901,6 +3901,13 @@ void AuraEffect::HandleModCastingSpeed(AuraApplication const* aurApp, uint8 mode
return;
}
+ int32 spellGroupVal = target->GetHighestExclusiveSameEffectSpellGroupValue(this, GetAuraType());
+ if (abs(spellGroupVal) >= abs(GetAmount()))
+ return;
+
+ if (spellGroupVal)
+ target->ApplyCastTimePercentMod(float(spellGroupVal), !apply);
+
target->ApplyCastTimePercentMod((float)GetAmount(), apply);
}