diff options
author | treeston <treeston.mmoc@gmail.com> | 2016-04-16 01:44:25 +0200 |
---|---|---|
committer | treeston <treeston.mmoc@gmail.com> | 2016-04-16 01:44:42 +0200 |
commit | 75f7b5ae4baa4eeb8f6e28e2270536274bfecd4c (patch) | |
tree | 98168388e87012d5f457a2b6ba5708d4933394ee | |
parent | dc3327f9c5f80c36000356829159c060d916f62b (diff) | |
parent | 918b2fafae1ba39d3f3aa170441f36ca2d1269c5 (diff) |
Merge remote-tracking branch 'sirikfoll/geddon' into 3.3.5 (PR #16975)
-rw-r--r-- | sql/updates/world/2016_04_16_00_world.sql | 3 | ||||
-rw-r--r-- | src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp | 34 |
2 files changed, 36 insertions, 1 deletions
diff --git a/sql/updates/world/2016_04_16_00_world.sql b/sql/updates/world/2016_04_16_00_world.sql new file mode 100644 index 00000000000..9219a4ef316 --- /dev/null +++ b/sql/updates/world/2016_04_16_00_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_baron_geddon_inferno'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(19695, 'spell_baron_geddon_inferno'); diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp index 51bb314968d..ffec32c0619 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp @@ -27,6 +27,8 @@ EndScriptData */ #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "molten_core.h" +#include "SpellAuraEffects.h" +#include "SpellScript.h" enum Emotes { @@ -36,9 +38,10 @@ enum Emotes enum Spells { SPELL_INFERNO = 19695, + SPELL_INFERNO_DMG = 19698, SPELL_IGNITE_MANA = 19659, SPELL_LIVING_BOMB = 20475, - SPELL_ARMAGEDDON = 20479, + SPELL_ARMAGEDDON = 20478, }; enum Events @@ -119,7 +122,36 @@ class boss_baron_geddon : public CreatureScript } }; +class spell_baron_geddon_inferno : public SpellScriptLoader +{ + public: + spell_baron_geddon_inferno() : SpellScriptLoader("spell_baron_geddon_inferno") { } + + class spell_baron_geddon_inferno_AuraScript : public AuraScript + { + PrepareAuraScript(spell_baron_geddon_inferno_AuraScript); + + void OnPeriodic(AuraEffect const* aurEff) + { + PreventDefaultAction(); + int32 damageForTick[8] = { 500, 500, 1000, 1000, 2000, 2000, 3000, 5000 }; + GetTarget()->CastCustomSpell(SPELL_INFERNO_DMG, SPELLVALUE_BASE_POINT0, damageForTick[aurEff->GetTickNumber() - 1], (Unit*)nullptr, TRIGGERED_FULL_MASK, nullptr, aurEff); + } + + void Register() override + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_baron_geddon_inferno_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL); + } + }; + + AuraScript* GetAuraScript() const override + { + return new spell_baron_geddon_inferno_AuraScript(); + } +}; + void AddSC_boss_baron_geddon() { new boss_baron_geddon(); + new spell_baron_geddon_inferno(); } |