diff options
author | Shauren <shauren.trinity@gmail.com> | 2015-03-08 17:36:44 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2015-03-08 17:36:44 +0100 |
commit | 75db12bf41e950e3f2093775c6b34aa59cef6c8a (patch) | |
tree | ce94109f93a2367b9c485317ea81ff079c54593e /src | |
parent | eb158e1847d41fa32378f4b98947ec5a88dbd1ae (diff) |
Core/Auras: Implemented SPELLMOD_EFFECT4 and SPELLMOD_EFFECT5
Diffstat (limited to 'src')
-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(); } } |