diff options
| author | DDuarte <dnpd.dd@gmail.com> | 2016-04-16 18:20:11 +0100 |
|---|---|---|
| committer | DDuarte <dnpd.dd@gmail.com> | 2016-04-16 18:20:11 +0100 |
| commit | 00da19ed9e227aa8978a6d7c702257d1870aced9 (patch) | |
| tree | 333576b0c56bd623c7d4a03950bde0f552c7edfd | |
| parent | 98a8f539b46c8b61471cc098ae3b84814fc3566f (diff) | |
Merge remote-tracking branch 'sirikfoll/geddon' into 3.3.5 (PR #16975)
(cherry picked from commit 75f7b5ae4baa4eeb8f6e28e2270536274bfecd4c)
| -rw-r--r-- | sql/updates/world/2016_04_16_01_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_01_2016_04_16_00_world.sql b/sql/updates/world/2016_04_16_01_2016_04_16_00_world.sql new file mode 100644 index 00000000000..9219a4ef316 --- /dev/null +++ b/sql/updates/world/2016_04_16_01_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(); } |
