mirror of
https://github.com/araxiaonline/TrinityCore2.git
synced 2026-06-19 06:19:38 -04:00
Core/Spells: Fix talent Sword Specialization.
This commit is contained in:
@@ -1968,7 +1968,7 @@ void Unit::AttackerStateUpdate (Unit* victim, WeaponAttackType attType, bool ext
|
||||
return; // ignore ranged case
|
||||
|
||||
// melee attack spell casted at main hand attack only - no normal melee dmg dealt
|
||||
if (attType == BASE_ATTACK && m_currentSpells[CURRENT_MELEE_SPELL])
|
||||
if (attType == BASE_ATTACK && m_currentSpells[CURRENT_MELEE_SPELL] && !extra)
|
||||
m_currentSpells[CURRENT_MELEE_SPELL]->cast();
|
||||
else
|
||||
{
|
||||
@@ -1993,15 +1993,14 @@ void Unit::AttackerStateUpdate (Unit* victim, WeaponAttackType attType, bool ext
|
||||
sLog->outStaticDebug("AttackerStateUpdate: (NPC) %u attacked %u (TypeId: %u) for %u dmg, absorbed %u, blocked %u, resisted %u.",
|
||||
GetGUIDLow(), victim->GetGUIDLow(), victim->GetTypeId(), damageInfo.damage, damageInfo.absorb, damageInfo.blocked_amount, damageInfo.resist);
|
||||
}
|
||||
}
|
||||
|
||||
if (!extra && m_extraAttacks)
|
||||
void Unit::HandleProcExtraAttackFor(Unit* victim)
|
||||
{
|
||||
while (m_extraAttacks)
|
||||
{
|
||||
while(m_extraAttacks)
|
||||
{
|
||||
AttackerStateUpdate(victim, BASE_ATTACK, true);
|
||||
if (m_extraAttacks > 0)
|
||||
--m_extraAttacks;
|
||||
}
|
||||
AttackerStateUpdate(victim, BASE_ATTACK, true);
|
||||
--m_extraAttacks;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1455,6 +1455,7 @@ class Unit : public WorldObject
|
||||
|
||||
void CalculateMeleeDamage(Unit* pVictim, uint32 damage, CalcDamageInfo* damageInfo, WeaponAttackType attackType = BASE_ATTACK);
|
||||
void DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss);
|
||||
void HandleProcExtraAttackFor(Unit* victim);
|
||||
|
||||
void CalculateSpellDamageTaken(SpellNonMeleeDamage* damageInfo, int32 damage, SpellInfo const* spellInfo, WeaponAttackType attackType = BASE_ATTACK, bool crit = false);
|
||||
void DealSpellDamage(SpellNonMeleeDamage* damageInfo, bool durabilityLoss);
|
||||
|
||||
@@ -3472,6 +3472,10 @@ void Spell::_handle_finish_phase()
|
||||
if (m_comboPointGain)
|
||||
m_caster->m_movedPlayer->GainSpellComboPoints(m_comboPointGain);
|
||||
}
|
||||
|
||||
if (m_caster->m_extraAttacks && GetSpellInfo()->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS))
|
||||
m_caster->HandleProcExtraAttackFor(m_caster->getVictim());
|
||||
|
||||
// TODO: trigger proc phase finish here
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user