diff options
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 6 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 18 |
2 files changed, 21 insertions, 3 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index caeac1c73ea..7c3dfed4e2a 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -10757,6 +10757,12 @@ float Unit::ApplyEffectModifiers(SpellInfo const* spellProto, uint8 effect_index case 2: modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_EFFECT3, value); break; + case 3: + modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_EFFECT4, value); + break; + case 4: + modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_EFFECT5, value); + break; } } return value; diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index f7a87dddebe..dd90e10f7bb 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -924,6 +924,8 @@ void AuraEffect::ApplySpellMod(Unit* target, bool apply) case SPELLMOD_EFFECT1: case SPELLMOD_EFFECT2: case SPELLMOD_EFFECT3: + case SPELLMOD_EFFECT4: + case SPELLMOD_EFFECT5: { ObjectGuid guid = target->GetGUID(); Unit::AuraApplicationMap & auras = target->GetAppliedAuras(); @@ -936,7 +938,7 @@ void AuraEffect::ApplySpellMod(Unit* target, bool apply) { if (GetMiscValue() == SPELLMOD_ALL_EFFECTS) { - for (uint8 i = 0; i<MAX_SPELL_EFFECTS; ++i) + for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) { if (AuraEffect* aurEff = aura->GetEffect(i)) aurEff->RecalculateAmount(); @@ -952,9 +954,19 @@ void AuraEffect::ApplySpellMod(Unit* target, bool apply) if (AuraEffect* aurEff = aura->GetEffect(1)) aurEff->RecalculateAmount(); } - else //if (modOp == SPELLMOD_EFFECT3) + else if (GetMiscValue() == SPELLMOD_EFFECT3) { - if (AuraEffect* aurEff = aura->GetEffect(2)) + if (AuraEffect* aurEff = aura->GetEffect(2)) + aurEff->RecalculateAmount(); + } + else if (GetMiscValue() == SPELLMOD_EFFECT4) + { + if (AuraEffect* aurEff = aura->GetEffect(3)) + aurEff->RecalculateAmount(); + } + else if (GetMiscValue() == SPELLMOD_EFFECT5) + { + if (AuraEffect* aurEff = aura->GetEffect(4)) aurEff->RecalculateAmount(); } } |