Core/Spells: Added spellgroup support to HandleModCastingSpeed (#23592)

And fixed stack of Power Infusion, Bloodlust, Icy veins and Heroism.
This commit is contained in:
Keader
2019-07-24 08:31:34 -03:00
committed by GitHub
parent 8116c3cb66
commit 4c2f7df4f3
2 changed files with 19 additions and 1 deletions

View File

@@ -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);

View File

@@ -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);
}