mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-08 15:58:04 +00:00
refactor(Scripts/Northrend): spell scripts use registry macros (#20401)
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
--
|
||||||
|
UPDATE `spell_script_names` SET `ScriptName`='spell_voa_overcharge_aura' WHERE `spell_id`=64217 AND `ScriptName`='spell_voa_overcharge';
|
||||||
|
UPDATE `spell_script_names` SET `ScriptName`='spell_koralon_meteor_fists_aura' WHERE `spell_id` IN (66725,68161) AND `ScriptName`='spell_koralon_meteor_fists';
|
||||||
|
UPDATE `spell_script_names` SET `ScriptName`='spell_flame_warder_meteor_fists_aura' WHERE `spell_id` IN (66808,68160) AND `ScriptName`='spell_flame_warder_meteor_fists';
|
||||||
|
UPDATE `spell_script_names` SET `ScriptName`='spell_hos_dark_matter_aura' WHERE `spell_id`=51001 AND `ScriptName`='spell_hos_dark_matter';
|
||||||
@@ -254,39 +254,28 @@ public:
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_loken_pulsing_shockwave : public SpellScriptLoader
|
class spell_loken_pulsing_shockwave : public SpellScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareSpellScript(spell_loken_pulsing_shockwave);
|
||||||
spell_loken_pulsing_shockwave() : SpellScriptLoader("spell_loken_pulsing_shockwave") { }
|
|
||||||
|
|
||||||
class spell_loken_pulsing_shockwave_SpellScript : public SpellScript
|
void CalculateDamage(SpellEffIndex /*effIndex*/)
|
||||||
{
|
{
|
||||||
PrepareSpellScript(spell_loken_pulsing_shockwave_SpellScript);
|
if (!GetHitUnit())
|
||||||
|
return;
|
||||||
|
|
||||||
void CalculateDamage(SpellEffIndex /*effIndex*/)
|
float distance = GetCaster()->GetDistance2d(GetHitUnit());
|
||||||
{
|
if (distance > 1.0f)
|
||||||
if (!GetHitUnit())
|
SetHitDamage(int32(GetHitDamage() * distance));
|
||||||
return;
|
}
|
||||||
|
|
||||||
float distance = GetCaster()->GetDistance2d(GetHitUnit());
|
void Register() override
|
||||||
if (distance > 1.0f)
|
|
||||||
SetHitDamage(int32(GetHitDamage() * distance));
|
|
||||||
}
|
|
||||||
|
|
||||||
void Register() override
|
|
||||||
{
|
|
||||||
OnEffectHitTarget += SpellEffectFn(spell_loken_pulsing_shockwave_SpellScript::CalculateDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
|
||||||
{
|
{
|
||||||
return new spell_loken_pulsing_shockwave_SpellScript();
|
OnEffectHitTarget += SpellEffectFn(spell_loken_pulsing_shockwave::CalculateDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddSC_boss_loken()
|
void AddSC_boss_loken()
|
||||||
{
|
{
|
||||||
new boss_loken();
|
new boss_loken();
|
||||||
new spell_loken_pulsing_shockwave();
|
RegisterSpellScript(spell_loken_pulsing_shockwave);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -180,74 +180,57 @@ public:
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_krystallus_shatter : public SpellScriptLoader
|
class spell_krystallus_shatter : public SpellScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareSpellScript(spell_krystallus_shatter);
|
||||||
spell_krystallus_shatter() : SpellScriptLoader("spell_krystallus_shatter") { }
|
|
||||||
|
|
||||||
class spell_krystallus_shatter_SpellScript : public SpellScript
|
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||||
{
|
{
|
||||||
PrepareSpellScript(spell_krystallus_shatter_SpellScript);
|
return ValidateSpellInfo({ SPELL_SHATTER_EFFECT });
|
||||||
|
}
|
||||||
|
|
||||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||||
{
|
|
||||||
if (Unit* target = GetHitUnit())
|
|
||||||
{
|
|
||||||
target->RemoveAurasDueToSpell(GROUND_SLAM_STONED_EFFECT);
|
|
||||||
target->CastSpell((Unit*)nullptr, SPELL_SHATTER_EFFECT, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Register() override
|
|
||||||
{
|
|
||||||
OnEffectHitTarget += SpellEffectFn(spell_krystallus_shatter_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
|
||||||
{
|
{
|
||||||
return new spell_krystallus_shatter_SpellScript();
|
if (Unit* target = GetHitUnit())
|
||||||
|
{
|
||||||
|
target->RemoveAurasDueToSpell(GROUND_SLAM_STONED_EFFECT);
|
||||||
|
target->CastSpell((Unit*)nullptr, SPELL_SHATTER_EFFECT, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Register() override
|
||||||
|
{
|
||||||
|
OnEffectHitTarget += SpellEffectFn(spell_krystallus_shatter::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_krystallus_shatter_effect : public SpellScriptLoader
|
class spell_krystallus_shatter_effect : public SpellScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareSpellScript(spell_krystallus_shatter_effect);
|
||||||
spell_krystallus_shatter_effect() : SpellScriptLoader("spell_krystallus_shatter_effect") { }
|
|
||||||
|
|
||||||
class spell_krystallus_shatter_effect_SpellScript : public SpellScript
|
void CalculateDamage()
|
||||||
{
|
{
|
||||||
PrepareSpellScript(spell_krystallus_shatter_effect_SpellScript);
|
if (!GetHitUnit())
|
||||||
|
return;
|
||||||
|
|
||||||
void CalculateDamage()
|
float radius = GetSpellInfo()->Effects[EFFECT_0].CalcRadius(GetCaster());
|
||||||
{
|
if (!radius)
|
||||||
if (!GetHitUnit())
|
return;
|
||||||
return;
|
|
||||||
|
|
||||||
float radius = GetSpellInfo()->Effects[EFFECT_0].CalcRadius(GetCaster());
|
float distance = GetCaster()->GetDistance2d(GetHitUnit());
|
||||||
if (!radius)
|
if (distance > 1.0f)
|
||||||
return;
|
SetHitDamage(int32(GetHitDamage() * ((radius - distance) / radius)));
|
||||||
|
}
|
||||||
|
|
||||||
float distance = GetCaster()->GetDistance2d(GetHitUnit());
|
void Register() override
|
||||||
if (distance > 1.0f)
|
|
||||||
SetHitDamage(int32(GetHitDamage() * ((radius - distance) / radius)));
|
|
||||||
}
|
|
||||||
|
|
||||||
void Register() override
|
|
||||||
{
|
|
||||||
OnHit += SpellHitFn(spell_krystallus_shatter_effect_SpellScript::CalculateDamage);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
|
||||||
{
|
{
|
||||||
return new spell_krystallus_shatter_effect_SpellScript();
|
OnHit += SpellHitFn(spell_krystallus_shatter_effect::CalculateDamage);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddSC_boss_krystallus()
|
void AddSC_boss_krystallus()
|
||||||
{
|
{
|
||||||
new boss_krystallus();
|
new boss_krystallus();
|
||||||
new spell_krystallus_shatter();
|
RegisterSpellScript(spell_krystallus_shatter);
|
||||||
new spell_krystallus_shatter_effect();
|
RegisterSpellScript(spell_krystallus_shatter_effect);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -864,30 +864,24 @@ public:
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_hos_dark_matter : public SpellScriptLoader
|
class spell_hos_dark_matter_aura : public AuraScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareAuraScript(spell_hos_dark_matter_aura);
|
||||||
spell_hos_dark_matter() : SpellScriptLoader("spell_hos_dark_matter") { }
|
|
||||||
|
|
||||||
class spell_hos_dark_matter_AuraScript : public AuraScript
|
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||||
{
|
{
|
||||||
PrepareAuraScript(spell_hos_dark_matter_AuraScript);
|
return ValidateSpellInfo({ SPELL_DARK_MATTER_H, SPELL_DARK_MATTER });
|
||||||
|
}
|
||||||
|
|
||||||
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||||
{
|
|
||||||
if (Unit* caster = GetCaster())
|
|
||||||
caster->CastSpell(caster, caster->GetMap()->IsHeroic() ? SPELL_DARK_MATTER_H : SPELL_DARK_MATTER, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Register() override
|
|
||||||
{
|
|
||||||
OnEffectRemove += AuraEffectRemoveFn(spell_hos_dark_matter_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const override
|
|
||||||
{
|
{
|
||||||
return new spell_hos_dark_matter_AuraScript();
|
if (Unit* caster = GetCaster())
|
||||||
|
caster->CastSpell(caster, caster->GetMap()->IsHeroic() ? SPELL_DARK_MATTER_H : SPELL_DARK_MATTER, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Register() override
|
||||||
|
{
|
||||||
|
OnEffectRemove += AuraEffectRemoveFn(spell_hos_dark_matter_aura::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -897,5 +891,5 @@ void AddSC_brann_bronzebeard()
|
|||||||
new dark_rune_protectors();
|
new dark_rune_protectors();
|
||||||
new dark_rune_stormcaller();
|
new dark_rune_stormcaller();
|
||||||
new iron_golem_custodian();
|
new iron_golem_custodian();
|
||||||
new spell_hos_dark_matter();
|
RegisterSpellScript(spell_hos_dark_matter_aura);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -184,54 +184,48 @@ class boss_archavon : public CreatureScript
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 58941 - Rock Shards
|
// 58941 - Rock Shards
|
||||||
class spell_archavon_rock_shards : public SpellScriptLoader
|
class spell_archavon_rock_shards : public SpellScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareSpellScript(spell_archavon_rock_shards);
|
||||||
spell_archavon_rock_shards() : SpellScriptLoader("spell_archavon_rock_shards") { }
|
|
||||||
|
|
||||||
class spell_archavon_rock_shards_SpellScript : public SpellScript
|
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||||
|
{
|
||||||
|
return ValidateSpellInfo({ SPELL_ROCK_SHARDS_LEFT_HAND_VISUAL, SPELL_ROCK_SHARDS_RIGHT_HAND_VISUAL });
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleScript(SpellEffIndex effIndex)
|
||||||
{
|
{
|
||||||
PrepareSpellScript(spell_archavon_rock_shards_SpellScript);
|
PreventHitDefaultEffect(effIndex);
|
||||||
|
|
||||||
void HandleScript(SpellEffIndex effIndex)
|
Unit* caster = GetCaster();
|
||||||
|
Unit* target = GetHitUnit();
|
||||||
|
|
||||||
|
if (!caster || !target)
|
||||||
{
|
{
|
||||||
PreventHitDefaultEffect(effIndex);
|
return;
|
||||||
|
|
||||||
Unit* caster = GetCaster();
|
|
||||||
Unit* target = GetHitUnit();
|
|
||||||
|
|
||||||
if (!caster || !target)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Map* map = caster->GetMap();
|
|
||||||
if (!map)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
caster->CastSpell(target, SPELL_ROCK_SHARDS_LEFT_HAND_VISUAL, true);
|
|
||||||
caster->CastSpell(target, SPELL_ROCK_SHARDS_RIGHT_HAND_VISUAL, true);
|
|
||||||
|
|
||||||
uint32 spellId = map->Is25ManRaid() ? SPELL_ROCK_SHARDS_DAMAGE_25 : SPELL_ROCK_SHARDS_DAMAGE_10;
|
|
||||||
caster->CastSpell(target, spellId, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Register() override
|
Map* map = caster->GetMap();
|
||||||
|
if (!map)
|
||||||
{
|
{
|
||||||
OnEffectHitTarget += SpellEffectFn(spell_archavon_rock_shards_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
return;
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
caster->CastSpell(target, SPELL_ROCK_SHARDS_LEFT_HAND_VISUAL, true);
|
||||||
{
|
caster->CastSpell(target, SPELL_ROCK_SHARDS_RIGHT_HAND_VISUAL, true);
|
||||||
return new spell_archavon_rock_shards_SpellScript();
|
|
||||||
|
uint32 spellId = map->Is25ManRaid() ? SPELL_ROCK_SHARDS_DAMAGE_25 : SPELL_ROCK_SHARDS_DAMAGE_10;
|
||||||
|
caster->CastSpell(target, spellId, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Register() override
|
||||||
|
{
|
||||||
|
OnEffectHitTarget += SpellEffectFn(spell_archavon_rock_shards::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddSC_boss_archavon()
|
void AddSC_boss_archavon()
|
||||||
{
|
{
|
||||||
new boss_archavon();
|
new boss_archavon();
|
||||||
new spell_archavon_rock_shards();
|
RegisterSpellScript(spell_archavon_rock_shards);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -205,69 +205,52 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_voa_overcharge : public SpellScriptLoader
|
class spell_voa_overcharge_aura : public AuraScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareAuraScript(spell_voa_overcharge_aura);
|
||||||
spell_voa_overcharge() : SpellScriptLoader("spell_voa_overcharge") { }
|
|
||||||
|
|
||||||
class spell_voa_overcharge_AuraScript : public AuraScript
|
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||||
{
|
{
|
||||||
PrepareAuraScript(spell_voa_overcharge_AuraScript);
|
return ValidateSpellInfo({ SPELL_OVERCHARGED_BLAST });
|
||||||
|
}
|
||||||
|
|
||||||
void HandlePeriodicDummy(AuraEffect const* /*aurEff*/)
|
void HandlePeriodicDummy(AuraEffect const* /*aurEff*/)
|
||||||
|
{
|
||||||
|
Unit* target = GetTarget();
|
||||||
|
if (target->IsCreature() && GetAura()->GetStackAmount() >= 10)
|
||||||
{
|
{
|
||||||
Unit* target = GetTarget();
|
target->CastSpell(target, SPELL_OVERCHARGED_BLAST, true);
|
||||||
if (target->IsCreature() && GetAura()->GetStackAmount() >= 10)
|
Unit::Kill(target, target, false);
|
||||||
{
|
|
||||||
target->CastSpell(target, SPELL_OVERCHARGED_BLAST, true);
|
|
||||||
Unit::Kill(target, target, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
PreventDefaultAction();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Register() override
|
PreventDefaultAction();
|
||||||
{
|
}
|
||||||
OnEffectPeriodic += AuraEffectPeriodicFn(spell_voa_overcharge_AuraScript::HandlePeriodicDummy, EFFECT_2, SPELL_AURA_PERIODIC_DUMMY);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const override
|
void Register() override
|
||||||
{
|
{
|
||||||
return new spell_voa_overcharge_AuraScript();
|
OnEffectPeriodic += AuraEffectPeriodicFn(spell_voa_overcharge_aura::HandlePeriodicDummy, EFFECT_2, SPELL_AURA_PERIODIC_DUMMY);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_voa_lightning_nova : public SpellScriptLoader
|
class spell_voa_lightning_nova : public SpellScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareSpellScript(spell_voa_lightning_nova);
|
||||||
spell_voa_lightning_nova() : SpellScriptLoader("spell_voa_lightning_nova") { }
|
|
||||||
|
|
||||||
class spell_voa_lightning_nova_SpellScript : public SpellScript
|
void HandleOnHit()
|
||||||
{
|
{
|
||||||
PrepareSpellScript(spell_voa_lightning_nova_SpellScript);
|
int32 damage = 0;
|
||||||
|
if (Unit* target = GetHitUnit())
|
||||||
void HandleOnHit()
|
|
||||||
{
|
{
|
||||||
int32 damage = 0;
|
float dist = target->GetDistance(GetCaster());
|
||||||
if (Unit* target = GetHitUnit())
|
damage = int32(GetHitDamage() * (70.0f - std::min(70.0f, dist)) / 70.0f);
|
||||||
{
|
|
||||||
float dist = target->GetDistance(GetCaster());
|
|
||||||
damage = int32(GetHitDamage() * (70.0f - std::min(70.0f, dist)) / 70.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
SetHitDamage(damage);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Register() override
|
SetHitDamage(damage);
|
||||||
{
|
}
|
||||||
OnHit += SpellHitFn(spell_voa_lightning_nova_SpellScript::HandleOnHit);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
void Register() override
|
||||||
{
|
{
|
||||||
return new spell_voa_lightning_nova_SpellScript();
|
OnHit += SpellHitFn(spell_voa_lightning_nova::HandleOnHit);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -275,6 +258,6 @@ void AddSC_boss_emalon()
|
|||||||
{
|
{
|
||||||
new boss_emalon();
|
new boss_emalon();
|
||||||
|
|
||||||
new spell_voa_overcharge();
|
RegisterSpellScript(spell_voa_overcharge_aura);
|
||||||
new spell_voa_lightning_nova();
|
RegisterSpellScript(spell_voa_lightning_nova);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -165,101 +165,73 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_voa_flaming_cinder : public SpellScriptLoader
|
class spell_voa_flaming_cinder : public SpellScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareSpellScript(spell_voa_flaming_cinder);
|
||||||
spell_voa_flaming_cinder() : SpellScriptLoader("spell_voa_flaming_cinder") { }
|
|
||||||
|
|
||||||
class spell_voa_flaming_cinder_SpellScript : public SpellScript
|
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||||
{
|
{
|
||||||
PrepareSpellScript(spell_voa_flaming_cinder_SpellScript);
|
return ValidateSpellInfo({ SPELL_FLAMING_CINDER_MISSILE });
|
||||||
|
}
|
||||||
|
|
||||||
void HandleDummy(SpellEffIndex /*effIndex*/)
|
void HandleDummy(SpellEffIndex /*effIndex*/)
|
||||||
{
|
|
||||||
if (Unit* target = GetHitUnit())
|
|
||||||
GetCaster()->CastSpell(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), SPELL_FLAMING_CINDER_MISSILE, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Register() override
|
|
||||||
{
|
|
||||||
OnEffectHitTarget += SpellEffectFn(spell_voa_flaming_cinder_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
|
||||||
{
|
{
|
||||||
return new spell_voa_flaming_cinder_SpellScript();
|
if (Unit* target = GetHitUnit())
|
||||||
|
GetCaster()->CastSpell(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), SPELL_FLAMING_CINDER_MISSILE, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Register() override
|
||||||
|
{
|
||||||
|
OnEffectHitTarget += SpellEffectFn(spell_voa_flaming_cinder::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_koralon_meteor_fists : public SpellScriptLoader
|
class spell_koralon_meteor_fists_aura : public AuraScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareAuraScript(spell_koralon_meteor_fists_aura);
|
||||||
spell_koralon_meteor_fists() : SpellScriptLoader("spell_koralon_meteor_fists") { }
|
|
||||||
|
|
||||||
class spell_koralon_meteor_fists_AuraScript : public AuraScript
|
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||||
{
|
{
|
||||||
PrepareAuraScript(spell_koralon_meteor_fists_AuraScript);
|
return ValidateSpellInfo({ SPELL_METEOR_FISTS_DAMAGE });
|
||||||
|
}
|
||||||
|
|
||||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
void TriggerFists(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
|
||||||
{
|
|
||||||
return ValidateSpellInfo({ SPELL_METEOR_FISTS_DAMAGE });
|
|
||||||
}
|
|
||||||
|
|
||||||
void TriggerFists(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
|
|
||||||
{
|
|
||||||
PreventDefaultAction();
|
|
||||||
GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_METEOR_FISTS_DAMAGE, true, nullptr, aurEff);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Register() override
|
|
||||||
{
|
|
||||||
OnEffectProc += AuraEffectProcFn(spell_koralon_meteor_fists_AuraScript::TriggerFists, EFFECT_0, SPELL_AURA_DUMMY);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const override
|
|
||||||
{
|
{
|
||||||
return new spell_koralon_meteor_fists_AuraScript();
|
PreventDefaultAction();
|
||||||
|
GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_METEOR_FISTS_DAMAGE, true, nullptr, aurEff);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Register() override
|
||||||
|
{
|
||||||
|
OnEffectProc += AuraEffectProcFn(spell_koralon_meteor_fists_aura::TriggerFists, EFFECT_0, SPELL_AURA_DUMMY);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_flame_warder_meteor_fists : public SpellScriptLoader
|
class spell_flame_warder_meteor_fists_aura : public AuraScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareAuraScript(spell_flame_warder_meteor_fists_aura);
|
||||||
spell_flame_warder_meteor_fists() : SpellScriptLoader("spell_flame_warder_meteor_fists") { }
|
|
||||||
|
|
||||||
class spell_flame_warder_meteor_fists_AuraScript : public AuraScript
|
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||||
{
|
{
|
||||||
PrepareAuraScript(spell_flame_warder_meteor_fists_AuraScript);
|
return ValidateSpellInfo({ SPELL_FW_METEOR_FISTS_DAMAGE });
|
||||||
|
}
|
||||||
|
|
||||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
void TriggerFists(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
|
||||||
{
|
|
||||||
return ValidateSpellInfo({ SPELL_FW_METEOR_FISTS_DAMAGE });
|
|
||||||
}
|
|
||||||
|
|
||||||
void TriggerFists(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
|
|
||||||
{
|
|
||||||
PreventDefaultAction();
|
|
||||||
GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_FW_METEOR_FISTS_DAMAGE, true, nullptr, aurEff);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Register() override
|
|
||||||
{
|
|
||||||
OnEffectProc += AuraEffectProcFn(spell_flame_warder_meteor_fists_AuraScript::TriggerFists, EFFECT_0, SPELL_AURA_DUMMY);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const override
|
|
||||||
{
|
{
|
||||||
return new spell_flame_warder_meteor_fists_AuraScript();
|
PreventDefaultAction();
|
||||||
|
GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_FW_METEOR_FISTS_DAMAGE, true, nullptr, aurEff);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Register() override
|
||||||
|
{
|
||||||
|
OnEffectProc += AuraEffectProcFn(spell_flame_warder_meteor_fists_aura::TriggerFists, EFFECT_0, SPELL_AURA_DUMMY);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddSC_boss_koralon()
|
void AddSC_boss_koralon()
|
||||||
{
|
{
|
||||||
new boss_koralon();
|
new boss_koralon();
|
||||||
new spell_voa_flaming_cinder();
|
RegisterSpellScript(spell_voa_flaming_cinder);
|
||||||
new spell_koralon_meteor_fists();
|
RegisterSpellScript(spell_koralon_meteor_fists_aura);
|
||||||
new spell_flame_warder_meteor_fists();
|
RegisterSpellScript(spell_flame_warder_meteor_fists_aura);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user