Core/Unit: Move spell specific code from Unit::CalcAbsorbResist to AuraScripts.

This commit is contained in:
QAston committed 2010-12-30 02:03:46 +01:00
1 parent 51b46987c3
commit c8adcc95f9
18 files changed
+756 -291

No files matched your search

@@ -25,6 +25,41 @@
#include "ScriptPCH.h"
#include "SpellAuraEffects.h"
class spell_gen_absorb0_hitlimit1 : public SpellScriptLoader
{
public:
spell_gen_absorb0_hitlimit1() : SpellScriptLoader("spell_gen_absorb0_hitlimit1") { }
class spell_gen_absorb0_hitlimit1_AuraScript : public AuraScript
{
PrepareAuraScript(spell_gen_absorb0_hitlimit1_AuraScript);
uint32 limit;
bool Load()
{
// Max absorb stored in 1 dummy effect
limit = SpellMgr::CalculateSpellEffectAmount(GetSpellProto(), EFFECT_1);
return true;
}
void Absorb(AuraEffect * /*aurEff*/, DamageInfo & dmgInfo, uint32 & absorbAmount)
{
absorbAmount = std::min(limit, absorbAmount);
}
void Register()
{
OnEffectAbsorb += AuraEffectAbsorbFn(spell_gen_absorb0_hitlimit1_AuraScript::Absorb, EFFECT_0);
}
};
AuraScript *GetAuraScript() const
{
return new spell_gen_absorb0_hitlimit1_AuraScript();
}
};
// 41337 Aura of Anger
class spell_gen_aura_of_anger : public SpellScriptLoader
{
@@ -562,6 +597,7 @@ class spell_gen_shroud_of_death : public SpellScriptLoader
void AddSC_generic_spell_scripts()
{
new spell_gen_absorb0_hitlimit1();
new spell_gen_aura_of_anger();
new spell_gen_burn_brutallus();
new spell_gen_leeching_swarm();