mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-24 19:06:49 +01:00
Core/Auras: Reverted part of f82851a3a8 - that calculation is incorrect
This commit is contained in:
@@ -881,14 +881,8 @@ void AuraEffect::CalculatePeriodic(Unit* caster, bool create, bool load)
|
||||
caster->ModSpellCastTime(m_spellInfo, m_amplitude);
|
||||
}
|
||||
// and periodic time of auras affected by SPELL_AURA_PERIODIC_HASTE on player who have haste
|
||||
else if ((caster->HasAuraTypeWithAffectMask(SPELL_AURA_PERIODIC_HASTE, m_spellInfo) || m_spellInfo->AttributesEx5 & SPELL_ATTR5_HASTE_AFFECT_DURATION) && caster->GetFloatValue(UNIT_MOD_CAST_SPEED) != 1.0f)
|
||||
{
|
||||
// Calculate number of ticks we must have
|
||||
float ticks = GetBase()->GetDuration() / (m_amplitude / (1.0f + (1.0f - caster->GetFloatValue(UNIT_MOD_CAST_SPEED))));
|
||||
ticks = 0.5f + (float)(int)ticks; // round
|
||||
|
||||
m_amplitude = GetBase()->GetDuration() / int32(ticks);
|
||||
}
|
||||
else if (caster->HasAuraTypeWithAffectMask(SPELL_AURA_PERIODIC_HASTE, m_spellInfo) || m_spellInfo->AttributesEx5 & SPELL_ATTR5_HASTE_AFFECT_DURATION)
|
||||
m_amplitude = int32(m_amplitude * caster->GetFloatValue(UNIT_MOD_CAST_SPEED));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2719,6 +2719,9 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA
|
||||
if (m_spellInfo->AttributesEx5 & SPELL_ATTR5_HASTE_AFFECT_DURATION)
|
||||
m_originalCaster->ModSpellCastTime(aurSpellInfo, duration, this);
|
||||
}
|
||||
// and duration of auras affected by SPELL_AURA_PERIODIC_HASTE
|
||||
else if (m_originalCaster->HasAuraTypeWithAffectMask(SPELL_AURA_PERIODIC_HASTE, aurSpellInfo) || m_spellInfo->AttributesEx5 & SPELL_ATTR5_HASTE_AFFECT_DURATION)
|
||||
duration = int32(duration * m_originalCaster->GetFloatValue(UNIT_MOD_CAST_SPEED));
|
||||
|
||||
if (duration != m_spellAura->GetMaxDuration())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user