aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/3.3.5/2019_07_25_00_world_335.sql14
-rw-r--r--src/server/scripts/Spells/spell_priest.cpp26
2 files changed, 40 insertions, 0 deletions
diff --git a/sql/updates/world/3.3.5/2019_07_25_00_world_335.sql b/sql/updates/world/3.3.5/2019_07_25_00_world_335.sql
new file mode 100644
index 00000000000..04c1de08b90
--- /dev/null
+++ b/sql/updates/world/3.3.5/2019_07_25_00_world_335.sql
@@ -0,0 +1,14 @@
+--
+SET @GROUP_ID := 1123; -- Change with the proper ID if this is in use
+DELETE FROM `spell_group` WHERE `id`=@GROUP_ID AND `spell_id` IN (10060,12042);
+INSERT INTO `spell_group` (`id`,`spell_id`) VALUES
+(@GROUP_ID,10060), -- Priest - Power Infusion
+(@GROUP_ID,12042); -- Mage - Arcane Power
+
+DELETE FROM `spell_group_stack_rules` WHERE `group_id`=@GROUP_ID;
+INSERT INTO `spell_group_stack_rules` (`group_id`,`stack_rule`) VALUES
+(@GROUP_ID,1);
+
+DELETE FROM `spell_script_names` WHERE `spell_id`=10060 AND `ScriptName`='spell_pri_power_infusion';
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(10060,'spell_pri_power_infusion');
diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp
index 1d871b7615d..32fc158a888 100644
--- a/src/server/scripts/Spells/spell_priest.cpp
+++ b/src/server/scripts/Spells/spell_priest.cpp
@@ -93,6 +93,11 @@ enum PriestMisc
PRIEST_LIGHTWELL_NPC_6 = 31883
};
+enum MiscSpells
+{
+ SPELL_MAGE_ARCANE_POWER = 12042
+};
+
class PowerCheck
{
public:
@@ -1544,6 +1549,26 @@ class spell_pri_t10_heal_2p_bonus : public SpellScriptLoader
}
};
+// 10060 - Power Infusion
+class spell_pri_power_infusion : public SpellScript
+{
+ PrepareSpellScript(spell_pri_power_infusion);
+
+ SpellCastResult CheckCast()
+ {
+ if (Unit* target = GetExplTargetUnit())
+ if (target->HasAura(SPELL_MAGE_ARCANE_POWER))
+ return SPELL_FAILED_AURA_BOUNCED;
+
+ return SPELL_CAST_OK;
+ }
+
+ void Register() override
+ {
+ OnCheckCast += SpellCheckCastFn(spell_pri_power_infusion::CheckCast);
+ }
+};
+
void AddSC_priest_spell_scripts()
{
new spell_pri_aq_3p_bonus();
@@ -1576,4 +1601,5 @@ void AddSC_priest_spell_scripts()
new spell_pri_t3_4p_bonus();
new spell_pri_t5_heal_2p_bonus();
new spell_pri_t10_heal_2p_bonus();
+ RegisterSpellScript(spell_pri_power_infusion);
}