chore(Core): Correct typo of Suppress. (#20229)

* Init.

* Adjust spacing.
This commit is contained in:
Benjamin Jackson
2024-10-17 16:09:53 -04:00
committed by GitHub
parent 9182e970d4
commit 4ad9d68f42
8 changed files with 57 additions and 57 deletions
+1 -1
View File
@@ -1998,7 +1998,7 @@ bool CollisionDetection::isPointInsideTriangle(
break; break;
default: default:
// This case is here to supress a warning on Linux // This case is here to suppress a warning on Linux
i = j = 0; i = j = 0;
debugAssertM(false, "Should not get here."); debugAssertM(false, "Should not get here.");
break; break;
+1 -1
View File
@@ -1062,7 +1062,7 @@ uint32 Unit::DealDamage(Unit* attacker, Unit* victim, uint32 damage, CleanDamage
{ {
if (spellProto && victim->CanHaveThreatList() && !victim->HasUnitState(UNIT_STATE_EVADE) && !victim->IsInCombatWith(attacker)) if (spellProto && victim->CanHaveThreatList() && !victim->HasUnitState(UNIT_STATE_EVADE) && !victim->IsInCombatWith(attacker))
{ {
victim->CombatStart(attacker, !(spellProto->AttributesEx3 & SPELL_ATTR3_SUPRESS_TARGET_PROCS)); victim->CombatStart(attacker, !(spellProto->AttributesEx3 & SPELL_ATTR3_SUPPRESS_TARGET_PROCS));
} }
victim->AddThreat(attacker, float(damage), damageSchoolMask, spellProto); victim->AddThreat(attacker, float(damage), damageSchoolMask, spellProto);
+9 -9
View File
@@ -2677,7 +2677,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
CallScriptBeforeHitHandlers(missInfo); CallScriptBeforeHitHandlers(missInfo);
//Spells with this flag cannot trigger if effect is casted on self //Spells with this flag cannot trigger if effect is casted on self
bool canEffectTrigger = !m_spellInfo->HasAttribute(SPELL_ATTR3_SUPRESS_CASTER_PROCS) && unitTarget->CanProc() && (CanExecuteTriggersOnHit(mask) || missInfo == SPELL_MISS_IMMUNE2); bool canEffectTrigger = !m_spellInfo->HasAttribute(SPELL_ATTR3_SUPPRESS_CASTER_PROCS) && unitTarget->CanProc() && (CanExecuteTriggersOnHit(mask) || missInfo == SPELL_MISS_IMMUNE2);
bool reflectedSpell = missInfo == SPELL_MISS_REFLECT; bool reflectedSpell = missInfo == SPELL_MISS_REFLECT;
Unit* spellHitTarget = nullptr; Unit* spellHitTarget = nullptr;
@@ -2890,7 +2890,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
m_triggeredByAuraSpell.effectIndex, this, &dmgInfo); m_triggeredByAuraSpell.effectIndex, this, &dmgInfo);
if (caster->IsPlayer() && m_spellInfo->HasAttribute(SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT) == 0 && if (caster->IsPlayer() && m_spellInfo->HasAttribute(SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT) == 0 &&
m_spellInfo->HasAttribute(SPELL_ATTR4_SUPRESS_WEAPON_PROCS) == 0 && (m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_MELEE || m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_RANGED)) m_spellInfo->HasAttribute(SPELL_ATTR4_SUPPRESS_WEAPON_PROCS) == 0 && (m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_MELEE || m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_RANGED))
caster->ToPlayer()->CastItemCombatSpell(unitTarget, m_attackType, procVictim, procEx); caster->ToPlayer()->CastItemCombatSpell(unitTarget, m_attackType, procVictim, procEx);
} }
@@ -2912,7 +2912,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
// Xinef: eg. rogue poisons can proc off cheap shot, etc. so this block should be here also // Xinef: eg. rogue poisons can proc off cheap shot, etc. so this block should be here also
// Xinef: ofc count only spells that HIT the target, little hack used to fool the system // Xinef: ofc count only spells that HIT the target, little hack used to fool the system
if ((procEx & PROC_EX_NORMAL_HIT || procEx & PROC_EX_CRITICAL_HIT) && caster->IsPlayer() && m_spellInfo->HasAttribute(SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT) == 0 && if ((procEx & PROC_EX_NORMAL_HIT || procEx & PROC_EX_CRITICAL_HIT) && caster->IsPlayer() && m_spellInfo->HasAttribute(SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT) == 0 &&
m_spellInfo->HasAttribute(SPELL_ATTR4_SUPRESS_WEAPON_PROCS) == 0 && (m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_MELEE || m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_RANGED)) m_spellInfo->HasAttribute(SPELL_ATTR4_SUPPRESS_WEAPON_PROCS) == 0 && (m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_MELEE || m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_RANGED))
caster->ToPlayer()->CastItemCombatSpell(unitTarget, m_attackType, procVictim | PROC_FLAG_TAKEN_DAMAGE, procEx); caster->ToPlayer()->CastItemCombatSpell(unitTarget, m_attackType, procVictim | PROC_FLAG_TAKEN_DAMAGE, procEx);
} }
@@ -2930,7 +2930,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
if (missInfo != SPELL_MISS_EVADE && !m_caster->IsFriendlyTo(effectUnit) && (!m_spellInfo->IsPositive() || m_spellInfo->HasEffect(SPELL_EFFECT_DISPEL))) if (missInfo != SPELL_MISS_EVADE && !m_caster->IsFriendlyTo(effectUnit) && (!m_spellInfo->IsPositive() || m_spellInfo->HasEffect(SPELL_EFFECT_DISPEL)))
{ {
if (!m_triggeredByAuraSpell.spellInfo || m_damage || (!(m_triggeredByAuraSpell.spellInfo->Effects[m_triggeredByAuraSpell.effectIndex].TriggerSpell == m_spellInfo->Id) && !(m_triggeredByAuraSpell.spellInfo->IsAuraEffectEqual(m_spellInfo)))) if (!m_triggeredByAuraSpell.spellInfo || m_damage || (!(m_triggeredByAuraSpell.spellInfo->Effects[m_triggeredByAuraSpell.effectIndex].TriggerSpell == m_spellInfo->Id) && !(m_triggeredByAuraSpell.spellInfo->IsAuraEffectEqual(m_spellInfo))))
m_caster->CombatStart(effectUnit, !(m_spellInfo->AttributesEx3 & SPELL_ATTR3_SUPRESS_TARGET_PROCS)); m_caster->CombatStart(effectUnit, !(m_spellInfo->AttributesEx3 & SPELL_ATTR3_SUPPRESS_TARGET_PROCS));
// Patch 3.0.8: All player spells which cause a creature to become aggressive to you will now also immediately cause the creature to be tapped. // Patch 3.0.8: All player spells which cause a creature to become aggressive to you will now also immediately cause the creature to be tapped.
if (effectUnit->IsInCombatWith(m_caster)) if (effectUnit->IsInCombatWith(m_caster))
@@ -3079,7 +3079,7 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA
} }
// xinef: triggered spells should not prolong combat // xinef: triggered spells should not prolong combat
if (unit->IsInCombat() && !m_spellInfo->HasAttribute(SPELL_ATTR3_SUPRESS_TARGET_PROCS) && !m_triggeredByAuraSpell) if (unit->IsInCombat() && !m_spellInfo->HasAttribute(SPELL_ATTR3_SUPPRESS_TARGET_PROCS) && !m_triggeredByAuraSpell)
{ {
m_caster->SetInCombatState(unit->GetCombatTimer() > 0, unit); m_caster->SetInCombatState(unit->GetCombatTimer() > 0, unit);
unit->getHostileRefMgr().threatAssist(m_caster, 0.0f); unit->getHostileRefMgr().threatAssist(m_caster, 0.0f);
@@ -3840,8 +3840,8 @@ void Spell::_cast(bool skipCheck)
// As of 3.0.2 pets begin attacking their owner's target immediately // As of 3.0.2 pets begin attacking their owner's target immediately
// Let any pets know we've attacked something. Check DmgClass for harmful spells only // Let any pets know we've attacked something. Check DmgClass for harmful spells only
// This prevents spells such as Hunter's Mark from triggering pet attack // This prevents spells such as Hunter's Mark from triggering pet attack
// xinef: take into account SPELL_ATTR3_SUPRESS_TARGET_PROCS // xinef: take into account SPELL_ATTR3_SUPPRESS_TARGET_PROCS
if ((m_targets.GetTargetMask() & TARGET_FLAG_UNIT) && GetSpellInfo()->DmgClass != SPELL_DAMAGE_CLASS_NONE && !GetSpellInfo()->HasAttribute(SPELL_ATTR3_SUPRESS_TARGET_PROCS)) if ((m_targets.GetTargetMask() & TARGET_FLAG_UNIT) && GetSpellInfo()->DmgClass != SPELL_DAMAGE_CLASS_NONE && !GetSpellInfo()->HasAttribute(SPELL_ATTR3_SUPPRESS_TARGET_PROCS))
if (!playerCaster->m_Controlled.empty()) if (!playerCaster->m_Controlled.empty())
for (Unit::ControlSet::iterator itr = playerCaster->m_Controlled.begin(); itr != playerCaster->m_Controlled.end(); ++itr) for (Unit::ControlSet::iterator itr = playerCaster->m_Controlled.begin(); itr != playerCaster->m_Controlled.end(); ++itr)
if (Unit* pet = *itr) if (Unit* pet = *itr)
@@ -4103,7 +4103,7 @@ void Spell::_cast(bool skipCheck)
if (Unit* target = m_targets.GetUnitTarget()) if (Unit* target = m_targets.GetUnitTarget())
if (m_caster->IsPlayer() || (m_caster->IsPet() && m_caster->IsControlledByPlayer())) if (m_caster->IsPlayer() || (m_caster->IsPet() && m_caster->IsControlledByPlayer()))
if (GetDelayMoment() > 0 && !m_caster->IsFriendlyTo(target) && !m_spellInfo->HasAura(SPELL_AURA_BIND_SIGHT) && (!m_spellInfo->IsPositive() || m_spellInfo->HasEffect(SPELL_EFFECT_DISPEL))) if (GetDelayMoment() > 0 && !m_caster->IsFriendlyTo(target) && !m_spellInfo->HasAura(SPELL_AURA_BIND_SIGHT) && (!m_spellInfo->IsPositive() || m_spellInfo->HasEffect(SPELL_EFFECT_DISPEL)))
m_caster->CombatStartOnCast(target, !m_spellInfo->HasAttribute(SPELL_ATTR3_SUPRESS_TARGET_PROCS), GetDelayMoment() + 500); // xinef: increase this time so we dont leave and enter combat in a moment m_caster->CombatStartOnCast(target, !m_spellInfo->HasAttribute(SPELL_ATTR3_SUPPRESS_TARGET_PROCS), GetDelayMoment() + 500); // xinef: increase this time so we dont leave and enter combat in a moment
if (m_caster->IsPlayer()) if (m_caster->IsPlayer())
if (m_caster->ToPlayer()->GetCommandStatus(CHEAT_COOLDOWN)) if (m_caster->ToPlayer()->GetCommandStatus(CHEAT_COOLDOWN))
@@ -5582,7 +5582,7 @@ void Spell::HandleThreatSpells()
if (m_UniqueTargetInfo.empty()) if (m_UniqueTargetInfo.empty())
return; return;
if (m_spellInfo->HasAttribute(SPELL_ATTR1_NO_THREAT) || m_spellInfo->HasAttribute(SPELL_ATTR3_SUPRESS_TARGET_PROCS)) if (m_spellInfo->HasAttribute(SPELL_ATTR1_NO_THREAT) || m_spellInfo->HasAttribute(SPELL_ATTR3_SUPPRESS_TARGET_PROCS))
return; return;
float threat = 0.0f; float threat = 0.0f;
+30 -30
View File
@@ -583,7 +583,7 @@ void SpellMgr::LoadSpellInfoCorrections()
{ {
// hack for seal of light and few spells, judgement consists of few single casts and each of them can proc // hack for seal of light and few spells, judgement consists of few single casts and each of them can proc
// some spell, base one has disabled proc flag but those dont have this flag // some spell, base one has disabled proc flag but those dont have this flag
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_CASTER_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
}); });
// Blessing of sanctuary stats // Blessing of sanctuary stats
@@ -605,13 +605,13 @@ void SpellMgr::LoadSpellInfoCorrections()
// Seal of Command trigger // Seal of Command trigger
ApplySpellFix({ 20424 }, [](SpellInfo* spellInfo) ApplySpellFix({ 20424 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPRESS_CASTER_PROCS; spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
}); });
// Arcane Missiles // Arcane Missiles
ApplySpellFix({ 5143, 5144, 5145, 8416, 8417, 10211, 10212, 25345, 27075, 38699, 38704, 42843, 42846 }, [](SpellInfo* spellInfo) ApplySpellFix({ 5143, 5144, 5145, 8416, 8417, 10211, 10212, 25345, 27075, 38699, 38704, 42843, 42846 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
ApplySpellFix({ ApplySpellFix({
@@ -637,7 +637,7 @@ void SpellMgr::LoadSpellInfoCorrections()
ApplySpellFix({ 3411 }, [](SpellInfo* spellInfo) ApplySpellFix({ 3411 }, [](SpellInfo* spellInfo)
{ {
spellInfo->Attributes |= SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT; spellInfo->Attributes |= SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
// Roar of Sacrifice // Roar of Sacrifice
@@ -742,7 +742,7 @@ void SpellMgr::LoadSpellInfoCorrections()
6774 // Slice and Dice 6774 // Slice and Dice
}, [](SpellInfo* spellInfo) }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
// Envenom // Envenom
@@ -817,7 +817,7 @@ void SpellMgr::LoadSpellInfoCorrections()
ApplySpellFix({ 50526 }, [](SpellInfo* spellInfo) ApplySpellFix({ 50526 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_IGNORE_CASTER_MODIFIERS; spellInfo->AttributesEx3 |= SPELL_ATTR3_IGNORE_CASTER_MODIFIERS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
// Dancing Rune Weapon // Dancing Rune Weapon
@@ -856,13 +856,13 @@ void SpellMgr::LoadSpellInfoCorrections()
// Scourge Strike trigger // Scourge Strike trigger
ApplySpellFix({ 70890 }, [](SpellInfo* spellInfo) ApplySpellFix({ 70890 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_CASTER_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
}); });
// Blood-caked Blade - Blood-caked Strike trigger // Blood-caked Blade - Blood-caked Strike trigger
ApplySpellFix({ 50463 }, [](SpellInfo* spellInfo) ApplySpellFix({ 50463 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_CASTER_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
}); });
// Blood Gorged // Blood Gorged
@@ -1080,7 +1080,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// Living Bomb // Living Bomb
ApplySpellFix({ 44461, 55361, 55362 }, [](SpellInfo* spellInfo) ApplySpellFix({ 44461, 55361, 55362 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
spellInfo->AttributesEx4 |= SPELL_ATTR4_REACTIVE_DAMAGE_PROC; spellInfo->AttributesEx4 |= SPELL_ATTR4_REACTIVE_DAMAGE_PROC;
}); });
@@ -1294,13 +1294,13 @@ void SpellMgr::LoadSpellInfoCorrections()
ApplySpellFix({ 49376 }, [](SpellInfo* spellInfo) ApplySpellFix({ 49376 }, [](SpellInfo* spellInfo)
{ {
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_3_YARDS); // 3yd spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_3_YARDS); // 3yd
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
// Feral Charge - Cat // Feral Charge - Cat
ApplySpellFix({ 61138, 61132, 50259 }, [](SpellInfo* spellInfo) ApplySpellFix({ 61138, 61132, 50259 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
// Glyph of Barkskin // Glyph of Barkskin
@@ -2190,7 +2190,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// Oculus, Drake spell Stop Time // Oculus, Drake spell Stop Time
ApplySpellFix({ 49838 }, [](SpellInfo* spellInfo) ApplySpellFix({ 49838 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
spellInfo->ExcludeTargetAuraSpell = 51162; // exclude planar shift spellInfo->ExcludeTargetAuraSpell = 51162; // exclude planar shift
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_150_YARDS); spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_150_YARDS);
}); });
@@ -2277,7 +2277,7 @@ void SpellMgr::LoadSpellInfoCorrections()
{ {
spellInfo->Attributes |= SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT; spellInfo->Attributes |= SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT;
spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT; spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
// Trial of the Crusader, Lich King Intro spell // Trial of the Crusader, Lich King Intro spell
@@ -2313,7 +2313,7 @@ void SpellMgr::LoadSpellInfoCorrections()
{ {
spellInfo->Attributes |= SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT; spellInfo->Attributes |= SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT;
spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT; spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
ApplySpellFix({ 66318 }, [](SpellInfo* spellInfo) ApplySpellFix({ 66318 }, [](SpellInfo* spellInfo)
@@ -2323,7 +2323,7 @@ void SpellMgr::LoadSpellInfoCorrections()
spellInfo->Speed = 14.0f; spellInfo->Speed = 14.0f;
spellInfo->Attributes |= SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT; spellInfo->Attributes |= SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT;
spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT; spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
ApplySpellFix({ 66320, 67472, 67473, 67475 }, [](SpellInfo* spellInfo) ApplySpellFix({ 66320, 67472, 67473, 67475 }, [](SpellInfo* spellInfo)
@@ -2907,7 +2907,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// Lock Players and Tap Chest // Lock Players and Tap Chest
ApplySpellFix({ 72347 }, [](SpellInfo* spellInfo) ApplySpellFix({ 72347 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
// Award Reputation - Boss Kill // Award Reputation - Boss Kill
@@ -2940,7 +2940,7 @@ void SpellMgr::LoadSpellInfoCorrections()
{ {
// Patch 3.3.2 (2010-01-02): Deathbringer Saurfang will no longer gain blood power from Mark of the Fallen Champion. // Patch 3.3.2 (2010-01-02): Deathbringer Saurfang will no longer gain blood power from Mark of the Fallen Champion.
// prevented in script, effect needed for Prayer of Mending // prevented in script, effect needed for Prayer of Mending
spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPRESS_CASTER_PROCS; spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
}); });
// Coldflame Jets (Traps after Saurfang) // Coldflame Jets (Traps after Saurfang)
@@ -3463,7 +3463,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// A Tangled Skein // A Tangled Skein
ApplySpellFix({ 51165, 51173 }, [](SpellInfo* spellInfo) ApplySpellFix({ 51165, 51173 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
ApplySpellFix({ ApplySpellFix({
@@ -3657,13 +3657,13 @@ void SpellMgr::LoadSpellInfoCorrections()
// Frankly, It Makes No Sense... (10672) // Frankly, It Makes No Sense... (10672)
ApplySpellFix({ 37851 }, [](SpellInfo* spellInfo) ApplySpellFix({ 37851 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
// Honor Challenge (12939) // Honor Challenge (12939)
ApplySpellFix({ 21855 }, [](SpellInfo* spellInfo) ApplySpellFix({ 21855 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
// Convocation at Zol'Heb (12730) // Convocation at Zol'Heb (12730)
@@ -4088,7 +4088,7 @@ void SpellMgr::LoadSpellInfoCorrections()
53725 // Judgement of the Martyr 53725 // Judgement of the Martyr
}, [](SpellInfo* spellInfo) }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 &= ~SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
// Chaos Bolt Passive // Chaos Bolt Passive
@@ -4188,7 +4188,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// Brood Power : Bronze // Brood Power : Bronze
ApplySpellFix({ 22311 }, [](SpellInfo* spellInfo) ApplySpellFix({ 22311 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_CASTER_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
}); });
// Rapture // Rapture
@@ -4196,7 +4196,7 @@ void SpellMgr::LoadSpellInfoCorrections()
{ {
spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT; spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT;
spellInfo->AttributesEx2 |= SPELL_ATTR2_IGNORE_LINE_OF_SIGHT; spellInfo->AttributesEx2 |= SPELL_ATTR2_IGNORE_LINE_OF_SIGHT;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
// Everlasting Affliction // Everlasting Affliction
@@ -4306,7 +4306,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// Death's Respite // Death's Respite
ApplySpellFix({ 67731, 68305 }, [](SpellInfo* spellInfo) ApplySpellFix({ 67731, 68305 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
// Wyvern Sting DoT // Wyvern Sting DoT
@@ -4367,7 +4367,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// Uppercut // Uppercut
ApplySpellFix({ 26007 }, [](SpellInfo* spellInfo) ApplySpellFix({ 26007 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_CASTER_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
}); });
// Digestive Acid (Temporary) // Digestive Acid (Temporary)
@@ -4388,7 +4388,7 @@ void SpellMgr::LoadSpellInfoCorrections()
ApplySpellFix({ 6754 }, [](SpellInfo* spellInfo) ApplySpellFix({ 6754 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT; spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
// Summon Cauldron Stuff // Summon Cauldron Stuff
@@ -4749,8 +4749,8 @@ void SpellMgr::LoadSpellInfoCorrections()
// Gor'drek's Ointment // Gor'drek's Ointment
ApplySpellFix({ 32578 }, [](SpellInfo* spellInfo) ApplySpellFix({ 32578 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_CASTER_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_TARGET_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
}); });
// Shadow Grasp // Shadow Grasp
@@ -4813,7 +4813,7 @@ void SpellMgr::LoadSpellInfoCorrections()
7376 // Defensive Stance Passive 7376 // Defensive Stance Passive
}, [](SpellInfo* spellInfo) }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_CASTER_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
}); });
// Conjure Refreshment Table (Rank 1, Rank 2) // Conjure Refreshment Table (Rank 1, Rank 2)
@@ -4853,7 +4853,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// Siphon Life (heal) // Siphon Life (heal)
ApplySpellFix({ 63106 }, [](SpellInfo* spellInfo) ApplySpellFix({ 63106 }, [](SpellInfo* spellInfo)
{ {
spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPRESS_CASTER_PROCS; spellInfo->AttributesEx3 |= SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
}); });
for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i) for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i)
@@ -70,17 +70,17 @@ struct boss_murmur : public BossAI
_Reset(); _Reset();
me->SetHealth(me->CountPctFromMaxHealth(40)); me->SetHealth(me->CountPctFromMaxHealth(40));
me->ResetPlayerDamageReq(); me->ResetPlayerDamageReq();
CastSupressionOOC(); CastSuppressionOOC();
} }
void CastSupressionOOC() void CastSuppressionOOC()
{ {
me->m_Events.CancelEventGroup(GROUP_OOC_CAST); me->m_Events.CancelEventGroup(GROUP_OOC_CAST);
me->m_Events.AddEventAtOffset([this] { me->m_Events.AddEventAtOffset([this] {
if (me->FindNearestCreature(NPC_CABAL_SPELLBINDER, 35.0f)) if (me->FindNearestCreature(NPC_CABAL_SPELLBINDER, 35.0f))
{ {
me->CastCustomSpell(SPELL_SUPPRESSION, SPELLVALUE_MAX_TARGETS, 5, (Unit*)nullptr, false); me->CastCustomSpell(SPELL_SUPPRESSION, SPELLVALUE_MAX_TARGETS, 5, (Unit*)nullptr, false);
CastSupressionOOC(); CastSuppressionOOC();
} }
}, 3600ms, 10900ms, GROUP_OOC_CAST); }, 3600ms, 10900ms, GROUP_OOC_CAST);
} }
+1 -1
View File
@@ -936,7 +936,7 @@ class spell_dru_starfall_dummy : public SpellScript
return; return;
} }
// Any effect which causes you to lose control of your character will supress the starfall effect. // Any effect which causes you to lose control of your character will suppress the starfall effect.
if (caster->HasUnitState(UNIT_STATE_CONTROLLED)) if (caster->HasUnitState(UNIT_STATE_CONTROLLED))
return; return;
+3 -3
View File
@@ -506,8 +506,8 @@ enum SpellAttr3 : uint32
SPELL_ATTR3_HIDE_CHANNEL_BAR = 0x00002000, // TITLE Do not display channel bar (client only) SPELL_ATTR3_HIDE_CHANNEL_BAR = 0x00002000, // TITLE Do not display channel bar (client only)
SPELL_ATTR3_HIDE_IN_RAID_FILTER = 0x00004000, // TITLE Honorless Target SPELL_ATTR3_HIDE_IN_RAID_FILTER = 0x00004000, // TITLE Honorless Target
SPELL_ATTR3_NORMAL_RANGED_ATTACK = 0x00008000, // TITLE Unknown attribute 15@Attr3 DESCRIPTION Auto Shoot, Shoot, Throw - ranged normal attack attribute? SPELL_ATTR3_NORMAL_RANGED_ATTACK = 0x00008000, // TITLE Unknown attribute 15@Attr3 DESCRIPTION Auto Shoot, Shoot, Throw - ranged normal attack attribute?
SPELL_ATTR3_SUPRESS_CASTER_PROCS = 0x00010000, // TITLE Cannot trigger procs SPELL_ATTR3_SUPPRESS_CASTER_PROCS = 0x00010000, // TITLE Cannot trigger procs
SPELL_ATTR3_SUPRESS_TARGET_PROCS = 0x00020000, // TITLE No initial aggro SPELL_ATTR3_SUPPRESS_TARGET_PROCS = 0x00020000, // TITLE No initial aggro
SPELL_ATTR3_ALWAYS_HIT = 0x00040000, // TITLE Ignore hit result DESCRIPTION Spell cannot miss, or be dodged/parried/blocked SPELL_ATTR3_ALWAYS_HIT = 0x00040000, // TITLE Ignore hit result DESCRIPTION Spell cannot miss, or be dodged/parried/blocked
SPELL_ATTR3_INSTANT_TARGET_PROCS = 0x00080000, // TITLE Cannot trigger spells during aura proc SPELL_ATTR3_INSTANT_TARGET_PROCS = 0x00080000, // TITLE Cannot trigger spells during aura proc
SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD = 0x00100000, // TITLE Persists through death SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD = 0x00100000, // TITLE Persists through death
@@ -550,7 +550,7 @@ enum SpellAttr4 : uint32
SPELL_ATTR4_AURA_NEVER_BOUNCES = 0x00100000, // TITLE Allow self-cast to override stronger aura (client only) SPELL_ATTR4_AURA_NEVER_BOUNCES = 0x00100000, // TITLE Allow self-cast to override stronger aura (client only)
SPELL_ATTR4_ALLOW_ENETRING_ARENA = 0x00200000, // TITLE Keep when entering arena SPELL_ATTR4_ALLOW_ENETRING_ARENA = 0x00200000, // TITLE Keep when entering arena
SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM = 0x00400000, // TITLE Unknown attribute 22@Attr4 DESCRIPTION Seal of Command (42058,57770) and Gymer's Smash 55426 SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM = 0x00400000, // TITLE Unknown attribute 22@Attr4 DESCRIPTION Seal of Command (42058,57770) and Gymer's Smash 55426
SPELL_ATTR4_SUPRESS_WEAPON_PROCS = 0x00800000, // TITLE Cannot trigger item spells SPELL_ATTR4_SUPPRESS_WEAPON_PROCS = 0x00800000, // TITLE Cannot trigger item spells
SPELL_ATTR4_AUTO_RANGED_COMBAT = 0x01000000, // TITLE Unknown attribute 24@Attr4 DESCRIPTION Shoot-type spell? SPELL_ATTR4_AUTO_RANGED_COMBAT = 0x01000000, // TITLE Unknown attribute 24@Attr4 DESCRIPTION Shoot-type spell?
SPELL_ATTR4_OWNER_POWER_SCALING = 0x02000000, // TITLE Pet Scaling aura SPELL_ATTR4_OWNER_POWER_SCALING = 0x02000000, // TITLE Pet Scaling aura
SPELL_ATTR4_ONLY_FLYING_AREAS = 0x04000000, // TITLE Only in Outland/Northrend SPELL_ATTR4_ONLY_FLYING_AREAS = 0x04000000, // TITLE Only in Outland/Northrend
+9 -9
View File
@@ -560,8 +560,8 @@ AC_API_EXPORT EnumText EnumUtils<SpellAttr3>::ToString(SpellAttr3 value)
case SPELL_ATTR3_HIDE_CHANNEL_BAR: return { "SPELL_ATTR3_HIDE_CHANNEL_BAR", "Do not display channel bar (client only)", "" }; case SPELL_ATTR3_HIDE_CHANNEL_BAR: return { "SPELL_ATTR3_HIDE_CHANNEL_BAR", "Do not display channel bar (client only)", "" };
case SPELL_ATTR3_HIDE_IN_RAID_FILTER: return { "SPELL_ATTR3_HIDE_IN_RAID_FILTER", "Honorless Target", "" }; case SPELL_ATTR3_HIDE_IN_RAID_FILTER: return { "SPELL_ATTR3_HIDE_IN_RAID_FILTER", "Honorless Target", "" };
case SPELL_ATTR3_NORMAL_RANGED_ATTACK: return { "SPELL_ATTR3_NORMAL_RANGED_ATTACK", "Unknown attribute 15@Attr3", "Auto Shoot, Shoot, Throw - ranged normal attack attribute?" }; case SPELL_ATTR3_NORMAL_RANGED_ATTACK: return { "SPELL_ATTR3_NORMAL_RANGED_ATTACK", "Unknown attribute 15@Attr3", "Auto Shoot, Shoot, Throw - ranged normal attack attribute?" };
case SPELL_ATTR3_SUPRESS_CASTER_PROCS: return { "SPELL_ATTR3_SUPRESS_CASTER_PROCS", "Cannot trigger procs", "" }; case SPELL_ATTR3_SUPPRESS_CASTER_PROCS: return { "SPELL_ATTR3_SUPPRESS_CASTER_PROCS", "Cannot trigger procs", "" };
case SPELL_ATTR3_SUPRESS_TARGET_PROCS: return { "SPELL_ATTR3_SUPRESS_TARGET_PROCS", "No initial aggro", "" }; case SPELL_ATTR3_SUPPRESS_TARGET_PROCS: return { "SPELL_ATTR3_SUPPRESS_TARGET_PROCS", "No initial aggro", "" };
case SPELL_ATTR3_ALWAYS_HIT: return { "SPELL_ATTR3_ALWAYS_HIT", "Ignore hit result", "Spell cannot miss, or be dodged/parried/blocked" }; case SPELL_ATTR3_ALWAYS_HIT: return { "SPELL_ATTR3_ALWAYS_HIT", "Ignore hit result", "Spell cannot miss, or be dodged/parried/blocked" };
case SPELL_ATTR3_INSTANT_TARGET_PROCS: return { "SPELL_ATTR3_INSTANT_TARGET_PROCS", "Cannot trigger spells during aura proc", "" }; case SPELL_ATTR3_INSTANT_TARGET_PROCS: return { "SPELL_ATTR3_INSTANT_TARGET_PROCS", "Cannot trigger spells during aura proc", "" };
case SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD: return { "SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD", "Persists through death", "" }; case SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD: return { "SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD", "Persists through death", "" };
@@ -604,8 +604,8 @@ AC_API_EXPORT SpellAttr3 EnumUtils<SpellAttr3>::FromIndex(std::size_t index)
case 13: return SPELL_ATTR3_HIDE_CHANNEL_BAR; case 13: return SPELL_ATTR3_HIDE_CHANNEL_BAR;
case 14: return SPELL_ATTR3_HIDE_IN_RAID_FILTER; case 14: return SPELL_ATTR3_HIDE_IN_RAID_FILTER;
case 15: return SPELL_ATTR3_NORMAL_RANGED_ATTACK; case 15: return SPELL_ATTR3_NORMAL_RANGED_ATTACK;
case 16: return SPELL_ATTR3_SUPRESS_CASTER_PROCS; case 16: return SPELL_ATTR3_SUPPRESS_CASTER_PROCS;
case 17: return SPELL_ATTR3_SUPRESS_TARGET_PROCS; case 17: return SPELL_ATTR3_SUPPRESS_TARGET_PROCS;
case 18: return SPELL_ATTR3_ALWAYS_HIT; case 18: return SPELL_ATTR3_ALWAYS_HIT;
case 19: return SPELL_ATTR3_INSTANT_TARGET_PROCS; case 19: return SPELL_ATTR3_INSTANT_TARGET_PROCS;
case 20: return SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD; case 20: return SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD;
@@ -645,8 +645,8 @@ AC_API_EXPORT std::size_t EnumUtils<SpellAttr3>::ToIndex(SpellAttr3 value)
case SPELL_ATTR3_HIDE_CHANNEL_BAR: return 13; case SPELL_ATTR3_HIDE_CHANNEL_BAR: return 13;
case SPELL_ATTR3_HIDE_IN_RAID_FILTER: return 14; case SPELL_ATTR3_HIDE_IN_RAID_FILTER: return 14;
case SPELL_ATTR3_NORMAL_RANGED_ATTACK: return 15; case SPELL_ATTR3_NORMAL_RANGED_ATTACK: return 15;
case SPELL_ATTR3_SUPRESS_CASTER_PROCS: return 16; case SPELL_ATTR3_SUPPRESS_CASTER_PROCS: return 16;
case SPELL_ATTR3_SUPRESS_TARGET_PROCS: return 17; case SPELL_ATTR3_SUPPRESS_TARGET_PROCS: return 17;
case SPELL_ATTR3_ALWAYS_HIT: return 18; case SPELL_ATTR3_ALWAYS_HIT: return 18;
case SPELL_ATTR3_INSTANT_TARGET_PROCS: return 19; case SPELL_ATTR3_INSTANT_TARGET_PROCS: return 19;
case SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD: return 20; case SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD: return 20;
@@ -696,7 +696,7 @@ AC_API_EXPORT EnumText EnumUtils<SpellAttr4>::ToString(SpellAttr4 value)
case SPELL_ATTR4_AURA_NEVER_BOUNCES: return { "SPELL_ATTR4_AURA_NEVER_BOUNCES", "Allow self-cast to override stronger aura (client only)", "" }; case SPELL_ATTR4_AURA_NEVER_BOUNCES: return { "SPELL_ATTR4_AURA_NEVER_BOUNCES", "Allow self-cast to override stronger aura (client only)", "" };
case SPELL_ATTR4_ALLOW_ENETRING_ARENA: return { "SPELL_ATTR4_ALLOW_ENETRING_ARENA", "Keep when entering arena", "" }; case SPELL_ATTR4_ALLOW_ENETRING_ARENA: return { "SPELL_ATTR4_ALLOW_ENETRING_ARENA", "Keep when entering arena", "" };
case SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM: return { "SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM", "Unknown attribute 22@Attr4", "Seal of Command (42058,57770) and Gymer's Smash 55426" }; case SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM: return { "SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM", "Unknown attribute 22@Attr4", "Seal of Command (42058,57770) and Gymer's Smash 55426" };
case SPELL_ATTR4_SUPRESS_WEAPON_PROCS: return { "SPELL_ATTR4_SUPRESS_WEAPON_PROCS", "Cannot trigger item spells", "" }; case SPELL_ATTR4_SUPPRESS_WEAPON_PROCS: return { "SPELL_ATTR4_SUPPRESS_WEAPON_PROCS", "Cannot trigger item spells", "" };
case SPELL_ATTR4_AUTO_RANGED_COMBAT: return { "SPELL_ATTR4_AUTO_RANGED_COMBAT", "Unknown attribute 24@Attr4", "Shoot-type spell?" }; case SPELL_ATTR4_AUTO_RANGED_COMBAT: return { "SPELL_ATTR4_AUTO_RANGED_COMBAT", "Unknown attribute 24@Attr4", "Shoot-type spell?" };
case SPELL_ATTR4_OWNER_POWER_SCALING: return { "SPELL_ATTR4_OWNER_POWER_SCALING", "Pet Scaling aura", "" }; case SPELL_ATTR4_OWNER_POWER_SCALING: return { "SPELL_ATTR4_OWNER_POWER_SCALING", "Pet Scaling aura", "" };
case SPELL_ATTR4_ONLY_FLYING_AREAS: return { "SPELL_ATTR4_ONLY_FLYING_AREAS", "Only in Outland/Northrend", "" }; case SPELL_ATTR4_ONLY_FLYING_AREAS: return { "SPELL_ATTR4_ONLY_FLYING_AREAS", "Only in Outland/Northrend", "" };
@@ -740,7 +740,7 @@ AC_API_EXPORT SpellAttr4 EnumUtils<SpellAttr4>::FromIndex(std::size_t index)
case 20: return SPELL_ATTR4_AURA_NEVER_BOUNCES; case 20: return SPELL_ATTR4_AURA_NEVER_BOUNCES;
case 21: return SPELL_ATTR4_ALLOW_ENETRING_ARENA; case 21: return SPELL_ATTR4_ALLOW_ENETRING_ARENA;
case 22: return SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM; case 22: return SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM;
case 23: return SPELL_ATTR4_SUPRESS_WEAPON_PROCS; case 23: return SPELL_ATTR4_SUPPRESS_WEAPON_PROCS;
case 24: return SPELL_ATTR4_AUTO_RANGED_COMBAT; case 24: return SPELL_ATTR4_AUTO_RANGED_COMBAT;
case 25: return SPELL_ATTR4_OWNER_POWER_SCALING; case 25: return SPELL_ATTR4_OWNER_POWER_SCALING;
case 26: return SPELL_ATTR4_ONLY_FLYING_AREAS; case 26: return SPELL_ATTR4_ONLY_FLYING_AREAS;
@@ -781,7 +781,7 @@ AC_API_EXPORT std::size_t EnumUtils<SpellAttr4>::ToIndex(SpellAttr4 value)
case SPELL_ATTR4_AURA_NEVER_BOUNCES: return 20; case SPELL_ATTR4_AURA_NEVER_BOUNCES: return 20;
case SPELL_ATTR4_ALLOW_ENETRING_ARENA: return 21; case SPELL_ATTR4_ALLOW_ENETRING_ARENA: return 21;
case SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM: return 22; case SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM: return 22;
case SPELL_ATTR4_SUPRESS_WEAPON_PROCS: return 23; case SPELL_ATTR4_SUPPRESS_WEAPON_PROCS: return 23;
case SPELL_ATTR4_AUTO_RANGED_COMBAT: return 24; case SPELL_ATTR4_AUTO_RANGED_COMBAT: return 24;
case SPELL_ATTR4_OWNER_POWER_SCALING: return 25; case SPELL_ATTR4_OWNER_POWER_SCALING: return 25;
case SPELL_ATTR4_ONLY_FLYING_AREAS: return 26; case SPELL_ATTR4_ONLY_FLYING_AREAS: return 26;