aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2015-03-08 17:36:44 +0100
committerShauren <shauren.trinity@gmail.com>2015-03-08 17:36:44 +0100
commit75db12bf41e950e3f2093775c6b34aa59cef6c8a (patch)
treece94109f93a2367b9c485317ea81ff079c54593e /src
parenteb158e1847d41fa32378f4b98947ec5a88dbd1ae (diff)
Core/Auras: Implemented SPELLMOD_EFFECT4 and SPELLMOD_EFFECT5
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp6
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp18
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();
}
}