mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-18 00:18:43 +01:00
Core/Spells: spells with SPELL_ATTR1_NO_THREAT also causes no initial aggro
This commit is contained in:
@@ -2429,7 +2429,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
|
||||
|
||||
if (missInfo != SPELL_MISS_EVADE && !m_caster->IsFriendlyTo(unit) && (!m_spellInfo->IsPositive() || m_spellInfo->HasEffect(SPELL_EFFECT_DISPEL)))
|
||||
{
|
||||
m_caster->CombatStart(unit, !m_spellInfo->HasAttribute(SPELL_ATTR3_NO_INITIAL_AGGRO));
|
||||
m_caster->CombatStart(unit, m_spellInfo->HasInitialAggro());
|
||||
|
||||
if (!unit->IsStandState())
|
||||
unit->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
@@ -2535,7 +2535,7 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA
|
||||
if (m_caster->GetTypeId() == TYPEID_PLAYER)
|
||||
m_caster->ToPlayer()->UpdatePvP(true);
|
||||
}
|
||||
if (unit->IsInCombat() && !m_spellInfo->HasAttribute(SPELL_ATTR3_NO_INITIAL_AGGRO))
|
||||
if (unit->IsInCombat() && m_spellInfo->HasInitialAggro())
|
||||
{
|
||||
m_caster->SetInCombatState(unit->GetCombatTimer() > 0, unit);
|
||||
unit->getHostileRefManager().threatAssist(m_caster, 0.0f);
|
||||
@@ -4611,8 +4611,7 @@ void Spell::HandleThreatSpells()
|
||||
if (m_UniqueTargetInfo.empty())
|
||||
return;
|
||||
|
||||
if (m_spellInfo->HasAttribute(SPELL_ATTR1_NO_THREAT) ||
|
||||
m_spellInfo->HasAttribute(SPELL_ATTR3_NO_INITIAL_AGGRO))
|
||||
if (!m_spellInfo->HasInitialAggro())
|
||||
return;
|
||||
|
||||
float threat = 0.0f;
|
||||
@@ -4623,7 +4622,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
|
||||
|
||||
@@ -1180,6 +1180,11 @@ bool SpellInfo::IsAutoRepeatRangedSpell() const
|
||||
return HasAttribute(SPELL_ATTR2_AUTOREPEAT_FLAG);
|
||||
}
|
||||
|
||||
bool SpellInfo::HasInitialAggro() const
|
||||
{
|
||||
return !(HasAttribute(SPELL_ATTR1_NO_THREAT) || HasAttribute(SPELL_ATTR3_NO_INITIAL_AGGRO));
|
||||
}
|
||||
|
||||
bool SpellInfo::IsAffectedBySpellMods() const
|
||||
{
|
||||
return !HasAttribute(SPELL_ATTR3_NO_DONE_BONUS);
|
||||
|
||||
@@ -420,6 +420,7 @@ public:
|
||||
bool IsBreakingStealth() const;
|
||||
bool IsRangedWeaponSpell() const;
|
||||
bool IsAutoRepeatRangedSpell() const;
|
||||
bool HasInitialAggro() const;
|
||||
|
||||
bool IsAffectedBySpellMods() const;
|
||||
bool IsAffectedBySpellMod(SpellModifier const* mod) const;
|
||||
|
||||
@@ -2987,13 +2987,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
||||
case 36350: // They Must Burn Bomb Aura (self)
|
||||
spellInfo->Effects[EFFECT_0].TriggerSpell = 36325; // They Must Burn Bomb Drop (DND)
|
||||
break;
|
||||
case 49838: // Stop Time
|
||||
case 69438: // Sample Satisfaction
|
||||
case 69445: // Perfume Spritz
|
||||
case 69489: // Chocolate Sample
|
||||
case 69563: // Cologne Spritz
|
||||
spellInfo->AttributesEx3 |= SPELL_ATTR3_NO_INITIAL_AGGRO;
|
||||
break;
|
||||
case 61407: // Energize Cores
|
||||
case 62136: // Energize Cores
|
||||
case 54069: // Energize Cores
|
||||
|
||||
Reference in New Issue
Block a user