mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-19 08:55:32 +01:00
* Begin removing hardcoded SpellFamilyFlags from the core.
* Now being placed in an enum. Starting with EffectDummy. --HG-- branch : trunk
This commit is contained in:
@@ -1540,7 +1540,7 @@ void Spell::EffectDummy(uint32 i)
|
||||
break;
|
||||
case SPELLFAMILY_WARRIOR:
|
||||
// Charge
|
||||
if(m_spellInfo->SpellFamilyFlags & 0x1 && m_spellInfo->SpellVisual[0] == 867)
|
||||
if(m_spellInfo->SpellFamilyFlags & SPELLFAMILYFLAG_WARRIOR_CHARGE && m_spellInfo->SpellVisual[0] == 867)
|
||||
{
|
||||
int32 chargeBasePoints0 = damage;
|
||||
m_caster->CastCustomSpell(m_caster, 34846, &chargeBasePoints0, NULL, NULL, true);
|
||||
@@ -1551,14 +1551,14 @@ void Spell::EffectDummy(uint32 i)
|
||||
return;
|
||||
}
|
||||
//Slam
|
||||
if(m_spellInfo->SpellFamilyFlags[0] & 0x200000 && m_spellInfo->SpellIconID == 559)
|
||||
if(m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_WARRIOR_SLAM && m_spellInfo->SpellIconID == 559)
|
||||
{
|
||||
int32 bp0 = damage;
|
||||
m_caster->CastCustomSpell(unitTarget, 50783, &bp0, NULL, NULL, true, 0);
|
||||
return;
|
||||
}
|
||||
// Execute
|
||||
if(m_spellInfo->SpellFamilyFlags[0] & 0x20000000)
|
||||
if(m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_WARRIOR_EXECUTE)
|
||||
{
|
||||
if(!unitTarget)
|
||||
return;
|
||||
@@ -1589,7 +1589,7 @@ void Spell::EffectDummy(uint32 i)
|
||||
break;
|
||||
}
|
||||
// Concussion Blow
|
||||
if(m_spellInfo->SpellFamilyFlags[0] & 0x4000000)
|
||||
if(m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_WARRIOR_CONCUSSION_BLOW)
|
||||
{
|
||||
m_damage+= uint32(damage * m_caster->GetTotalAttackPowerValue(BASE_ATTACK) / 100);
|
||||
return;
|
||||
@@ -1621,7 +1621,7 @@ void Spell::EffectDummy(uint32 i)
|
||||
break;
|
||||
case SPELLFAMILY_WARLOCK:
|
||||
// Life Tap
|
||||
if (m_spellInfo->SpellFamilyFlags[0] & 0x40000)
|
||||
if (m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_WARLOCK_LIFETAP)
|
||||
{
|
||||
// In 303 exist spirit depend
|
||||
uint32 spirit = uint32(m_caster->GetStat(STAT_SPIRIT));
|
||||
@@ -1671,7 +1671,7 @@ void Spell::EffectDummy(uint32 i)
|
||||
break;
|
||||
case SPELLFAMILY_PRIEST:
|
||||
// Penance
|
||||
if (m_spellInfo->SpellFamilyFlags[1] & 0x00800000)
|
||||
if (m_spellInfo->SpellFamilyFlags[1] & SPELLFAMILYFLAG1_PRIEST_PENANCE)
|
||||
{
|
||||
if (!unitTarget || !unitTarget->isAlive())
|
||||
return;
|
||||
@@ -1697,7 +1697,7 @@ void Spell::EffectDummy(uint32 i)
|
||||
break;
|
||||
case SPELLFAMILY_DRUID:
|
||||
// Starfall
|
||||
if (m_spellInfo->SpellFamilyFlags[2] & 0x100)
|
||||
if (m_spellInfo->SpellFamilyFlags[2] & SPELLFAMILYFLAG2_DRUID_STARFALL)
|
||||
{
|
||||
//Shapeshifting into an animal form or mounting cancels the effect.
|
||||
if(m_caster->GetCreatureType() == CREATURE_TYPE_BEAST || m_caster->IsMounted())
|
||||
@@ -1717,7 +1717,7 @@ void Spell::EffectDummy(uint32 i)
|
||||
break;
|
||||
case SPELLFAMILY_ROGUE:
|
||||
// Hunger for Blood
|
||||
if (m_spellInfo->SpellFamilyFlags[1] & 0x1000000)
|
||||
if (m_spellInfo->SpellFamilyFlags[1] & SPELLFAMILYFLAG1_ROGUE_HUNGERFORBLOOD)
|
||||
{
|
||||
m_caster->CastSpell(m_caster, 63848, true);
|
||||
break;
|
||||
@@ -1770,7 +1770,7 @@ void Spell::EffectDummy(uint32 i)
|
||||
{
|
||||
SpellEntry const *spellInfo = sSpellStore.LookupEntry(itr->first);
|
||||
|
||||
if (spellInfo->SpellFamilyName == SPELLFAMILY_ROGUE && (spellInfo->SpellFamilyFlags[1] & 0x00000240 || spellInfo->SpellFamilyFlags[0] & 0x00000860))
|
||||
if (spellInfo->SpellFamilyName == SPELLFAMILY_ROGUE && (spellInfo->SpellFamilyFlags[1] & SPELLFAMILYFLAG1_ROGUE_COLDB_SHADOWSTEP || spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_ROGUE_VAN_EVAS_SPRINT))
|
||||
((Player*)m_caster)->RemoveSpellCooldown((itr++)->first,true);
|
||||
else
|
||||
++itr;
|
||||
@@ -1851,7 +1851,7 @@ void Spell::EffectDummy(uint32 i)
|
||||
break;
|
||||
case SPELLFAMILY_PALADIN:
|
||||
// Divine Storm
|
||||
if (m_spellInfo->SpellFamilyFlags[1] & 0x20000 && i == 1)
|
||||
if (m_spellInfo->SpellFamilyFlags[1] & SPELLFAMILYFLAG1_PALADIN_DIVINESTORM && i == 1)
|
||||
{
|
||||
int32 dmg = m_damage * damage / 100;
|
||||
if (!unitTarget)
|
||||
@@ -1953,7 +1953,7 @@ void Spell::EffectDummy(uint32 i)
|
||||
break;
|
||||
case SPELLFAMILY_SHAMAN:
|
||||
// Cleansing Totem Pulse
|
||||
if (m_spellInfo->SpellFamilyFlags[0] & 0x04000000 && m_spellInfo->SpellIconID==1673)
|
||||
if (m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_SHAMAN_TOTEM_EFFECTS && m_spellInfo->SpellIconID==1673)
|
||||
{
|
||||
int32 bp1 = 1;
|
||||
// Cleansing Totem Effect
|
||||
@@ -1962,14 +1962,14 @@ void Spell::EffectDummy(uint32 i)
|
||||
return;
|
||||
}
|
||||
// Healing Stream Totem
|
||||
if(m_spellInfo->SpellFamilyFlags[0] & 0x2000)
|
||||
if(m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_SHAMAN_HEALING_STREAM)
|
||||
{
|
||||
if (unitTarget)
|
||||
m_caster->CastCustomSpell(unitTarget, 52042, &damage, 0, 0, true, 0, 0, m_originalCasterGUID);
|
||||
return;
|
||||
}
|
||||
// Mana Spring Totem
|
||||
if (m_spellInfo->SpellFamilyFlags[0] & 0x4000)
|
||||
if (m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_SHAMAN_MANA_SPRING)
|
||||
{
|
||||
if (!unitTarget || unitTarget->getPowerType() != POWER_MANA)
|
||||
return;
|
||||
@@ -1990,7 +1990,7 @@ void Spell::EffectDummy(uint32 i)
|
||||
return;
|
||||
}
|
||||
// Lava Lash
|
||||
if (m_spellInfo->SpellFamilyFlags[2] & 0x00000004)
|
||||
if (m_spellInfo->SpellFamilyFlags[2] & SPELLFAMILYFLAG2_SHAMAN_LAVA_LASH)
|
||||
{
|
||||
if (m_caster->GetTypeId() != TYPEID_PLAYER)
|
||||
return;
|
||||
@@ -2006,7 +2006,7 @@ void Spell::EffectDummy(uint32 i)
|
||||
break;
|
||||
case SPELLFAMILY_DEATHKNIGHT:
|
||||
// Death strike
|
||||
if (m_spellInfo->SpellFamilyFlags[0] & 0x00000010)
|
||||
if (m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_DK_DEATH_STRIKE)
|
||||
{
|
||||
uint32 count = unitTarget->GetDiseasesByCaster(m_caster->GetGUID());
|
||||
int32 bp = count * m_caster->GetMaxHealth() * m_spellInfo->DmgMultiplier[0] / 100;
|
||||
@@ -2017,13 +2017,13 @@ void Spell::EffectDummy(uint32 i)
|
||||
return;
|
||||
}
|
||||
// Scourge Strike
|
||||
if(m_spellInfo->SpellFamilyFlags[1] & 0x8000000)
|
||||
if(m_spellInfo->SpellFamilyFlags[1] & SPELLFAMILYFLAG1_DK_SCOURGE_STRIKE)
|
||||
{
|
||||
m_damage = float (m_damage) * (float(damage * unitTarget->GetDiseasesByCaster(m_caster->GetGUID()) + 100.0f) / 100.0f);
|
||||
return;
|
||||
}
|
||||
// Death Coil
|
||||
if(m_spellInfo->SpellFamilyFlags[0] & 0x002000)
|
||||
if(m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_DK_DEATH_COIL)
|
||||
{
|
||||
if(m_caster->IsFriendlyTo(unitTarget))
|
||||
{
|
||||
@@ -2038,7 +2038,7 @@ void Spell::EffectDummy(uint32 i)
|
||||
return;
|
||||
}
|
||||
// Hungering Cold
|
||||
if (m_spellInfo->SpellFamilyFlags[1] & 0x1000)
|
||||
if (m_spellInfo->SpellFamilyFlags[1] & SPELLFAMILYFLAG1_DK_HUNGERING_COLD)
|
||||
{
|
||||
unitTarget->CastSpell(m_caster, 51209, true);
|
||||
return;
|
||||
|
||||
@@ -83,16 +83,62 @@ enum SpellSelectTargetTypes
|
||||
TARGET_TYPE_CHANNEL,
|
||||
};
|
||||
|
||||
//Some SpellFamilyFlags
|
||||
#define SPELLFAMILYFLAG_ROGUE_VANISH 0x00000800
|
||||
#define SPELLFAMILYFLAG_ROGUE_STEALTH 0x00400000
|
||||
#define SPELLFAMILYFLAG_ROGUE_BACKSTAB 0x00800004
|
||||
#define SPELLFAMILYFLAG_ROGUE_SAP 0x00000080
|
||||
#define SPELLFAMILYFLAG_ROGUE_FEINT 0x08000000
|
||||
#define SPELLFAMILYFLAG_ROGUE_KIDNEYSHOT 0x00200000
|
||||
//#define SPELLFAMILYFLAG_ROGUE__FINISHING_MOVE 0x9003E0000LL
|
||||
#define SPELLFAMILYFLAG_WARRIOR_SUNDERARMOR 0x00004000
|
||||
#define SPELLFAMILYFLAG_SHAMAN_FROST_SHOCK 0x80000000
|
||||
//SpellFamilyFlags
|
||||
enum SpellFamilyFlag
|
||||
{
|
||||
// SPELLFAMILYFLAG = SpellFamilyFlags[0]
|
||||
// SPELLFAMILYFLAG1 = SpellFamilyFlags[1]
|
||||
// SPELLFAMILYFLAG2 = SpellFamilyFlags[2]
|
||||
|
||||
// Rogue
|
||||
SPELLFAMILYFLAG_ROGUE_VANISH = 0x00000800,
|
||||
SPELLFAMILYFLAG_ROGUE_STEALTH = 0x00400000,
|
||||
SPELLFAMILYFLAG_ROGUE_BACKSTAB = 0x00800004,
|
||||
SPELLFAMILYFLAG_ROGUE_SAP = 0x00000080,
|
||||
SPELLFAMILYFLAG_ROGUE_FEINT = 0x08000000,
|
||||
SPELLFAMILYFLAG_ROGUE_KIDNEYSHOT = 0x00200000,
|
||||
SPELLFAMILYFLAG1_ROGUE_HUNGERFORBLOOD = 0x01000000,
|
||||
SPELLFAMILYFLAG_ROGUE_VAN_EVAS_SPRINT = 0x00000860, // Vanish, Evasion, Sprint
|
||||
SPELLFAMILYFLAG1_ROGUE_COLDB_SHADOWSTEP = 0x00000240, // Cold Blood, Shadowstep
|
||||
//SPELLFAMILYFLAG_ROGUE__FINISHING_MOVE = 0x9003E0000LL,
|
||||
|
||||
// Warrior
|
||||
SPELLFAMILYFLAG_WARRIOR_SUNDERARMOR = 0x00004000,
|
||||
SPELLFAMILYFLAG_WARRIOR_CHARGE = 0x00000001,
|
||||
SPELLFAMILYFLAG_WARRIOR_SLAM = 0x00200000,
|
||||
SPELLFAMILYFLAG_WARRIOR_EXECUTE = 0x20000000,
|
||||
SPELLFAMILYFLAG_WARRIOR_CONCUSSION_BLOW = 0x04000000,
|
||||
|
||||
// Warlock
|
||||
SPELLFAMILYFLAG_WARLOCK_LIFETAP = 0x00040000,
|
||||
|
||||
// Priest
|
||||
SPELLFAMILYFLAG1_PRIEST_PENANCE = 0x00800000,
|
||||
|
||||
// Druid
|
||||
SPELLFAMILYFLAG2_DRUID_STARFALL = 0x00000100,
|
||||
|
||||
// Paladin
|
||||
SPELLFAMILYFLAG1_PALADIN_DIVINESTORM = 0x00020000,
|
||||
|
||||
// Shaman
|
||||
SPELLFAMILYFLAG_SHAMAN_FROST_SHOCK = 0x80000000,
|
||||
SPELLFAMILYFLAG_SHAMAN_HEALING_STREAM = 0x00002000,
|
||||
SPELLFAMILYFLAG_SHAMAN_MANA_SPRING = 0x00004000,
|
||||
SPELLFAMILYFLAG2_SHAMAN_LAVA_LASH = 0x00000004,
|
||||
SPELLFAMILYFLAG_SHAMAN_FLAMETONGUE = 0x00200000,
|
||||
|
||||
// Deathknight
|
||||
SPELLFAMILYFLAG_DK_DEATH_STRIKE = 0x00000010,
|
||||
SPELLFAMILYFLAG1_DK_SCOURGE_STRIKE = 0x08000000,
|
||||
SPELLFAMILYFLAG_DK_DEATH_COIL = 0x00002000,
|
||||
SPELLFAMILYFLAG1_DK_HUNGERING_COLD = 0x00001000,
|
||||
|
||||
|
||||
// TODO: Figure out a more accurate name for the following familyflag(s)
|
||||
SPELLFAMILYFLAG_SHAMAN_TOTEM_EFFECTS = 0x04000000, // Seems to be linked to most totems and some totem effects
|
||||
};
|
||||
|
||||
|
||||
// Spell clasification
|
||||
enum SpellSpecific
|
||||
|
||||
Reference in New Issue
Block a user