fix(Core/Spells): Glyph of Scourge Strike can prolong diseases that were reapplied (#22438)
This commit is contained in:
@@ -5910,9 +5910,17 @@ uint32 Unit::GetDiseasesByCaster(ObjectGuid casterGUID, uint8 mode)
|
|||||||
else if (mode == 2)
|
else if (mode == 2)
|
||||||
{
|
{
|
||||||
Aura* aura = (*i)->GetBase();
|
Aura* aura = (*i)->GetBase();
|
||||||
if (aura && !aura->IsRemoved() && aura->GetDuration() > 0)
|
uint32 countMin = aura->GetMaxDuration();
|
||||||
if ((aura->GetApplyTime() + aura->GetMaxDuration() / 1000 + 8) > (GameTime::GetGameTime().count() + aura->GetDuration() / 1000))
|
uint32 countMax = aura->GetSpellInfo()->GetMaxDuration() + 9000;
|
||||||
aura->SetDuration(aura->GetDuration() + 3000);
|
|
||||||
|
if (AuraEffect const* epidemic = (*i)->GetCaster()->GetAuraEffectOfRankedSpell(49036, EFFECT_0))
|
||||||
|
countMax += epidemic->GetAmount();
|
||||||
|
|
||||||
|
if (countMin < countMax)
|
||||||
|
{
|
||||||
|
aura->SetDuration(uint32(aura->GetDuration() + 3000));
|
||||||
|
aura->SetMaxDuration(countMin + 3000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
++i;
|
++i;
|
||||||
|
|||||||
Reference in New Issue
Block a user