aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/base/world_database.sql3
-rw-r--r--sql/updates/2011_01_08_0_world_spell_script_names.sql5
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp54
3 files changed, 62 insertions, 0 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql
index 98c75052c89..270b8ae0262 100644
--- a/sql/base/world_database.sql
+++ b/sql/base/world_database.sql
@@ -26896,6 +26896,9 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
-- Ulduar
( 62717, 'spell_ignis_slag_pot'),
( 63477, 'spell_ignis_slag_pot'),
+( 62521, 'spell_attuned_to_nature_dose_reduction'),
+( 62524, 'spell_attuned_to_nature_dose_reduction'),
+( 62525, 'spell_attuned_to_nature_dose_reduction'),
-- quest
( 8913, 'spell_q55_sacred_cleansing'),
( 17271, 'spell_q5206_test_fetid_skull'),
diff --git a/sql/updates/2011_01_08_0_world_spell_script_names.sql b/sql/updates/2011_01_08_0_world_spell_script_names.sql
new file mode 100644
index 00000000000..8d3e7197b48
--- /dev/null
+++ b/sql/updates/2011_01_08_0_world_spell_script_names.sql
@@ -0,0 +1,5 @@
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (62521,62524,62525);
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(62521,'spell_attuned_to_nature_dose_reduction'),
+(62524,'spell_attuned_to_nature_dose_reduction'),
+(62525,'spell_attuned_to_nature_dose_reduction');
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp
index d14dd47b2c0..0076ed9f55f 100644
--- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp
@@ -121,8 +121,62 @@ public:
};
+enum eSpells
+{
+ SPELL_ATTUNED_TO_NATURE_2_DOSE_REDUCTION = 62524,
+ SPELL_ATTUNED_TO_NATURE_10_DOSE_REDUCTION = 62525,
+ SPELL_ATTUNED_TO_NATURE_25_DOSE_REDUCTION = 62521,
+};
+
+class spell_attuned_to_nature_dose_reduction : public SpellScriptLoader
+{
+public:
+ spell_attuned_to_nature_dose_reduction() : SpellScriptLoader("spell_attuned_to_nature_dose_reduction") { }
+
+ class spell_attuned_to_nature_dose_reduction_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_attuned_to_nature_dose_reduction_SpellScript)
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ Unit * target = GetHitUnit();
+ SpellEntry const * m_spellInfo = GetSpellInfo();
+ switch (m_spellInfo->Id)
+ {
+ case SPELL_ATTUNED_TO_NATURE_2_DOSE_REDUCTION:
+ if (target->HasAura(GetEffectValue()))
+ for (uint8 n = 0; n < 2; n++)
+ target->RemoveAuraFromStack(GetEffectValue(), 0, AURA_REMOVE_BY_DEFAULT);
+ break;
+ case SPELL_ATTUNED_TO_NATURE_10_DOSE_REDUCTION:
+ if (target->HasAura(GetEffectValue()))
+ for (uint8 n = 0; n < 10; n++)
+ target->RemoveAuraFromStack(GetEffectValue(), 0, AURA_REMOVE_BY_DEFAULT);
+ break;
+ case SPELL_ATTUNED_TO_NATURE_25_DOSE_REDUCTION:
+ if (target->HasAura(GetEffectValue()))
+ for (uint8 n = 0; n < 25; n++)
+ target->RemoveAuraFromStack(GetEffectValue(), 0, AURA_REMOVE_BY_DEFAULT);
+ break;
+ default:
+ break;
+ }
+ }
+
+ void Register()
+ {
+ OnEffect += SpellEffectFn(spell_attuned_to_nature_dose_reduction_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript * GetSpellScript() const
+ {
+ return new spell_attuned_to_nature_dose_reduction_SpellScript();
+ }
+};
void AddSC_boss_freya()
{
new boss_freya();
+ new spell_attuned_to_nature_dose_reduction();
}