aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2016_04_08_01_world_2016_02_14_00_world.sql3
-rw-r--r--src/server/scripts/Spells/spell_druid.cpp32
2 files changed, 35 insertions, 0 deletions
diff --git a/sql/updates/world/2016_04_08_01_world_2016_02_14_00_world.sql b/sql/updates/world/2016_04_08_01_world_2016_02_14_00_world.sql
new file mode 100644
index 00000000000..f1f35431c54
--- /dev/null
+++ b/sql/updates/world/2016_04_08_01_world_2016_02_14_00_world.sql
@@ -0,0 +1,3 @@
+--
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (-33943, 33943, 40120);
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (-33943, "spell_dru_flight_form");
diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp
index f1d9b5e5c7c..4488561589f 100644
--- a/src/server/scripts/Spells/spell_druid.cpp
+++ b/src/server/scripts/Spells/spell_druid.cpp
@@ -1018,6 +1018,37 @@ class spell_dru_swift_flight_passive : public SpellScriptLoader
}
};
+// -33943 - Flight Form
+class spell_dru_flight_form : public SpellScriptLoader
+{
+ public:
+ spell_dru_flight_form() : SpellScriptLoader("spell_dru_flight_form") { }
+
+ class spell_dru_flight_form_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_dru_flight_form_SpellScript);
+
+ SpellCastResult CheckCast()
+ {
+ Unit* caster = GetCaster();
+ if (caster->IsInDisallowedMountForm())
+ return SPELL_FAILED_NOT_SHAPESHIFT;
+
+ return SPELL_CAST_OK;
+ }
+
+ void Register() override
+ {
+ OnCheckCast += SpellCheckCastFn(spell_dru_flight_form_SpellScript::CheckCast);
+ }
+ };
+
+ SpellScript* GetSpellScript() const override
+ {
+ return new spell_dru_flight_form_SpellScript();
+ }
+};
+
// 61391 - Typhoon
class spell_dru_typhoon : public SpellScriptLoader
{
@@ -1195,6 +1226,7 @@ void AddSC_druid_spell_scripts()
new spell_dru_stampede();
new spell_dru_survival_instincts();
new spell_dru_swift_flight_passive();
+ new spell_dru_flight_form();
new spell_dru_typhoon();
new spell_dru_t10_restoration_4p_bonus();
new spell_dru_wild_growth();