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

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

View File

@@ -0,0 +1,9 @@
DELETE FROM `spell_script_names` WHERE `ScriptName` IN
('spell_flame_warden_lava_eruption',
'spell_omega_stance_spider_effect');
DELETE FROM `achievement_criteria_data` WHERE `ScriptName`= 'achievement_hate_that_song';
DELETE FROM `spell_proc` WHERE `SpellId` IN (62600);
INSERT INTO `spell_proc` (`SpellId`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `ProcFlags`, `SpellTypeMask`, `SpellPhaseMask`, `HitMask`, `AttributesMask`, `Cooldown`, `Charges`, `Chance`) VALUES
(62600, 0, 0, 0, 0, 0, 1, 2, 2, 32, 0, 0, 50);

View File

@@ -90,9 +90,6 @@ enum Events
enum Spells
{
// Flame Warden
SPELL_LAVA_ERUPTION_VISUAL = 97317,
// Anraphet
SPELL_DESTRUCTION_PROTOCOL = 77437,
SPELL_ALPHA_BEAMS = 76184,
@@ -103,7 +100,10 @@ enum Spells
// Omega Stance
SPELL_OMEGA_STANCE_SUMMON = 77106,
SPELL_OMEGA_STANCE = 75622,
SPELL_OMEGA_STANCE_SPIDER_TRIGGER = 77121
SPELL_OMEGA_STANCE_SPIDER_TRIGGER = 77121,
// Flame Warden
SPELL_LAVA_ERUPTION_VISUAL = 97317
};
enum Actions
@@ -592,39 +592,6 @@ public:
}
};
// 77273 Lava Eruption
class spell_flame_warden_lava_eruption : public SpellScriptLoader
{
public:
spell_flame_warden_lava_eruption() : SpellScriptLoader("spell_flame_warden_lava_eruption") { }
class spell_flame_warden_lava_eruption_SpellScript : public SpellScript
{
PrepareSpellScript(spell_flame_warden_lava_eruption_SpellScript);
void HandleScript(SpellEffIndex /*effIndex*/)
{
GetHitUnit()->RemoveAurasDueToSpell(GetEffectValue());
}
void OnTargetSelect(WorldObject*& target)
{
if (Unit* unit = target->ToUnit())
unit->CastSpell(nullptr, SPELL_LAVA_ERUPTION_VISUAL);
}
void Register() override
{
OnObjectTargetSelect += SpellObjectTargetSelectFn(spell_flame_warden_lava_eruption_SpellScript::OnTargetSelect, EFFECT_0, TARGET_DEST_TARGET_ENEMY);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_flame_warden_lava_eruption_SpellScript();
}
};
// 77333 Whirling Winds: This script handles Whirling Wind's movement.
class spell_whirling_winds_movement : public SpellScriptLoader
{
@@ -897,7 +864,6 @@ void AddSC_boss_anraphet()
new npc_brann_bronzebeard_anraphet();
new npc_alpha_beam();
new npc_omega_stance();
new spell_flame_warden_lava_eruption();
new spell_whirling_winds_movement();
new spell_anraphet_destruction_protocol();
new spell_anraphet_alpha_beams();

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();