diff options
-rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 2 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp | 6 |
3 files changed, 6 insertions, 4 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 6f4795a8b4b..25132339840 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -2497,6 +2497,8 @@ void WorldObject::ModSpellCastTime(SpellInfo const* spellInfo, int32& castTime, else if (!(spellInfo->HasAttribute(SPELL_ATTR0_IS_ABILITY) || spellInfo->HasAttribute(SPELL_ATTR0_IS_TRADESKILL) || spellInfo->HasAttribute(SPELL_ATTR3_IGNORE_CASTER_MODIFIERS)) && ((GetTypeId() == TYPEID_PLAYER && spellInfo->SpellFamilyName) || GetTypeId() == TYPEID_UNIT)) castTime = unitCaster->CanInstantCast() ? 0 : int32(float(castTime) * unitCaster->m_unitData->ModCastingSpeed); + else if (spellInfo->HasAttribute(SPELL_ATTR0_IS_ABILITY) && spellInfo->HasAttribute(SPELL_ATTR9_HASTE_AFFECTS_MELEE_ABILITY_CASTTIME)) + castTime = int32(float(castTime) * unitCaster->m_modAttackSpeedPct[BASE_ATTACK]); else if (spellInfo->HasAttribute(SPELL_ATTR0_USES_RANGED_SLOT) && !spellInfo->HasAttribute(SPELL_ATTR2_AUTO_REPEAT)) castTime = int32(float(castTime) * unitCaster->m_modAttackSpeedPct[RANGED_ATTACK]); else if (IsPartOfSkillLine(SKILL_COOKING, spellInfo->Id) && unitCaster->HasAura(67556)) // cooking with Chef Hat. diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index f42fcd0bab9..50334dcb10f 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -772,7 +772,7 @@ enum SpellAttr9 : uint32 SPELL_ATTR9_TARGET_MUST_BE_GROUNDED = 0x00000400, // TITLE Target Must Be Grounded SPELL_ATTR9_ALLOW_WHILE_BANISHED_AURA_STATE = 0x00000800, // TITLE Allow While Banished Aura State DESCRIPTION Doesn't seem to be doing anything, banish behaves like a regular stun now - tested on patch 10.2.7 with spell 17767 (doesn't have this attribute, only SPELL_ATTR5_ALLOW_WHILE_STUNNED and was castable while banished) SPELL_ATTR9_FACE_UNIT_TARGET_UPON_COMPLETION_OF_JUMP_CHARGE = 0x00001000, // TITLE Face unit target upon completion of jump charge - SPELL_ATTR9_SLAM = 0x00002000, // TITLE Haste Affects Melee Ability Casttime + SPELL_ATTR9_HASTE_AFFECTS_MELEE_ABILITY_CASTTIME = 0x00002000, // TITLE Haste Affects Melee Ability Casttime SPELL_ATTR9_USABLE_IN_RATED_BATTLEGROUNDS = 0x00004000, // TITLE Ignore Default Rated Battleground Restrictions SPELL_ATTR9_UNK15 = 0x00008000, // TITLE Unknown attribute 15@Attr9 SPELL_ATTR9_UNK16 = 0x00010000, // TITLE Unknown attribute 16@Attr9 diff --git a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp index 8c1873fdc17..024f83e67fa 100644 --- a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp +++ b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp @@ -1448,7 +1448,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr9>::ToString(SpellAttr9 value) case SPELL_ATTR9_TARGET_MUST_BE_GROUNDED: return { "SPELL_ATTR9_TARGET_MUST_BE_GROUNDED", "Target Must Be Grounded", "" }; case SPELL_ATTR9_ALLOW_WHILE_BANISHED_AURA_STATE: return { "SPELL_ATTR9_ALLOW_WHILE_BANISHED_AURA_STATE", "Allow While Banished Aura State", "Doesn't seem to be doing anything, banish behaves like a regular stun now - tested on patch 10.2.7 with spell 17767 (doesn't have this attribute, only SPELL_ATTR5_ALLOW_WHILE_STUNNED and was castable while banished)" }; case SPELL_ATTR9_FACE_UNIT_TARGET_UPON_COMPLETION_OF_JUMP_CHARGE: return { "SPELL_ATTR9_FACE_UNIT_TARGET_UPON_COMPLETION_OF_JUMP_CHARGE", "Face unit target upon completion of jump charge", "" }; - case SPELL_ATTR9_SLAM: return { "SPELL_ATTR9_SLAM", "Haste Affects Melee Ability Casttime", "" }; + case SPELL_ATTR9_HASTE_AFFECTS_MELEE_ABILITY_CASTTIME: return { "SPELL_ATTR9_HASTE_AFFECTS_MELEE_ABILITY_CASTTIME", "Haste Affects Melee Ability Casttime", "" }; case SPELL_ATTR9_USABLE_IN_RATED_BATTLEGROUNDS: return { "SPELL_ATTR9_USABLE_IN_RATED_BATTLEGROUNDS", "Ignore Default Rated Battleground Restrictions", "" }; case SPELL_ATTR9_UNK15: return { "SPELL_ATTR9_UNK15", "Unknown attribute 15@Attr9", "" }; case SPELL_ATTR9_UNK16: return { "SPELL_ATTR9_UNK16", "Unknown attribute 16@Attr9", "" }; @@ -1492,7 +1492,7 @@ TC_API_EXPORT SpellAttr9 EnumUtils<SpellAttr9>::FromIndex(size_t index) case 10: return SPELL_ATTR9_TARGET_MUST_BE_GROUNDED; case 11: return SPELL_ATTR9_ALLOW_WHILE_BANISHED_AURA_STATE; case 12: return SPELL_ATTR9_FACE_UNIT_TARGET_UPON_COMPLETION_OF_JUMP_CHARGE; - case 13: return SPELL_ATTR9_SLAM; + case 13: return SPELL_ATTR9_HASTE_AFFECTS_MELEE_ABILITY_CASTTIME; case 14: return SPELL_ATTR9_USABLE_IN_RATED_BATTLEGROUNDS; case 15: return SPELL_ATTR9_UNK15; case 16: return SPELL_ATTR9_UNK16; @@ -1533,7 +1533,7 @@ TC_API_EXPORT size_t EnumUtils<SpellAttr9>::ToIndex(SpellAttr9 value) case SPELL_ATTR9_TARGET_MUST_BE_GROUNDED: return 10; case SPELL_ATTR9_ALLOW_WHILE_BANISHED_AURA_STATE: return 11; case SPELL_ATTR9_FACE_UNIT_TARGET_UPON_COMPLETION_OF_JUMP_CHARGE: return 12; - case SPELL_ATTR9_SLAM: return 13; + case SPELL_ATTR9_HASTE_AFFECTS_MELEE_ABILITY_CASTTIME: return 13; case SPELL_ATTR9_USABLE_IN_RATED_BATTLEGROUNDS: return 14; case SPELL_ATTR9_UNK15: return 15; case SPELL_ATTR9_UNK16: return 16; |