From 122fd3ec742d768f29961aedbcfb3c183e8b98d2 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Thu, 19 Aug 2021 16:40:00 +0200 Subject: [PATCH] fix(Core/Spells): add SPELL_ATTR0_CU_NO_INITIAL_THREAT to some spells (#7291) - Closes #7241 --- src/server/game/Spells/Spell.cpp | 2 +- src/server/game/Spells/SpellMgr.cpp | 54 ++++++++++++++++++----------- 2 files changed, 35 insertions(+), 21 deletions(-) diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index e04428023..aeaa4ddfe 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -5078,7 +5078,7 @@ void Spell::HandleThreatSpells() threat += threatEntry->flatMod; } - else if (m_spellInfo->HasAttribute(SPELL_ATTR0_CU_NO_INITIAL_THREAT) == 0) + else if (!m_spellInfo->HasAttribute(SPELL_ATTR0_CU_NO_INITIAL_THREAT)) threat += m_spellInfo->SpellLevel; // past this point only multiplicative effects occur diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 26d4e2d8d..55068c860 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -2788,20 +2788,25 @@ void SpellMgr::LoadSpellCustomAttr() case SPELL_AURA_OBS_MOD_HEALTH: case SPELL_AURA_OBS_MOD_POWER: case SPELL_AURA_POWER_BURN: + case SPELL_AURA_TRACK_CREATURES: + case SPELL_AURA_MOD_RANGED_HASTE: + case SPELL_AURA_MOD_POSSESS_PET: + case SPELL_AURA_MOD_INVISIBILITY_DETECT: + case SPELL_AURA_WATER_BREATHING: spellInfo->AttributesCu |= SPELL_ATTR0_CU_NO_INITIAL_THREAT; break; } switch (spellInfo->Effects[j].ApplyAuraName) { - case SPELL_AURA_MOD_POSSESS: - case SPELL_AURA_MOD_CONFUSE: - case SPELL_AURA_MOD_CHARM: - case SPELL_AURA_AOE_CHARM: - case SPELL_AURA_MOD_FEAR: - case SPELL_AURA_MOD_STUN: - spellInfo->AttributesCu |= SPELL_ATTR0_CU_AURA_CC; - break; + case SPELL_AURA_MOD_POSSESS: + case SPELL_AURA_MOD_CONFUSE: + case SPELL_AURA_MOD_CHARM: + case SPELL_AURA_AOE_CHARM: + case SPELL_AURA_MOD_FEAR: + case SPELL_AURA_MOD_STUN: + spellInfo->AttributesCu |= SPELL_ATTR0_CU_AURA_CC; + break; } switch (spellInfo->Effects[j].Effect) @@ -2822,6 +2827,7 @@ void SpellMgr::LoadSpellCustomAttr() case SPELL_EFFECT_ENERGIZE_PCT: case SPELL_EFFECT_ENERGIZE: case SPELL_EFFECT_HEAL_MECHANICAL: + case SPELL_EFFECT_CREATE_ITEM: spellInfo->AttributesCu |= SPELL_ATTR0_CU_NO_INITIAL_THREAT; break; case SPELL_EFFECT_CHARGE: @@ -2937,18 +2943,23 @@ void SpellMgr::LoadSpellCustomAttr() switch (spellInfo->SpellFamilyName) { - case SPELLFAMILY_WARRIOR: - // Shout - if (spellInfo->SpellFamilyFlags[0] & 0x20000 || spellInfo->SpellFamilyFlags[1] & 0x20) - spellInfo->AttributesCu |= SPELL_ATTR0_CU_AURA_CC; - break; - case SPELLFAMILY_DRUID: - // Roar - if (spellInfo->SpellFamilyFlags[0] & 0x8) - spellInfo->AttributesCu |= SPELL_ATTR0_CU_AURA_CC; - break; - default: - break; + case SPELLFAMILY_WARRIOR: + // Shout + if (spellInfo->SpellFamilyFlags[0] & 0x20000 || spellInfo->SpellFamilyFlags[1] & 0x20) + spellInfo->AttributesCu |= SPELL_ATTR0_CU_AURA_CC; + break; + case SPELLFAMILY_DRUID: + // Roar + if (spellInfo->SpellFamilyFlags[0] & 0x8) + spellInfo->AttributesCu |= SPELL_ATTR0_CU_AURA_CC; + break; + case SPELLFAMILY_HUNTER: + // Aspects + if (spellInfo->GetCategory() == 47) + spellInfo->AttributesCu |= SPELL_ATTR0_CU_NO_INITIAL_THREAT; + break; + default: + break; } switch (spellInfo->Id) @@ -3206,6 +3217,9 @@ void SpellMgr::LoadSpellCustomAttr() case 43138: // North Fleet Reservist Kill Credit spellInfo->AttributesCu |= SPELL_ATTR0_CU_ALLOW_INFLIGHT_TARGET; break; + case 6197: // Eagle Eye + spellInfo->AttributesCu |= SPELL_ATTR0_CU_NO_INITIAL_THREAT; + break; // Xinef: NOT CUSTOM, cant add in DBC CORRECTION because i need to swap effects, too much work to do there // Envenom