diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 03a9ac1cb..d420ed5a5 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -1692,8 +1692,26 @@ void Aura::TriggerSpell() // case 70017: break; // // Ice Tomb // case 70157: break; -// // Mana Barrier -// case 70842: break; + case 70842: // Mana Barrier + { + if (!triggerTarget || triggerTarget->getPowerType() != POWER_MANA) + return; + + int32 damage = triggerTarget->GetMaxHealth() - triggerTarget->GetHealth(); // IS >= 0 + if (damage == 0) // Already full health + return; + + if (triggerTarget->GetPower(POWER_MANA) < uint32(damage)) + { + damage = int32(triggerTarget->GetPower(POWER_MANA)); + triggerTarget->RemoveAurasDueToSpell(auraId); + } + + triggerTarget->DealHeal(triggerTarget, damage, auraSpellInfo); + triggerTarget->ModifyPower(POWER_MANA, -damage); + + return; + } // // Summon Timer: Suppresser // case 70912: break; // // Aura of Darkness diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 8afd51785..a514cbfbf 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "12027" + #define REVISION_NR "12028" #endif // __REVISION_NR_H__