Core/Spells: fixed Savage Defender aura script and fixed mastery bonus

* fixed some startup errors
This commit is contained in:
Ovahlord committed 2018-07-22 16:53:01 +02:00
1 parent 8c0ae9392d
commit 6d706dfb92
3 files changed
+33 -83

No files matched your search

+20 -45
View File
@@ -103,7 +103,8 @@ enum DruidSpellIconIds
SPELL_ICON_ID_NATURES_BOUNTY = 197,
SPELL_ICON_ID_DREAMSTATE = 2255,
SPELL_ICON_ID_GLYPH_OF_INNERVATE = 62,
SPELL_ICON_ID_EUPHORIA = 4431
SPELL_ICON_ID_EUPHORIA = 4431,
SPELL_ICON_ID_SAVAGE_DEFENDER = 146,
};
enum MiscSpells
@@ -128,7 +129,7 @@ class spell_dru_berserk : public AuraScript
void Register() override
{
AfterEffectApply += AuraEffectApplyFn(spell_dru_berserk::HandleEffectApply, EFFECT_1, SPELL_AURA_ADD_FLAT_MODIFIER, AURA_EFFECT_HANDLE_REAL);
AfterEffectApply += AuraEffectApplyFn(spell_dru_berserk::HandleEffectApply, EFFECT_1, SPELL_AURA_ADD_PCT_MODIFIER, AURA_EFFECT_HANDLE_REAL);
}
};
@@ -892,53 +893,27 @@ class spell_dru_rip : public SpellScriptLoader
};
// 62606 - Savage Defense
class spell_dru_savage_defense : public SpellScriptLoader
class spell_dru_savage_defense : public AuraScript
{
public:
spell_dru_savage_defense() : SpellScriptLoader("spell_dru_savage_defense") { }
PrepareAuraScript(spell_dru_savage_defense);
class spell_dru_savage_defense_AuraScript : public AuraScript
{
PrepareAuraScript(spell_dru_savage_defense_AuraScript);
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
{
PreventDefaultAction();
Unit* target = GetTarget();
public:
spell_dru_savage_defense_AuraScript()
{
absorbPct = 0;
}
uint32 absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue(target);
if (AuraEffect* masteryAurEff = target->GetDummyAuraEffect(SPELLFAMILY_HUNTER, SPELL_ICON_ID_SAVAGE_DEFENDER, EFFECT_0)) // no idea why hunter...
absorbPct += masteryAurEff->GetAmount();
private:
uint32 absorbPct;
int32 amount = uint32(CalculatePct(GetTarget()->GetTotalAttackPowerValue(BASE_ATTACK), absorbPct));
target->CastCustomSpell(GetSpellInfo()->Effects[aurEff->GetEffIndex()].TriggerSpell, SPELLVALUE_BASE_POINT0, amount, target, true);
}
bool Load() override
{
absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue(GetCaster());
return true;
}
void CalculateAmount(AuraEffect const* /*aurEff*/, int32 & amount, bool & /*canBeRecalculated*/)
{
// Set absorbtion amount to unlimited
amount = -1;
}
void Absorb(AuraEffect* aurEff, DamageInfo & /*dmgInfo*/, uint32 & absorbAmount)
{
absorbAmount = uint32(CalculatePct(GetTarget()->GetTotalAttackPowerValue(BASE_ATTACK), absorbPct));
aurEff->SetAmount(0);
}
void Register() override
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_savage_defense_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_dru_savage_defense_AuraScript::Absorb, EFFECT_0);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_dru_savage_defense_AuraScript();
}
void Register() override
{
OnEffectProc += AuraEffectProcFn(spell_dru_savage_defense::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
}
};
// 52610 - Savage Roar
@@ -1906,7 +1881,7 @@ void AddSC_druid_spell_scripts()
new spell_dru_predatory_strikes();
new spell_dru_rejuvenation();
new spell_dru_rip();
new spell_dru_savage_defense();
RegisterAuraScript(spell_dru_savage_defense);
new spell_dru_savage_roar();
new spell_dru_starfall_dummy();
new spell_dru_stampede();