aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Northrend
diff options
context:
space:
mode:
authorDanVS <33371360+DanVS@users.noreply.github.com>2019-01-05 00:54:33 +0000
committerAokromes <Aokromes@users.noreply.github.com>2019-01-05 01:54:33 +0100
commit8051ff13dfcf3819b58adfcec1608c08dcbcd080 (patch)
treeeb9748ef4fcee4b45c6c419f4137d26f3c244d23 /src/server/scripts/Northrend
parent030f5d54d015f42a09c731c81135ab791b528f1c (diff)
Core/Scripts: Move some spells to scripts (#22332)
Diffstat (limited to 'src/server/scripts/Northrend')
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp118
1 files changed, 62 insertions, 56 deletions
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
index 58c51786c2c..ec013335208 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
@@ -690,64 +690,69 @@ class boss_four_horsemen_sir : public CreatureScript
}
};
-class spell_four_horsemen_mark : public SpellScriptLoader
-{
- public:
- spell_four_horsemen_mark() : SpellScriptLoader("spell_four_horsemen_mark") { }
-
- class spell_four_horsemen_mark_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_four_horsemen_mark_AuraScript);
+ class spell_four_horsemen_mark : public AuraScript
+ {
+ PrepareAuraScript(spell_four_horsemen_mark);
+
+ void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ if (Unit* caster = GetCaster())
+ {
+ int32 damage;
+ switch (GetStackAmount())
+ {
+ case 1:
+ damage = 0;
+ break;
+ case 2:
+ damage = 500;
+ break;
+ case 3:
+ damage = 1000;
+ break;
+ case 4:
+ damage = 1500;
+ break;
+ case 5:
+ damage = 4000;
+ break;
+ case 6:
+ damage = 12000;
+ break;
+ default:
+ damage = 20000 + 1000 * (GetStackAmount() - 7);
+ break;
+ }
+ if (damage)
+ {
+ CastSpellExtraArgs args(TRIGGERED_FULL_MASK);
+ args.AddSpellBP0(damage);
+ caster->CastSpell(GetTarget(), SPELL_MARK_DAMAGE, args);
+ }
+ }
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_four_horsemen_mark::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
+ }
+};
- void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
- {
- if (Unit* caster = GetCaster())
- {
- int32 damage;
- switch (GetStackAmount())
- {
- case 1:
- damage = 0;
- break;
- case 2:
- damage = 500;
- break;
- case 3:
- damage = 1000;
- break;
- case 4:
- damage = 1500;
- break;
- case 5:
- damage = 4000;
- break;
- case 6:
- damage = 12000;
- break;
- default:
- damage = 20000 + 1000 * (GetStackAmount() - 7);
- break;
- }
- if (damage)
- {
- CastSpellExtraArgs args(TRIGGERED_FULL_MASK);
- args.AddSpellBP0(damage);
- caster->CastSpell(GetTarget(), SPELL_MARK_DAMAGE, args);
- }
- }
- }
+ class spell_four_horsemen_consumption : public SpellScript
+ {
+ PrepareSpellScript(spell_four_horsemen_consumption);
- void Register() override
- {
- AfterEffectApply += AuraEffectApplyFn(spell_four_horsemen_mark_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
- }
- };
+ void HandleDamageCalc(SpellEffIndex /*effIndex*/)
+ {
+ uint32 damage = GetCaster()->GetMap()->IsHeroic() ? 4250 : 2750;
+ SetHitDamage(damage);
+ }
- AuraScript* GetAuraScript() const override
- {
- return new spell_four_horsemen_mark_AuraScript();
- }
-};
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_four_horsemen_consumption::HandleDamageCalc, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
+ }
+ };
void AddSC_boss_four_horsemen()
{
@@ -755,5 +760,6 @@ void AddSC_boss_four_horsemen()
new boss_four_horsemen_thane();
new boss_four_horsemen_lady();
new boss_four_horsemen_sir();
- new spell_four_horsemen_mark();
+ RegisterAuraScript(spell_four_horsemen_mark);
+ RegisterSpellScript(spell_four_horsemen_consumption);
}