Core/Spells: fixed Savage Defender aura script and fixed mastery bonus
* fixed some startup errors
This commit is contained in:
1 parent
8c0ae9392d
commit
6d706dfb92
3 files changed
+33
-83
No files matched your search
@@ -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();
|
||||
|
||||
Reference in new issue
Block a user