From 4952e6032f9fc8981df48181ed3b2e431f8e5575 Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Sat, 13 Aug 2022 22:24:58 -0300 Subject: [PATCH] =?UTF-8?q?fix(Scripts/Misc):=20Lower=20Artorius=20damage?= =?UTF-8?q?=20treshold=20when=20he=20damages=20him=E2=80=A6=20(#12695)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(Scripts/Misc): Lower Artorius damage treshold when he damages himself & his dot shouldn't be affected by his enrage * Update SpellInfoCorrections.cpp --- src/server/game/Spells/SpellInfoCorrections.cpp | 7 +++++++ .../scripts/World/npc_stave_of_ancients.cpp | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/server/game/Spells/SpellInfoCorrections.cpp b/src/server/game/Spells/SpellInfoCorrections.cpp index c667daac3..4a46e8115 100644 --- a/src/server/game/Spells/SpellInfoCorrections.cpp +++ b/src/server/game/Spells/SpellInfoCorrections.cpp @@ -4341,6 +4341,13 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->Effects[EFFECT_0].TargetA = TARGET_UNIT_SUMMONER; }); + // Artorius Demonic Doom + ApplySpellFix({ 23298 }, [](SpellInfo* spellInfo) + { + spellInfo->AttributesEx4 |= SPELL_ATTR4_IGNORE_DAMAGE_TAKEN_MODIFIERS; + spellInfo->AttributesEx6 |= SPELL_ATTR6_IGNORE_CASTER_DAMAGE_MODIFIERS; + }); + for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i) { SpellInfo* spellInfo = mSpellInfoMap[i]; diff --git a/src/server/scripts/World/npc_stave_of_ancients.cpp b/src/server/scripts/World/npc_stave_of_ancients.cpp index e8d32856f..8ce88a0d5 100644 --- a/src/server/scripts/World/npc_stave_of_ancients.cpp +++ b/src/server/scripts/World/npc_stave_of_ancients.cpp @@ -394,6 +394,14 @@ public: DoMeleeAttackIfReady(); } + void DamageTaken(Unit* attacker, uint32& damage, DamageEffectType, SpellSchoolMask) override + { + if (attacker == me) + { + me->LowerPlayerDamageReq(damage); + } + } + void SpellHit(Unit* /*Caster*/, SpellInfo const* Spell) override { uint32 serpentStings[12] = { 1978, 13549, 13550, 13551, 13552, 13553, 13554, 13555, 25295, 27016, 49000, 49001 }; @@ -1173,6 +1181,14 @@ public: } } + void DamageTaken(Unit* attacker, uint32& damage, DamageEffectType, SpellSchoolMask) override + { + if (attacker == me) + { + me->LowerPlayerDamageReq(damage); + } + } + void ScheduleEncounterStart(ObjectGuid playerGUID) { PrepareForEncounter();