diff options
author | Malcrom <malcromdev@gmail.com> | 2013-01-01 22:28:29 -0330 |
---|---|---|
committer | Malcrom <malcromdev@gmail.com> | 2013-01-01 22:28:29 -0330 |
commit | 1062a0b40f0d7000b7de5ca4df89afb94b13c40c (patch) | |
tree | cc925cf4b05eb4c0bddfdd12874be588eee47045 | |
parent | 56096b7704885de6685cd051a555b79e8093fd75 (diff) |
Core/Scripts: Added spell scripting for Commander Sarannis. Added Instance Template for The Botanica.
Thanks to Vincent Michael
3 files changed, 49 insertions, 0 deletions
diff --git a/sql/updates/world/2013_01_02_01_world_spell_script.sql b/sql/updates/world/2013_01_02_01_world_spell_script.sql new file mode 100644 index 00000000000..a839ca6dc7b --- /dev/null +++ b/sql/updates/world/2013_01_02_01_world_spell_script.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `spell_id`=34803; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(34803,'spell_commander_sarannis_summon_reinforcements'); diff --git a/sql/updates/world/2013_01_02_02_world_instance_template.sql b/sql/updates/world/2013_01_02_02_world_instance_template.sql new file mode 100644 index 00000000000..f63a2c3ba2e --- /dev/null +++ b/sql/updates/world/2013_01_02_02_world_instance_template.sql @@ -0,0 +1 @@ +UPDATE `instance_template` SET `script`='instance_the_botanica' WHERE `map`=553; diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp index f64276940aa..6b232a2ad17 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_commander_sarannis.cpp @@ -18,6 +18,7 @@ #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "the_botanica.h" +#include "SpellScript.h" enum Says { @@ -134,6 +135,50 @@ class boss_commander_sarannis : public CreatureScript } }; +Position const PosSummonReinforcements[4] = +{ + { 160.4483f, 287.6435f, -3.887904f, 2.3841f }, + { 153.4406f, 289.9929f, -4.736916f, 2.3841f }, + { 154.4137f, 292.8956f, -4.683603f, 2.3841f }, + { 157.1544f, 294.2599f, -4.726504f, 2.3841f } +}; + +enum Creatures +{ + NPC_SUMMONED_BLOODWARDER_MENDER = 20083, + NPC_SUMMONED_BLOODWARDER_RESERVIST = 20078 +}; + +class spell_commander_sarannis_summon_reinforcements : public SpellScriptLoader +{ + public: + spell_commander_sarannis_summon_reinforcements() : SpellScriptLoader("spell_commander_sarannis_summon_reinforcements") { } + + class spell_commander_sarannis_summon_reinforcements_SpellScript : public SpellScript + { + PrepareSpellScript(spell_commander_sarannis_summon_reinforcements_SpellScript); + + void HandleCast(SpellEffIndex /*effIndex*/) + { + GetCaster()->SummonCreature(NPC_SUMMONED_BLOODWARDER_MENDER, PosSummonReinforcements[0], TEMPSUMMON_CORPSE_DESPAWN); + GetCaster()->SummonCreature(NPC_SUMMONED_BLOODWARDER_RESERVIST, PosSummonReinforcements[1], TEMPSUMMON_CORPSE_DESPAWN); + GetCaster()->SummonCreature(NPC_SUMMONED_BLOODWARDER_RESERVIST, PosSummonReinforcements[2], TEMPSUMMON_CORPSE_DESPAWN); + if (GetCaster()->GetMap()->IsHeroic()) + GetCaster()->SummonCreature(NPC_SUMMONED_BLOODWARDER_RESERVIST, PosSummonReinforcements[3], TEMPSUMMON_CORPSE_DESPAWN); + } + + void Register() + { + OnEffectHitTarget += SpellEffectFn(spell_commander_sarannis_summon_reinforcements_SpellScript::HandleCast, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_commander_sarannis_summon_reinforcements_SpellScript(); + } +}; + void AddSC_boss_commander_sarannis() { new boss_commander_sarannis(); |