aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2024_05_02_00_world.sql15
-rw-r--r--src/server/scripts/Spells/spell_evoker.cpp89
2 files changed, 92 insertions, 12 deletions
diff --git a/sql/updates/world/master/2024_05_02_00_world.sql b/sql/updates/world/master/2024_05_02_00_world.sql
new file mode 100644
index 00000000000..b36daf7053f
--- /dev/null
+++ b/sql/updates/world/master/2024_05_02_00_world.sql
@@ -0,0 +1,15 @@
+DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_evo_blessing_of_the_bronze';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(381732, 'spell_evo_blessing_of_the_bronze'),
+(381741, 'spell_evo_blessing_of_the_bronze'),
+(381746, 'spell_evo_blessing_of_the_bronze'),
+(381748, 'spell_evo_blessing_of_the_bronze'),
+(381749, 'spell_evo_blessing_of_the_bronze'),
+(381750, 'spell_evo_blessing_of_the_bronze'),
+(381751, 'spell_evo_blessing_of_the_bronze'),
+(381752, 'spell_evo_blessing_of_the_bronze'),
+(381753, 'spell_evo_blessing_of_the_bronze'),
+(381754, 'spell_evo_blessing_of_the_bronze'),
+(381756, 'spell_evo_blessing_of_the_bronze'),
+(381757, 'spell_evo_blessing_of_the_bronze'),
+(381758, 'spell_evo_blessing_of_the_bronze');
diff --git a/src/server/scripts/Spells/spell_evoker.cpp b/src/server/scripts/Spells/spell_evoker.cpp
index adb1794a7bc..485c082a1ee 100644
--- a/src/server/scripts/Spells/spell_evoker.cpp
+++ b/src/server/scripts/Spells/spell_evoker.cpp
@@ -32,18 +32,31 @@
enum EvokerSpells
{
- SPELL_EVOKER_BLAST_FURNACE = 375510,
- SPELL_EVOKER_ENERGIZING_FLAME = 400006,
- SPELL_EVOKER_FIRE_BREATH_DAMAGE = 357209,
- SPELL_EVOKER_GLIDE_KNOCKBACK = 358736,
- SPELL_EVOKER_HOVER = 358267,
- SPELL_EVOKER_LIVING_FLAME = 361469,
- SPELL_EVOKER_LIVING_FLAME_DAMAGE = 361500,
- SPELL_EVOKER_LIVING_FLAME_HEAL = 361509,
- SPELL_EVOKER_PERMEATING_CHILL_TALENT = 370897,
- SPELL_EVOKER_PYRE_DAMAGE = 357212,
- SPELL_EVOKER_SCOURING_FLAME = 378438,
- SPELL_EVOKER_SOAR_RACIAL = 369536
+ SPELL_EVOKER_BLAST_FURNACE = 375510,
+ SPELL_EVOKER_BLESSING_OF_THE_BRONZE_DK = 381732,
+ SPELL_EVOKER_BLESSING_OF_THE_BRONZE_DH = 381741,
+ SPELL_EVOKER_BLESSING_OF_THE_BRONZE_DRUID = 381746,
+ SPELL_EVOKER_BLESSING_OF_THE_BRONZE_EVOKER = 381748,
+ SPELL_EVOKER_BLESSING_OF_THE_BRONZE_HUNTER = 381749,
+ SPELL_EVOKER_BLESSING_OF_THE_BRONZE_MAGE = 381750,
+ SPELL_EVOKER_BLESSING_OF_THE_BRONZE_MONK = 381751,
+ SPELL_EVOKER_BLESSING_OF_THE_BRONZE_PALADIN = 381752,
+ SPELL_EVOKER_BLESSING_OF_THE_BRONZE_PRIEST = 381753,
+ SPELL_EVOKER_BLESSING_OF_THE_BRONZE_ROGUE = 381754,
+ SPELL_EVOKER_BLESSING_OF_THE_BRONZE_SHAMAN = 381756,
+ SPELL_EVOKER_BLESSING_OF_THE_BRONZE_WARLOCK = 381757,
+ SPELL_EVOKER_BLESSING_OF_THE_BRONZE_WARRIOR = 381758,
+ SPELL_EVOKER_ENERGIZING_FLAME = 400006,
+ SPELL_EVOKER_FIRE_BREATH_DAMAGE = 357209,
+ SPELL_EVOKER_GLIDE_KNOCKBACK = 358736,
+ SPELL_EVOKER_HOVER = 358267,
+ SPELL_EVOKER_LIVING_FLAME = 361469,
+ SPELL_EVOKER_LIVING_FLAME_DAMAGE = 361500,
+ SPELL_EVOKER_LIVING_FLAME_HEAL = 361509,
+ SPELL_EVOKER_PERMEATING_CHILL_TALENT = 370897,
+ SPELL_EVOKER_PYRE_DAMAGE = 357212,
+ SPELL_EVOKER_SCOURING_FLAME = 378438,
+ SPELL_EVOKER_SOAR_RACIAL = 369536
};
enum EvokerSpellLabels
@@ -67,6 +80,57 @@ class spell_evo_azure_strike : public SpellScript
}
};
+// 381732 - Blessing of the Bronze (Bronze)
+// 381741 - Blessing of the Bronze (Bronze)
+// 381746 - Blessing of the Bronze (Bronze)
+// 381748 - Blessing of the Bronze (Bronze)
+// 381749 - Blessing of the Bronze (Bronze)
+// 381750 - Blessing of the Bronze (Bronze)
+// 381751 - Blessing of the Bronze (Bronze)
+// 381752 - Blessing of the Bronze (Bronze)
+// 381753 - Blessing of the Bronze (Bronze)
+// 381754 - Blessing of the Bronze (Bronze)
+// 381756 - Blessing of the Bronze (Bronze)
+// 381757 - Blessing of the Bronze (Bronze)
+// 381758 - Blessing of the Bronze (Bronze)
+class spell_evo_blessing_of_the_bronze : public SpellScript
+{
+ void RemoveInvalidTargets(std::list<WorldObject*>& targets) const
+ {
+ targets.remove_if([&](WorldObject const* target)
+ {
+ Unit const* unitTarget = target->ToUnit();
+ if (!unitTarget)
+ return true;
+
+ switch (GetSpellInfo()->Id)
+ {
+ case SPELL_EVOKER_BLESSING_OF_THE_BRONZE_DK: return unitTarget->GetClass() != CLASS_DEATH_KNIGHT;
+ case SPELL_EVOKER_BLESSING_OF_THE_BRONZE_DH: return unitTarget->GetClass() != CLASS_DEMON_HUNTER;
+ case SPELL_EVOKER_BLESSING_OF_THE_BRONZE_DRUID: return unitTarget->GetClass() != CLASS_DRUID;
+ case SPELL_EVOKER_BLESSING_OF_THE_BRONZE_EVOKER: return unitTarget->GetClass() != CLASS_EVOKER;
+ case SPELL_EVOKER_BLESSING_OF_THE_BRONZE_HUNTER: return unitTarget->GetClass() != CLASS_HUNTER;
+ case SPELL_EVOKER_BLESSING_OF_THE_BRONZE_MAGE: return unitTarget->GetClass() != CLASS_MAGE;
+ case SPELL_EVOKER_BLESSING_OF_THE_BRONZE_MONK: return unitTarget->GetClass() != CLASS_MONK;
+ case SPELL_EVOKER_BLESSING_OF_THE_BRONZE_PALADIN: return unitTarget->GetClass() != CLASS_PALADIN;
+ case SPELL_EVOKER_BLESSING_OF_THE_BRONZE_PRIEST: return unitTarget->GetClass() != CLASS_PRIEST;
+ case SPELL_EVOKER_BLESSING_OF_THE_BRONZE_ROGUE: return unitTarget->GetClass() != CLASS_ROGUE;
+ case SPELL_EVOKER_BLESSING_OF_THE_BRONZE_SHAMAN: return unitTarget->GetClass() != CLASS_SHAMAN;
+ case SPELL_EVOKER_BLESSING_OF_THE_BRONZE_WARLOCK: return unitTarget->GetClass() != CLASS_WARLOCK;
+ case SPELL_EVOKER_BLESSING_OF_THE_BRONZE_WARRIOR: return unitTarget->GetClass() != CLASS_WARRIOR;
+ default:
+ break;
+ }
+ return true;
+ });
+ }
+
+ void Register() override
+ {
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_evo_blessing_of_the_bronze::RemoveInvalidTargets, EFFECT_ALL, TARGET_UNIT_CASTER_AREA_RAID);
+ }
+};
+
// 370455 - Charged Blast
class spell_evo_charged_blast : public AuraScript
{
@@ -302,6 +366,7 @@ class spell_evo_scouring_flame : public SpellScript
void AddSC_evoker_spell_scripts()
{
RegisterSpellScript(spell_evo_azure_strike);
+ RegisterSpellScript(spell_evo_blessing_of_the_bronze);
RegisterSpellScript(spell_evo_charged_blast);
RegisterSpellScript(spell_evo_fire_breath);
RegisterSpellScript(spell_evo_fire_breath_damage);