From be4d90404bb5d495a0db4a958855f64e0ce417eb Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Mon, 25 Dec 2023 03:58:29 -0300 Subject: [PATCH] feat(Core/Spells): Implement SPELL_ATTR0_CU_BYPASS_MECHANIC_IMMUNITY (#18056) --- src/server/game/Entities/Creature/Creature.cpp | 5 +++++ src/server/game/Spells/SpellInfo.h | 1 + 2 files changed, 6 insertions(+) diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index c761660eb..105723e48 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2192,6 +2192,11 @@ bool Creature::IsImmunedToSpell(SpellInfo const* spellInfo, Spell const* spell) if (!spellInfo) return false; + if (spellInfo->HasAttribute(SPELL_ATTR0_CU_BYPASS_MECHANIC_IMMUNITY)) + { + return false; + } + // Xinef: this should exclude self casts... // Spells that don't have effectMechanics. if (spellInfo->Mechanic > MECHANIC_NONE && HasMechanicTemplateImmunity(1 << (spellInfo->Mechanic - 1))) diff --git a/src/server/game/Spells/SpellInfo.h b/src/server/game/Spells/SpellInfo.h index 06450274f..238274fab 100644 --- a/src/server/game/Spells/SpellInfo.h +++ b/src/server/game/Spells/SpellInfo.h @@ -204,6 +204,7 @@ enum SpellCustomAttributes SPELL_ATTR0_CU_FORCE_SEND_CATEGORY_COOLDOWNS = 0x10000000, SPELL_ATTR0_CU_FORCE_AURA_SAVING = 0x20000800, SPELL_ATTR0_CU_ENCOUNTER_REWARD = 0x40000000, // pussywizard + SPELL_ATTR0_CU_BYPASS_MECHANIC_IMMUNITY = 0x80000000, SPELL_ATTR0_CU_NEGATIVE = SPELL_ATTR0_CU_NEGATIVE_EFF0 | SPELL_ATTR0_CU_NEGATIVE_EFF1 | SPELL_ATTR0_CU_NEGATIVE_EFF2, SPELL_ATTR0_CU_POSITIVE = SPELL_ATTR0_CU_POSITIVE_EFF0 | SPELL_ATTR0_CU_POSITIVE_EFF1 | SPELL_ATTR0_CU_POSITIVE_EFF2,