Core/Spells: Implemented SPELL_ATTR9_HASTE_AFFECTS_MELEE_ABILITY_CASTTIME

This commit is contained in:
Shauren
2024-06-24 11:21:50 +02:00
parent d51d6b0abe
commit 0d5a1b175f
3 changed files with 6 additions and 4 deletions

View File

@@ -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.

View File

@@ -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

View File

@@ -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;