diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 2904d932e9c..fde20ab09ec 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -5635,6 +5635,23 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger } break; } + // Blessing of Ancient Kings (Val'anyr, Hammer of Ancient Kings) + case 64411: + { + basepoints0 = int32(CalculatePctN(damage, 15)); + if (AuraEffect* aurEff = pVictim->GetAuraEffect(64413, 0, GetGUID())) + { + // The shield can grow to a maximum size of 20,000 damage absorbtion + aurEff->SetAmount(std::max<int32>(aurEff->GetAmount() + basepoints0, 20000)); + + // Refresh and return to prevent replacing the aura + aurEff->GetBase()->RefreshDuration(); + return true; + } + target = pVictim; + triggered_spell_id = 64413; + break; + } } break; } @@ -8398,14 +8415,6 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig return false; break; } - // Blessing of Ancient Kings (Val'anyr, Hammer of Ancient Kings) - case 64411: - { - basepoints0 = int32(CalculatePctN(damage, 15)); - target = pVictim; - trigger_spell_id = 64413; - break; - } // Decimation case 63156: case 63158: |