diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-05-02 01:11:38 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-05-02 01:11:38 +0200 |
commit | 738f285432b1ef6109d1c54ab7f40d743a994631 (patch) | |
tree | 2162ca42e1b5fb97b9cc145960b0a205d66affeb | |
parent | 8d16a79dea4c0100d36e13b068c42499a3a48154 (diff) |
Core/Spells: Rename SpellAttr5 to use official attribute names
* Implemented SPELL_ATTR8_HASTE_AFFECTS_DURATION
-rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 66 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp | 184 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 8 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuras.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 10 | ||||
-rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 12 | ||||
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 4 |
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; |