aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp4
-rw-r--r--src/server/game/Entities/Object/Object.cpp2
-rw-r--r--src/server/game/Entities/Player/Player.cpp2
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h66
-rw-r--r--src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp184
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp8
-rw-r--r--src/server/game/Spells/Auras/SpellAuras.cpp4
-rw-r--r--src/server/game/Spells/Spell.cpp10
-rw-r--r--src/server/game/Spells/SpellInfo.cpp12
-rw-r--r--src/server/game/Spells/SpellMgr.cpp4
10 files changed, 148 insertions, 148 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 818b09ca171..35fc80c0e22 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -3272,7 +3272,7 @@ void Creature::SetSpellFocus(Spell const* focusSpell, WorldObject const* target)
_spellFocusInfo.Spell = focusSpell;
- bool const noTurnDuringCast = spellInfo->HasAttribute(SPELL_ATTR5_DONT_TURN_DURING_CAST);
+ bool const noTurnDuringCast = spellInfo->HasAttribute(SPELL_ATTR5_AI_DOESNT_FACE_TARGET);
bool const turnDisabled = HasUnitFlag2(UNIT_FLAG2_CANNOT_TURN);
// set target, then force send update packet to players if it changed to provide appropriate facing
ObjectGuid newTarget = (target && !noTurnDuringCast && !turnDisabled) ? target->GetGUID() : ObjectGuid::Empty;
@@ -3314,7 +3314,7 @@ void Creature::ReleaseSpellFocus(Spell const* focusSpell, bool withDelay)
if (focusSpell && focusSpell != _spellFocusInfo.Spell)
return;
- if (_spellFocusInfo.Spell->GetSpellInfo()->HasAttribute(SPELL_ATTR5_DONT_TURN_DURING_CAST))
+ if (_spellFocusInfo.Spell->GetSpellInfo()->HasAttribute(SPELL_ATTR5_AI_DOESNT_FACE_TARGET))
ClearUnitState(UNIT_STATE_FOCUSING);
if (IsPet()) // player pets do not use delay system
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 362e9a7bebe..d403c40021e 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -2375,7 +2375,7 @@ void WorldObject::ModSpellDurationTime(SpellInfo const* spellInfo, int32& durati
if (!spellInfo || duration < 0)
return;
- if (spellInfo->IsChanneled() && !spellInfo->HasAttribute(SPELL_ATTR5_HASTE_AFFECT_DURATION))
+ if (spellInfo->IsChanneled() && !spellInfo->HasAttribute(SPELL_ATTR5_SPELL_HASTE_AFFECTS_PERIODIC))
return;
// called from caster
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index aa8d4f693bf..9d3cf1e685f 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -25665,7 +25665,7 @@ bool Player::HasItemFitToSpellRequirements(SpellInfo const* spellInfo, Item cons
bool Player::CanNoReagentCast(SpellInfo const* spellInfo) const
{
// don't take reagents for spells with SPELL_ATTR5_NO_REAGENT_WHILE_PREP
- if (spellInfo->HasAttribute(SPELL_ATTR5_NO_REAGENT_WHILE_PREP) &&
+ if (spellInfo->HasAttribute(SPELL_ATTR5_NO_REAGENT_COST_WITH_AURA) &&
HasUnitFlag(UNIT_FLAG_PREPARATION))
return true;
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index af4eecebde0..043fe6c1271 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -589,38 +589,38 @@ enum SpellAttr4 : uint32
// EnumUtils: DESCRIBE THIS
enum SpellAttr5 : uint32
{
- SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING = 0x00000001, // TITLE Can be channeled while moving
- SPELL_ATTR5_NO_REAGENT_WHILE_PREP = 0x00000002, // TITLE No reagents during arena preparation
- SPELL_ATTR5_REMOVE_ENTERING_ARENA = 0x00000004, // TITLE Remove Entering Arena DESCRIPTION Force this aura to be removed on entering arena, regardless of other properties
- SPELL_ATTR5_USABLE_WHILE_STUNNED = 0x00000008, // TITLE Usable while stunned
- SPELL_ATTR5_UNK4 = 0x00000010, // TITLE Unknown attribute 4@Attr5
- SPELL_ATTR5_SINGLE_TARGET_SPELL = 0x00000020, // TITLE Single-target aura DESCRIPTION Remove previous application to another unit if applied
- SPELL_ATTR5_UNK6 = 0x00000040, // TITLE Unknown attribute 6@Attr5
- SPELL_ATTR5_UNK7 = 0x00000080, // TITLE Unknown attribute 7@Attr5
- SPELL_ATTR5_CANT_TARGET_PLAYER_CONTROLLED = 0x00000100, // TITLE Not On Player Controlled NPC
- SPELL_ATTR5_START_PERIODIC_AT_APPLY = 0x00000200, // TITLE Immediately do periodic tick on apply
- SPELL_ATTR5_HIDE_DURATION = 0x00000400, // TITLE Do not send aura duration to client
- SPELL_ATTR5_ALLOW_TARGET_OF_TARGET_AS_TARGET = 0x00000800, // TITLE Auto-target target of target (client only)
- SPELL_ATTR5_MELEE_CHAIN_TARGETING = 0x00001000, // TITLE Unknown attribute 12@Attr5 DESCRIPTION Cleave related?
- SPELL_ATTR5_HASTE_AFFECT_DURATION = 0x00002000, // TITLE Duration scales with Haste Rating
- SPELL_ATTR5_NOT_USABLE_WHILE_CHARMED = 0x00004000, // TITLE Not Available While Charmed
- SPELL_ATTR5_UNK15 = 0x00008000, // TITLE Unknown attribute 15@Attr5 DESCRIPTION Related to multi-target spells?
- SPELL_ATTR5_UNK16 = 0x00010000, // TITLE Unknown attribute 16@Attr5
- SPELL_ATTR5_USABLE_WHILE_FEARED = 0x00020000, // TITLE Usable while feared
- SPELL_ATTR5_USABLE_WHILE_CONFUSED = 0x00040000, // TITLE Usable while confused
- SPELL_ATTR5_DONT_TURN_DURING_CAST = 0x00080000, // TITLE Do not auto-turn while casting
- SPELL_ATTR5_UNK20 = 0x00100000, // TITLE Unknown attribute 20@Attr5
- SPELL_ATTR5_UNK21 = 0x00200000, // TITLE Unknown attribute 21@Attr5
- SPELL_ATTR5_UNK22 = 0x00400000, // TITLE Unknown attribute 22@Attr5
- SPELL_ATTR5_UNK23 = 0x00800000, // TITLE Unknown attribute 23@Attr5
- SPELL_ATTR5_UNK24 = 0x01000000, // TITLE Unknown attribute 24@Attr5
- SPELL_ATTR5_UNK25 = 0x02000000, // TITLE Unknown attribute 25@Attr5
- SPELL_ATTR5_ALWAYS_AOE_LINE_OF_SIGHT = 0x04000000, // TITLE Ignore line of sight checks
- SPELL_ATTR5_DONT_SHOW_AURA_IF_SELF_CAST = 0x08000000, // TITLE Don't show aura if self-cast (client only)
- SPELL_ATTR5_DONT_SHOW_AURA_IF_NOT_SELF_CAST = 0x10000000, // TITLE Don't show aura unless self-cast (client only)
- SPELL_ATTR5_UNK29 = 0x20000000, // TITLE Unknown attribute 29@Attr5
- SPELL_ATTR5_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr5
- SPELL_ATTR5_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr5 DESCRIPTION Forces nearby enemies to attack caster?
+ SPELL_ATTR5_ALLOW_ACTIONS_DURING_CHANNEL = 0x00000001, // TITLE Allow Actions During Channel
+ SPELL_ATTR5_NO_REAGENT_COST_WITH_AURA = 0x00000002, // TITLE No Reagent Cost With Aura
+ SPELL_ATTR5_REMOVE_ENTERING_ARENA = 0x00000004, // TITLE Remove Entering Arena DESCRIPTION Force this aura to be removed on entering arena, regardless of other properties
+ SPELL_ATTR5_ALLOW_WHILE_STUNNED = 0x00000008, // TITLE Allow While Stunned
+ SPELL_ATTR5_TRIGGERS_CHANNELING = 0x00000010, // TITLE Triggers Channeling
+ SPELL_ATTR5_LIMIT_N = 0x00000020, /*INCOMPLETE IMPL*/ // TITLE Limit N DESCRIPTION Remove previous application to another unit if applied
+ SPELL_ATTR5_IGNORE_AREA_EFFECT_PVP_CHECK = 0x00000040, /*NYI*/ // TITLE Ignore Area Effect PvP Check
+ SPELL_ATTR5_NOT_ON_PLAYER = 0x00000080, /*NYI*/ // TITLE Not On Player
+ SPELL_ATTR5_NOT_ON_PLAYER_CONTROLLED_NPC = 0x00000100, /*NYI*/ // TITLE Not On Player Controlled NPC
+ SPELL_ATTR5_EXTRA_INITIAL_PERIOD = 0x00000200, // TITLE Extra Initial Period DESCRIPTION Immediately do periodic tick on apply
+ SPELL_ATTR5_DO_NOT_DISPLAY_DURATION = 0x00000400, // TITLE Do Not Display Duration
+ SPELL_ATTR5_IMPLIED_TARGETING = 0x00000800, // TITLE Implied Targeting (client only)
+ SPELL_ATTR5_MELEE_CHAIN_TARGETING = 0x00001000, // TITLE Melee Chain Targeting
+ SPELL_ATTR5_SPELL_HASTE_AFFECTS_PERIODIC = 0x00002000, // TITLE Spell Haste Affects Periodic
+ SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED = 0x00004000, /*NYI*/ // TITLE Not Available While Charmed
+ SPELL_ATTR5_TREAT_AS_AREA_EFFECT = 0x00008000, /*NYI*/ // TITLE Treat as Area Effect
+ SPELL_ATTR5_AURA_AFFECTS_NOT_JUST_REQ_EQUIPPED_ITEM = 0x00010000, // TITLE Aura Affects Not Just Req. Equipped Item
+ SPELL_ATTR5_ALLOW_WHILE_FLEEING = 0x00020000, // TITLE Allow While Fleeing
+ SPELL_ATTR5_ALLOW_WHILE_CONFUSED = 0x00040000, // TITLE Allow While Confused
+ SPELL_ATTR5_AI_DOESNT_FACE_TARGET = 0x00080000, // TITLE AI Doesn't Face Target
+ SPELL_ATTR5_DO_NOT_ATTEMPT_A_PET_RESUMMON_WHEN_DISMOUNTING = 0x00100000, /*NYI*/ // TITLE Do Not Attempt a Pet Resummon When Dismounting
+ SPELL_ATTR5_IGNORE_TARGET_REQUIREMENTS = 0x00200000, /*NYI*/ // TITLE Ignore Target Requirements
+ SPELL_ATTR5_NOT_ON_TRIVIAL = 0x00400000, /*NYI*/ // TITLE Not On Trivial
+ SPELL_ATTR5_NO_PARTIAL_RESISTS = 0x00800000, /*NYI*/ // TITLE No Partial Resists
+ SPELL_ATTR5_IGNORE_CASTER_REQUIREMENTS = 0x01000000, /*NYI*/ // TITLE Ignore Caster Requirements
+ SPELL_ATTR5_ALWAYS_LINE_OF_SIGHT = 0x02000000, /*NYI*/ // TITLE Always Line of Sight
+ SPELL_ATTR5_ALWAYS_AOE_LINE_OF_SIGHT = 0x04000000, /*WRONG IMPL*/ // TITLE Always AOE Line of Sight DESCRIPTION Requires line of sight between caster and target in addition to between dest and target
+ SPELL_ATTR5_NO_CASTER_AURA_ICON = 0x08000000, // TITLE No Caster Aura Icon (client only)
+ SPELL_ATTR5_NO_TARGET_AURA_ICON = 0x10000000, // TITLE No Target Aura Icon (client only)
+ SPELL_ATTR5_AURA_UNIQUE_PER_CASTER = 0x20000000, /*NYI*/ // TITLE Aura Unique Per Caster
+ SPELL_ATTR5_ALWAYS_SHOW_GROUND_TEXTURE = 0x40000000, // TITLE Always Show Ground Texture
+ SPELL_ATTR5_ADD_MELEE_HIT_RATING = 0x80000000 /*NYI*/ // TITLE Add Melee Hit Rating
};
// EnumUtils: DESCRIBE THIS
@@ -717,7 +717,7 @@ enum SpellAttr8 : uint32
SPELL_ATTR8_UNK14 = 0x00004000, // TITLE Unknown attribute 14@Attr8
SPELL_ATTR8_WATER_MOUNT = 0x00008000, // TITLE Requires location to be on liquid surface
SPELL_ATTR8_UNK16 = 0x00010000, // TITLE Unknown attribute 16@Attr8
- SPELL_ATTR8_UNK17 = 0x00020000, // TITLE Unknown attribute 17@Attr8
+ SPELL_ATTR8_HASTE_AFFECTS_DURATION = 0x00020000, // TITLE Haste Affects Duration
SPELL_ATTR8_REMEMBER_SPELLS = 0x00040000, // TTILE Ignore Spellcast Override Cost
SPELL_ATTR8_USE_COMBO_POINTS_ON_ANY_TARGET = 0x00080000, // TITLE Allow Targets Hidden by Spawn Tracking
SPELL_ATTR8_ARMOR_SPECIALIZATION = 0x00100000, // TITLE Requires Equipped Inv Types
diff --git a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
index 865018aa03c..94ece733376 100644
--- a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
+++ b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
@@ -892,38 +892,38 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr5>::ToString(SpellAttr5 value)
{
switch (value)
{
- case SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING: return { "SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING", "Can be channeled while moving", "" };
- case SPELL_ATTR5_NO_REAGENT_WHILE_PREP: return { "SPELL_ATTR5_NO_REAGENT_WHILE_PREP", "No reagents during arena preparation", "" };
+ case SPELL_ATTR5_ALLOW_ACTIONS_DURING_CHANNEL: return { "SPELL_ATTR5_ALLOW_ACTIONS_DURING_CHANNEL", "Allow Actions During Channel", "" };
+ case SPELL_ATTR5_NO_REAGENT_COST_WITH_AURA: return { "SPELL_ATTR5_NO_REAGENT_COST_WITH_AURA", "No Reagent Cost With Aura", "" };
case SPELL_ATTR5_REMOVE_ENTERING_ARENA: return { "SPELL_ATTR5_REMOVE_ENTERING_ARENA", "Remove Entering Arena", "Force this aura to be removed on entering arena, regardless of other properties" };
- case SPELL_ATTR5_USABLE_WHILE_STUNNED: return { "SPELL_ATTR5_USABLE_WHILE_STUNNED", "Usable while stunned", "" };
- case SPELL_ATTR5_UNK4: return { "SPELL_ATTR5_UNK4", "Unknown attribute 4@Attr5", "" };
- case SPELL_ATTR5_SINGLE_TARGET_SPELL: return { "SPELL_ATTR5_SINGLE_TARGET_SPELL", "Single-target aura", "Remove previous application to another unit if applied" };
- case SPELL_ATTR5_UNK6: return { "SPELL_ATTR5_UNK6", "Unknown attribute 6@Attr5", "" };
- case SPELL_ATTR5_UNK7: return { "SPELL_ATTR5_UNK7", "Unknown attribute 7@Attr5", "" };
- case SPELL_ATTR5_CANT_TARGET_PLAYER_CONTROLLED: return { "SPELL_ATTR5_CANT_TARGET_PLAYER_CONTROLLED", "Not On Player Controlled NPC", "" };
- case SPELL_ATTR5_START_PERIODIC_AT_APPLY: return { "SPELL_ATTR5_START_PERIODIC_AT_APPLY", "Immediately do periodic tick on apply", "" };
- case SPELL_ATTR5_HIDE_DURATION: return { "SPELL_ATTR5_HIDE_DURATION", "Do not send aura duration to client", "" };
- case SPELL_ATTR5_ALLOW_TARGET_OF_TARGET_AS_TARGET: return { "SPELL_ATTR5_ALLOW_TARGET_OF_TARGET_AS_TARGET", "Auto-target target of target (client only)", "" };
- case SPELL_ATTR5_MELEE_CHAIN_TARGETING: return { "SPELL_ATTR5_MELEE_CHAIN_TARGETING", "Unknown attribute 12@Attr5", "Cleave related?" };
- case SPELL_ATTR5_HASTE_AFFECT_DURATION: return { "SPELL_ATTR5_HASTE_AFFECT_DURATION", "Duration scales with Haste Rating", "" };
- case SPELL_ATTR5_NOT_USABLE_WHILE_CHARMED: return { "SPELL_ATTR5_NOT_USABLE_WHILE_CHARMED", "Not Available While Charmed", "" };
- case SPELL_ATTR5_UNK15: return { "SPELL_ATTR5_UNK15", "Unknown attribute 15@Attr5", "Related to multi-target spells?" };
- case SPELL_ATTR5_UNK16: return { "SPELL_ATTR5_UNK16", "Unknown attribute 16@Attr5", "" };
- case SPELL_ATTR5_USABLE_WHILE_FEARED: return { "SPELL_ATTR5_USABLE_WHILE_FEARED", "Usable while feared", "" };
- case SPELL_ATTR5_USABLE_WHILE_CONFUSED: return { "SPELL_ATTR5_USABLE_WHILE_CONFUSED", "Usable while confused", "" };
- case SPELL_ATTR5_DONT_TURN_DURING_CAST: return { "SPELL_ATTR5_DONT_TURN_DURING_CAST", "Do not auto-turn while casting", "" };
- case SPELL_ATTR5_UNK20: return { "SPELL_ATTR5_UNK20", "Unknown attribute 20@Attr5", "" };
- case SPELL_ATTR5_UNK21: return { "SPELL_ATTR5_UNK21", "Unknown attribute 21@Attr5", "" };
- case SPELL_ATTR5_UNK22: return { "SPELL_ATTR5_UNK22", "Unknown attribute 22@Attr5", "" };
- case SPELL_ATTR5_UNK23: return { "SPELL_ATTR5_UNK23", "Unknown attribute 23@Attr5", "" };
- case SPELL_ATTR5_UNK24: return { "SPELL_ATTR5_UNK24", "Unknown attribute 24@Attr5", "" };
- case SPELL_ATTR5_UNK25: return { "SPELL_ATTR5_UNK25", "Unknown attribute 25@Attr5", "" };
- case SPELL_ATTR5_ALWAYS_AOE_LINE_OF_SIGHT: return { "SPELL_ATTR5_ALWAYS_AOE_LINE_OF_SIGHT", "Ignore line of sight checks", "" };
- case SPELL_ATTR5_DONT_SHOW_AURA_IF_SELF_CAST: return { "SPELL_ATTR5_DONT_SHOW_AURA_IF_SELF_CAST", "Don't show aura if self-cast (client only)", "" };
- case SPELL_ATTR5_DONT_SHOW_AURA_IF_NOT_SELF_CAST: return { "SPELL_ATTR5_DONT_SHOW_AURA_IF_NOT_SELF_CAST", "Don't show aura unless self-cast (client only)", "" };
- case SPELL_ATTR5_UNK29: return { "SPELL_ATTR5_UNK29", "Unknown attribute 29@Attr5", "" };
- case SPELL_ATTR5_UNK30: return { "SPELL_ATTR5_UNK30", "Unknown attribute 30@Attr5", "" };
- case SPELL_ATTR5_UNK31: return { "SPELL_ATTR5_UNK31", "Unknown attribute 31@Attr5", "Forces nearby enemies to attack caster?" };
+ case SPELL_ATTR5_ALLOW_WHILE_STUNNED: return { "SPELL_ATTR5_ALLOW_WHILE_STUNNED", "Allow While Stunned", "" };
+ case SPELL_ATTR5_TRIGGERS_CHANNELING: return { "SPELL_ATTR5_TRIGGERS_CHANNELING", "Triggers Channeling", "" };
+ case SPELL_ATTR5_LIMIT_N: return { "SPELL_ATTR5_LIMIT_N", "Limit N", "Remove previous application to another unit if applied" };
+ case SPELL_ATTR5_IGNORE_AREA_EFFECT_PVP_CHECK: return { "SPELL_ATTR5_IGNORE_AREA_EFFECT_PVP_CHECK", "Ignore Area Effect PvP Check", "" };
+ case SPELL_ATTR5_NOT_ON_PLAYER: return { "SPELL_ATTR5_NOT_ON_PLAYER", "Not On Player", "" };
+ case SPELL_ATTR5_NOT_ON_PLAYER_CONTROLLED_NPC: return { "SPELL_ATTR5_NOT_ON_PLAYER_CONTROLLED_NPC", "Not On Player Controlled NPC", "" };
+ case SPELL_ATTR5_EXTRA_INITIAL_PERIOD: return { "SPELL_ATTR5_EXTRA_INITIAL_PERIOD", "Extra Initial Period", "Immediately do periodic tick on apply" };
+ case SPELL_ATTR5_DO_NOT_DISPLAY_DURATION: return { "SPELL_ATTR5_DO_NOT_DISPLAY_DURATION", "Do Not Display Duration", "" };
+ case SPELL_ATTR5_IMPLIED_TARGETING: return { "SPELL_ATTR5_IMPLIED_TARGETING", "Implied Targeting (client only)", "" };
+ case SPELL_ATTR5_MELEE_CHAIN_TARGETING: return { "SPELL_ATTR5_MELEE_CHAIN_TARGETING", "Melee Chain Targeting", "" };
+ case SPELL_ATTR5_SPELL_HASTE_AFFECTS_PERIODIC: return { "SPELL_ATTR5_SPELL_HASTE_AFFECTS_PERIODIC", "Spell Haste Affects Periodic", "" };
+ case SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED: return { "SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED", "Not Available While Charmed", "" };
+ case SPELL_ATTR5_TREAT_AS_AREA_EFFECT: return { "SPELL_ATTR5_TREAT_AS_AREA_EFFECT", "Treat as Area Effect", "" };
+ case SPELL_ATTR5_AURA_AFFECTS_NOT_JUST_REQ_EQUIPPED_ITEM: return { "SPELL_ATTR5_AURA_AFFECTS_NOT_JUST_REQ_EQUIPPED_ITEM", "Aura Affects Not Just Req. Equipped Item", "" };
+ case SPELL_ATTR5_ALLOW_WHILE_FLEEING: return { "SPELL_ATTR5_ALLOW_WHILE_FLEEING", "Allow While Fleeing", "" };
+ case SPELL_ATTR5_ALLOW_WHILE_CONFUSED: return { "SPELL_ATTR5_ALLOW_WHILE_CONFUSED", "Allow While Confused", "" };
+ case SPELL_ATTR5_AI_DOESNT_FACE_TARGET: return { "SPELL_ATTR5_AI_DOESNT_FACE_TARGET", "AI Doesn't Face Target", "" };
+ case SPELL_ATTR5_DO_NOT_ATTEMPT_A_PET_RESUMMON_WHEN_DISMOUNTING: return { "SPELL_ATTR5_DO_NOT_ATTEMPT_A_PET_RESUMMON_WHEN_DISMOUNTING", "Do Not Attempt a Pet Resummon When Dismounting", "" };
+ case SPELL_ATTR5_IGNORE_TARGET_REQUIREMENTS: return { "SPELL_ATTR5_IGNORE_TARGET_REQUIREMENTS", "Ignore Target Requirements", "" };
+ case SPELL_ATTR5_NOT_ON_TRIVIAL: return { "SPELL_ATTR5_NOT_ON_TRIVIAL", "Not On Trivial", "" };
+ case SPELL_ATTR5_NO_PARTIAL_RESISTS: return { "SPELL_ATTR5_NO_PARTIAL_RESISTS", "No Partial Resists", "" };
+ case SPELL_ATTR5_IGNORE_CASTER_REQUIREMENTS: return { "SPELL_ATTR5_IGNORE_CASTER_REQUIREMENTS", "Ignore Caster Requirements", "" };
+ case SPELL_ATTR5_ALWAYS_LINE_OF_SIGHT: return { "SPELL_ATTR5_ALWAYS_LINE_OF_SIGHT", "Always Line of Sight", "" };
+ case SPELL_ATTR5_ALWAYS_AOE_LINE_OF_SIGHT: return { "SPELL_ATTR5_ALWAYS_AOE_LINE_OF_SIGHT", "Always AOE Line of Sight", "" };
+ case SPELL_ATTR5_NO_CASTER_AURA_ICON: return { "SPELL_ATTR5_NO_CASTER_AURA_ICON", "No Caster Aura Icon (client only)", "" };
+ case SPELL_ATTR5_NO_TARGET_AURA_ICON: return { "SPELL_ATTR5_NO_TARGET_AURA_ICON", "No Target Aura Icon (client only)", "" };
+ case SPELL_ATTR5_AURA_UNIQUE_PER_CASTER: return { "SPELL_ATTR5_AURA_UNIQUE_PER_CASTER", "Aura Unique Per Caster", "" };
+ case SPELL_ATTR5_ALWAYS_SHOW_GROUND_TEXTURE: return { "SPELL_ATTR5_ALWAYS_SHOW_GROUND_TEXTURE", "Always Show Ground Texture", "" };
+ case SPELL_ATTR5_ADD_MELEE_HIT_RATING: return { "SPELL_ATTR5_ADD_MELEE_HIT_RATING", "Add Melee Hit Rating", "" };
default: throw std::out_of_range("value");
}
}
@@ -936,38 +936,38 @@ TC_API_EXPORT SpellAttr5 EnumUtils<SpellAttr5>::FromIndex(size_t index)
{
switch (index)
{
- case 0: return SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING;
- case 1: return SPELL_ATTR5_NO_REAGENT_WHILE_PREP;
+ case 0: return SPELL_ATTR5_ALLOW_ACTIONS_DURING_CHANNEL;
+ case 1: return SPELL_ATTR5_NO_REAGENT_COST_WITH_AURA;
case 2: return SPELL_ATTR5_REMOVE_ENTERING_ARENA;
- case 3: return SPELL_ATTR5_USABLE_WHILE_STUNNED;
- case 4: return SPELL_ATTR5_UNK4;
- case 5: return SPELL_ATTR5_SINGLE_TARGET_SPELL;
- case 6: return SPELL_ATTR5_UNK6;
- case 7: return SPELL_ATTR5_UNK7;
- case 8: return SPELL_ATTR5_CANT_TARGET_PLAYER_CONTROLLED;
- case 9: return SPELL_ATTR5_START_PERIODIC_AT_APPLY;
- case 10: return SPELL_ATTR5_HIDE_DURATION;
- case 11: return SPELL_ATTR5_ALLOW_TARGET_OF_TARGET_AS_TARGET;
+ case 3: return SPELL_ATTR5_ALLOW_WHILE_STUNNED;
+ case 4: return SPELL_ATTR5_TRIGGERS_CHANNELING;
+ case 5: return SPELL_ATTR5_LIMIT_N;
+ case 6: return SPELL_ATTR5_IGNORE_AREA_EFFECT_PVP_CHECK;
+ case 7: return SPELL_ATTR5_NOT_ON_PLAYER;
+ case 8: return SPELL_ATTR5_NOT_ON_PLAYER_CONTROLLED_NPC;
+ case 9: return SPELL_ATTR5_EXTRA_INITIAL_PERIOD;
+ case 10: return SPELL_ATTR5_DO_NOT_DISPLAY_DURATION;
+ case 11: return SPELL_ATTR5_IMPLIED_TARGETING;
case 12: return SPELL_ATTR5_MELEE_CHAIN_TARGETING;
- case 13: return SPELL_ATTR5_HASTE_AFFECT_DURATION;
- case 14: return SPELL_ATTR5_NOT_USABLE_WHILE_CHARMED;
- case 15: return SPELL_ATTR5_UNK15;
- case 16: return SPELL_ATTR5_UNK16;
- case 17: return SPELL_ATTR5_USABLE_WHILE_FEARED;
- case 18: return SPELL_ATTR5_USABLE_WHILE_CONFUSED;
- case 19: return SPELL_ATTR5_DONT_TURN_DURING_CAST;
- case 20: return SPELL_ATTR5_UNK20;
- case 21: return SPELL_ATTR5_UNK21;
- case 22: return SPELL_ATTR5_UNK22;
- case 23: return SPELL_ATTR5_UNK23;
- case 24: return SPELL_ATTR5_UNK24;
- case 25: return SPELL_ATTR5_UNK25;
+ case 13: return SPELL_ATTR5_SPELL_HASTE_AFFECTS_PERIODIC;
+ case 14: return SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED;
+ case 15: return SPELL_ATTR5_TREAT_AS_AREA_EFFECT;
+ case 16: return SPELL_ATTR5_AURA_AFFECTS_NOT_JUST_REQ_EQUIPPED_ITEM;
+ case 17: return SPELL_ATTR5_ALLOW_WHILE_FLEEING;
+ case 18: return SPELL_ATTR5_ALLOW_WHILE_CONFUSED;
+ case 19: return SPELL_ATTR5_AI_DOESNT_FACE_TARGET;
+ case 20: return SPELL_ATTR5_DO_NOT_ATTEMPT_A_PET_RESUMMON_WHEN_DISMOUNTING;
+ case 21: return SPELL_ATTR5_IGNORE_TARGET_REQUIREMENTS;
+ case 22: return SPELL_ATTR5_NOT_ON_TRIVIAL;
+ case 23: return SPELL_ATTR5_NO_PARTIAL_RESISTS;
+ case 24: return SPELL_ATTR5_IGNORE_CASTER_REQUIREMENTS;
+ case 25: return SPELL_ATTR5_ALWAYS_LINE_OF_SIGHT;
case 26: return SPELL_ATTR5_ALWAYS_AOE_LINE_OF_SIGHT;
- case 27: return SPELL_ATTR5_DONT_SHOW_AURA_IF_SELF_CAST;
- case 28: return SPELL_ATTR5_DONT_SHOW_AURA_IF_NOT_SELF_CAST;
- case 29: return SPELL_ATTR5_UNK29;
- case 30: return SPELL_ATTR5_UNK30;
- case 31: return SPELL_ATTR5_UNK31;
+ case 27: return SPELL_ATTR5_NO_CASTER_AURA_ICON;
+ case 28: return SPELL_ATTR5_NO_TARGET_AURA_ICON;
+ case 29: return SPELL_ATTR5_AURA_UNIQUE_PER_CASTER;
+ case 30: return SPELL_ATTR5_ALWAYS_SHOW_GROUND_TEXTURE;
+ case 31: return SPELL_ATTR5_ADD_MELEE_HIT_RATING;
default: throw std::out_of_range("index");
}
}
@@ -977,38 +977,38 @@ TC_API_EXPORT size_t EnumUtils<SpellAttr5>::ToIndex(SpellAttr5 value)
{
switch (value)
{
- case SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING: return 0;
- case SPELL_ATTR5_NO_REAGENT_WHILE_PREP: return 1;
+ case SPELL_ATTR5_ALLOW_ACTIONS_DURING_CHANNEL: return 0;
+ case SPELL_ATTR5_NO_REAGENT_COST_WITH_AURA: return 1;
case SPELL_ATTR5_REMOVE_ENTERING_ARENA: return 2;
- case SPELL_ATTR5_USABLE_WHILE_STUNNED: return 3;
- case SPELL_ATTR5_UNK4: return 4;
- case SPELL_ATTR5_SINGLE_TARGET_SPELL: return 5;
- case SPELL_ATTR5_UNK6: return 6;
- case SPELL_ATTR5_UNK7: return 7;
- case SPELL_ATTR5_CANT_TARGET_PLAYER_CONTROLLED: return 8;
- case SPELL_ATTR5_START_PERIODIC_AT_APPLY: return 9;
- case SPELL_ATTR5_HIDE_DURATION: return 10;
- case SPELL_ATTR5_ALLOW_TARGET_OF_TARGET_AS_TARGET: return 11;
+ case SPELL_ATTR5_ALLOW_WHILE_STUNNED: return 3;
+ case SPELL_ATTR5_TRIGGERS_CHANNELING: return 4;
+ case SPELL_ATTR5_LIMIT_N: return 5;
+ case SPELL_ATTR5_IGNORE_AREA_EFFECT_PVP_CHECK: return 6;
+ case SPELL_ATTR5_NOT_ON_PLAYER: return 7;
+ case SPELL_ATTR5_NOT_ON_PLAYER_CONTROLLED_NPC: return 8;
+ case SPELL_ATTR5_EXTRA_INITIAL_PERIOD: return 9;
+ case SPELL_ATTR5_DO_NOT_DISPLAY_DURATION: return 10;
+ case SPELL_ATTR5_IMPLIED_TARGETING: return 11;
case SPELL_ATTR5_MELEE_CHAIN_TARGETING: return 12;
- case SPELL_ATTR5_HASTE_AFFECT_DURATION: return 13;
- case SPELL_ATTR5_NOT_USABLE_WHILE_CHARMED: return 14;
- case SPELL_ATTR5_UNK15: return 15;
- case SPELL_ATTR5_UNK16: return 16;
- case SPELL_ATTR5_USABLE_WHILE_FEARED: return 17;
- case SPELL_ATTR5_USABLE_WHILE_CONFUSED: return 18;
- case SPELL_ATTR5_DONT_TURN_DURING_CAST: return 19;
- case SPELL_ATTR5_UNK20: return 20;
- case SPELL_ATTR5_UNK21: return 21;
- case SPELL_ATTR5_UNK22: return 22;
- case SPELL_ATTR5_UNK23: return 23;
- case SPELL_ATTR5_UNK24: return 24;
- case SPELL_ATTR5_UNK25: return 25;
+ case SPELL_ATTR5_SPELL_HASTE_AFFECTS_PERIODIC: return 13;
+ case SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED: return 14;
+ case SPELL_ATTR5_TREAT_AS_AREA_EFFECT: return 15;
+ case SPELL_ATTR5_AURA_AFFECTS_NOT_JUST_REQ_EQUIPPED_ITEM: return 16;
+ case SPELL_ATTR5_ALLOW_WHILE_FLEEING: return 17;
+ case SPELL_ATTR5_ALLOW_WHILE_CONFUSED: return 18;
+ case SPELL_ATTR5_AI_DOESNT_FACE_TARGET: return 19;
+ case SPELL_ATTR5_DO_NOT_ATTEMPT_A_PET_RESUMMON_WHEN_DISMOUNTING: return 20;
+ case SPELL_ATTR5_IGNORE_TARGET_REQUIREMENTS: return 21;
+ case SPELL_ATTR5_NOT_ON_TRIVIAL: return 22;
+ case SPELL_ATTR5_NO_PARTIAL_RESISTS: return 23;
+ case SPELL_ATTR5_IGNORE_CASTER_REQUIREMENTS: return 24;
+ case SPELL_ATTR5_ALWAYS_LINE_OF_SIGHT: return 25;
case SPELL_ATTR5_ALWAYS_AOE_LINE_OF_SIGHT: return 26;
- case SPELL_ATTR5_DONT_SHOW_AURA_IF_SELF_CAST: return 27;
- case SPELL_ATTR5_DONT_SHOW_AURA_IF_NOT_SELF_CAST: return 28;
- case SPELL_ATTR5_UNK29: return 29;
- case SPELL_ATTR5_UNK30: return 30;
- case SPELL_ATTR5_UNK31: return 31;
+ case SPELL_ATTR5_NO_CASTER_AURA_ICON: return 27;
+ case SPELL_ATTR5_NO_TARGET_AURA_ICON: return 28;
+ case SPELL_ATTR5_AURA_UNIQUE_PER_CASTER: return 29;
+ case SPELL_ATTR5_ALWAYS_SHOW_GROUND_TEXTURE: return 30;
+ case SPELL_ATTR5_ADD_MELEE_HIT_RATING: return 31;
default: throw std::out_of_range("value");
}
}
@@ -1296,7 +1296,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr8>::ToString(SpellAttr8 value)
case SPELL_ATTR8_UNK14: return { "SPELL_ATTR8_UNK14", "Unknown attribute 14@Attr8", "" };
case SPELL_ATTR8_WATER_MOUNT: return { "SPELL_ATTR8_WATER_MOUNT", "Requires location to be on liquid surface", "" };
case SPELL_ATTR8_UNK16: return { "SPELL_ATTR8_UNK16", "Unknown attribute 16@Attr8", "" };
- case SPELL_ATTR8_UNK17: return { "SPELL_ATTR8_UNK17", "Unknown attribute 17@Attr8", "" };
+ case SPELL_ATTR8_HASTE_AFFECTS_DURATION: return { "SPELL_ATTR8_HASTE_AFFECTS_DURATION", "Haste Affects Duration", "" };
case SPELL_ATTR8_REMEMBER_SPELLS: return { "SPELL_ATTR8_REMEMBER_SPELLS", "SPELL_ATTR8_REMEMBER_SPELLS", "TTILE Ignore Spellcast Override Cost" };
case SPELL_ATTR8_USE_COMBO_POINTS_ON_ANY_TARGET: return { "SPELL_ATTR8_USE_COMBO_POINTS_ON_ANY_TARGET", "Allow Targets Hidden by Spawn Tracking", "" };
case SPELL_ATTR8_ARMOR_SPECIALIZATION: return { "SPELL_ATTR8_ARMOR_SPECIALIZATION", "Requires Equipped Inv Types", "" };
@@ -1340,7 +1340,7 @@ TC_API_EXPORT SpellAttr8 EnumUtils<SpellAttr8>::FromIndex(size_t index)
case 14: return SPELL_ATTR8_UNK14;
case 15: return SPELL_ATTR8_WATER_MOUNT;
case 16: return SPELL_ATTR8_UNK16;
- case 17: return SPELL_ATTR8_UNK17;
+ case 17: return SPELL_ATTR8_HASTE_AFFECTS_DURATION;
case 18: return SPELL_ATTR8_REMEMBER_SPELLS;
case 19: return SPELL_ATTR8_USE_COMBO_POINTS_ON_ANY_TARGET;
case 20: return SPELL_ATTR8_ARMOR_SPECIALIZATION;
@@ -1381,7 +1381,7 @@ TC_API_EXPORT size_t EnumUtils<SpellAttr8>::ToIndex(SpellAttr8 value)
case SPELL_ATTR8_UNK14: return 14;
case SPELL_ATTR8_WATER_MOUNT: return 15;
case SPELL_ATTR8_UNK16: return 16;
- case SPELL_ATTR8_UNK17: return 17;
+ case SPELL_ATTR8_HASTE_AFFECTS_DURATION: return 17;
case SPELL_ATTR8_REMEMBER_SPELLS: return 18;
case SPELL_ATTR8_USE_COMBO_POINTS_ON_ANY_TARGET: return 19;
case SPELL_ATTR8_ARMOR_SPECIALIZATION: return 20;
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index 3d9bec79654..9cad166c92a 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -706,7 +706,7 @@ uint32 AuraEffect::GetTotalTicks() const
if (_period && !GetBase()->IsPermanent())
{
totalTicks = static_cast<uint32>(GetBase()->GetMaxDuration() / _period);
- if (m_spellInfo->HasAttribute(SPELL_ATTR5_START_PERIODIC_AT_APPLY))
+ if (m_spellInfo->HasAttribute(SPELL_ATTR5_EXTRA_INITIAL_PERIOD))
++totalTicks;
}
@@ -720,7 +720,7 @@ void AuraEffect::ResetPeriodic(bool resetPeriodicTimer /*= false*/)
{
_periodicTimer = 0;
// Start periodic on next tick or at aura apply
- if (m_spellInfo->HasAttribute(SPELL_ATTR5_START_PERIODIC_AT_APPLY))
+ if (m_spellInfo->HasAttribute(SPELL_ATTR5_EXTRA_INITIAL_PERIOD))
_periodicTimer = _period;
}
}
@@ -770,7 +770,7 @@ void AuraEffect::CalculatePeriodic(Unit* caster, bool resetPeriodicTimer /*= tru
// Haste modifies periodic time of channeled spells
if (m_spellInfo->IsChanneled())
caster->ModSpellDurationTime(m_spellInfo, _period);
- else if (m_spellInfo->HasAttribute(SPELL_ATTR5_HASTE_AFFECT_DURATION))
+ else if (m_spellInfo->HasAttribute(SPELL_ATTR5_SPELL_HASTE_AFFECTS_PERIODIC))
_period = int32(_period * caster->m_unitData->ModCastingSpeed);
}
}
@@ -786,7 +786,7 @@ void AuraEffect::CalculatePeriodic(Unit* caster, bool resetPeriodicTimer /*= tru
_periodicTimer = elapsedTime % uint32(_period);
}
- if (m_spellInfo->HasAttribute(SPELL_ATTR5_START_PERIODIC_AT_APPLY))
+ if (m_spellInfo->HasAttribute(SPELL_ATTR5_EXTRA_INITIAL_PERIOD))
++_ticksDone;
}
else // aura just created or reapplied
diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp
index 7e8c66b2015..b673b02eb9e 100644
--- a/src/server/game/Spells/Auras/SpellAuras.cpp
+++ b/src/server/game/Spells/Auras/SpellAuras.cpp
@@ -234,7 +234,7 @@ void AuraApplication::BuildUpdatePacket(WorldPackets::Spells::AuraInfo& auraInfo
auraData.SpellID = aura->GetId();
auraData.Visual = aura->GetSpellVisual();
auraData.Flags = GetFlags();
- if (aura->GetType() != DYNOBJ_AURA_TYPE && aura->GetMaxDuration() > 0 && !aura->GetSpellInfo()->HasAttribute(SPELL_ATTR5_HIDE_DURATION))
+ if (aura->GetType() != DYNOBJ_AURA_TYPE && aura->GetMaxDuration() > 0 && !aura->GetSpellInfo()->HasAttribute(SPELL_ATTR5_DO_NOT_DISPLAY_DURATION))
auraData.Flags |= AFLAG_DURATION;
auraData.ActiveFlags = GetEffectMask();
@@ -894,7 +894,7 @@ void Aura::RefreshDuration(bool withMods)
{
int32 duration = m_spellInfo->GetMaxDuration();
// Calculate duration of periodics affected by haste.
- if (m_spellInfo->HasAttribute(SPELL_ATTR5_HASTE_AFFECT_DURATION))
+ if (m_spellInfo->HasAttribute(SPELL_ATTR8_HASTE_AFFECTS_DURATION))
duration = int32(duration * caster->m_unitData->ModCastingSpeed);
SetMaxDuration(duration);
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 3a1817b611b..630585884db 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -3111,7 +3111,7 @@ void Spell::DoSpellEffectHit(Unit* unit, SpellEffectInfo const& spellEffectInfo,
// Haste modifies duration of channeled spells
if (m_spellInfo->IsChanneled())
caster->ModSpellDurationTime(m_spellInfo, hitInfo.AuraDuration, this);
- else if (m_spellInfo->HasAttribute(SPELL_ATTR5_HASTE_AFFECT_DURATION))
+ else if (m_spellInfo->HasAttribute(SPELL_ATTR8_HASTE_AFFECTS_DURATION))
{
int32 origDuration = hitInfo.AuraDuration;
hitInfo.AuraDuration = 0;
@@ -3374,7 +3374,7 @@ SpellCastResult Spell::prepare(SpellCastTargets const& targets, AuraEffect const
m_casttime = m_spellInfo->CalcCastTime(this);
// don't allow channeled spells / spells with cast time to be cast while moving
- // exception are only channeled spells that have no casttime and SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING
+ // exception are only channeled spells that have no casttime and dont have movement interrupt flag
// (even if they are interrupted on moving, spells with almost immediate effect get to have their effect processed before movement interrupter kicks in)
// don't cancel spells which are affected by a SPELL_AURA_CAST_WHILE_WALKING effect
if (((m_spellInfo->IsChanneled() || m_casttime) && m_caster->GetTypeId() == TYPEID_PLAYER && !(m_caster->ToUnit()->IsCharmed() && m_caster->ToUnit()->GetCharmerGUID().IsCreature()) && m_caster->ToUnit()->isMoving() &&
@@ -6643,13 +6643,13 @@ SpellCastResult Spell::CheckCasterAuras(int32* param1) const
// still they need to be checked against certain mechanics
// SPELL_ATTR5_USABLE_WHILE_STUNNED by default only MECHANIC_STUN (ie no sleep, knockout, freeze, etc.)
- bool usableWhileStunned = m_spellInfo->HasAttribute(SPELL_ATTR5_USABLE_WHILE_STUNNED);
+ bool usableWhileStunned = m_spellInfo->HasAttribute(SPELL_ATTR5_ALLOW_WHILE_STUNNED);
// SPELL_ATTR5_USABLE_WHILE_FEARED by default only fear (ie no horror)
- bool usableWhileFeared = m_spellInfo->HasAttribute(SPELL_ATTR5_USABLE_WHILE_FEARED);
+ bool usableWhileFeared = m_spellInfo->HasAttribute(SPELL_ATTR5_ALLOW_WHILE_FLEEING);
// SPELL_ATTR5_USABLE_WHILE_CONFUSED by default only disorient (ie no polymorph)
- bool usableWhileConfused = m_spellInfo->HasAttribute(SPELL_ATTR5_USABLE_WHILE_CONFUSED);
+ bool usableWhileConfused = m_spellInfo->HasAttribute(SPELL_ATTR5_ALLOW_WHILE_CONFUSED);
// Check whether the cast should be prevented by any state you might have.
SpellCastResult result = SPELL_CAST_OK;
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index b362e91621c..47c69926814 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -1648,7 +1648,7 @@ bool SpellInfo::IsChanneled() const
bool SpellInfo::IsMoveAllowedChannel() const
{
- return IsChanneled() && (HasAttribute(SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING) || !ChannelInterruptFlags.HasFlag(SpellAuraInterruptFlags::Moving | SpellAuraInterruptFlags::Turning));
+ return IsChanneled() && !ChannelInterruptFlags.HasFlag(SpellAuraInterruptFlags::Moving | SpellAuraInterruptFlags::Turning);
}
bool SpellInfo::NeedsComboPoints() const
@@ -1816,7 +1816,7 @@ bool SpellInfo::CanDispelAura(SpellInfo const* auraSpellInfo) const
bool SpellInfo::IsSingleTarget() const
{
// all other single target spells have if it has AttributesEx5
- if (HasAttribute(SPELL_ATTR5_SINGLE_TARGET_SPELL))
+ if (HasAttribute(SPELL_ATTR5_LIMIT_N))
return true;
switch (GetSpellSpecific())
@@ -3468,7 +3468,7 @@ void SpellInfo::_LoadImmunityInfo()
_allowedMechanicMask |= immuneInfo.MechanicImmuneMask;
}
- if (HasAttribute(SPELL_ATTR5_USABLE_WHILE_STUNNED))
+ if (HasAttribute(SPELL_ATTR5_ALLOW_WHILE_STUNNED))
{
switch (Id)
{
@@ -3488,10 +3488,10 @@ void SpellInfo::_LoadImmunityInfo()
}
}
- if (HasAttribute(SPELL_ATTR5_USABLE_WHILE_CONFUSED))
+ if (HasAttribute(SPELL_ATTR5_ALLOW_WHILE_CONFUSED))
_allowedMechanicMask |= (1 << MECHANIC_DISORIENTED);
- if (HasAttribute(SPELL_ATTR5_USABLE_WHILE_FEARED))
+ if (HasAttribute(SPELL_ATTR5_ALLOW_WHILE_FLEEING))
{
switch (Id)
{
@@ -3824,7 +3824,7 @@ uint32 SpellInfo::GetMaxTicks() const
if (effect.ApplyAuraPeriod > 0 && DotDuration > 0)
{
totalTicks = static_cast<uint32>(DotDuration) / effect.ApplyAuraPeriod;
- if (HasAttribute(SPELL_ATTR5_START_PERIODIC_AT_APPLY))
+ if (HasAttribute(SPELL_ATTR5_EXTRA_INITIAL_PERIOD))
++totalTicks;
}
break;
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 8b56ff8b98a..c11f101a922 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -3716,7 +3716,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// Earthbind Totem (instant pulse)
ApplySpellFix({ 6474 }, [](SpellInfo* spellInfo)
{
- spellInfo->AttributesEx5 |= SPELL_ATTR5_START_PERIODIC_AT_APPLY;
+ spellInfo->AttributesEx5 |= SPELL_ATTR5_EXTRA_INITIAL_PERIOD;
});
ApplySpellFix({
@@ -4700,7 +4700,7 @@ void SpellMgr::LoadSpellInfoCorrections()
// due to the way spell system works, unit would change orientation in Spell::_cast
if (spellInfo->HasAura(SPELL_AURA_CONTROL_VEHICLE))
- spellInfo->AttributesEx5 |= SPELL_ATTR5_DONT_TURN_DURING_CAST;
+ spellInfo->AttributesEx5 |= SPELL_ATTR5_AI_DOESNT_FACE_TARGET;
if (spellInfo->ActiveIconFileDataId == 135754) // flight
spellInfo->Attributes |= SPELL_ATTR0_PASSIVE;