aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_mage.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp
index eca01313d1d..70dce4eb7bc 100644
--- a/src/server/scripts/Spells/spell_mage.cpp
+++ b/src/server/scripts/Spells/spell_mage.cpp
@@ -22,6 +22,7 @@
*/
#include "ScriptMgr.h"
+#include "DB2Stores.h"
#include "GridNotifiers.h"
#include "ObjectAccessor.h"
#include "Pet.h"
@@ -51,6 +52,7 @@ enum MageSpells
SPELL_MAGE_DRAGONHAWK_FORM = 32818,
SPELL_MAGE_EVERWARM_SOCKS = 320913,
SPELL_MAGE_FINGERS_OF_FROST = 44544,
+ SPELL_MAGE_FIRE_BLAST = 108853,
SPELL_MAGE_FIRESTARTER = 205026,
SPELL_MAGE_FROST_NOVA = 122,
SPELL_MAGE_GIRAFFE_FORM = 32816,
@@ -564,6 +566,30 @@ class spell_mage_firestarter_dots : public AuraScript
}
};
+// 205029 - Flame On
+class spell_mage_flame_on : public AuraScript
+{
+ PrepareAuraScript(spell_mage_flame_on);
+
+ bool Validate(SpellInfo const* spellInfo) override
+ {
+ return ValidateSpellInfo({ SPELL_MAGE_FIRE_BLAST })
+ && sSpellCategoryStore.HasRecord(sSpellMgr->AssertSpellInfo(SPELL_MAGE_FIRE_BLAST, DIFFICULTY_NONE)->ChargeCategoryId)
+ && spellInfo->GetEffects().size() > EFFECT_2;
+ }
+
+ void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& canBeRecalculated)
+ {
+ canBeRecalculated = false;
+ amount = -GetPctOf(GetEffectInfo(EFFECT_2).CalcValue() * IN_MILLISECONDS, sSpellCategoryStore.AssertEntry(sSpellMgr->AssertSpellInfo(SPELL_MAGE_FIRE_BLAST, DIFFICULTY_NONE)->ChargeCategoryId)->ChargeRecoveryTime);
+ }
+
+ void Register() override
+ {
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_mage_flame_on::CalculateAmount, EFFECT_1, SPELL_AURA_CHARGE_RECOVERY_MULTIPLIER);
+ }
+};
+
// 11426 - Ice Barrier
class spell_mage_ice_barrier : public AuraScript
{
@@ -1205,6 +1231,7 @@ void AddSC_mage_spell_scripts()
RegisterAuraScript(spell_mage_fingers_of_frost);
RegisterSpellScript(spell_mage_firestarter);
RegisterAuraScript(spell_mage_firestarter_dots);
+ RegisterAuraScript(spell_mage_flame_on);
RegisterAuraScript(spell_mage_ice_barrier);
RegisterSpellScript(spell_mage_ice_block);
RegisterSpellScript(spell_mage_ice_lance);