From dcc500d7b7e3c3f8834732a38387810b6273a00d Mon Sep 17 00:00:00 2001 From: Tereneckla Date: Tue, 8 Jul 2025 12:33:33 +0000 Subject: [PATCH] fix(Core/Spells): Glyph of Scourge Strike can prolong diseases that were reapplied (#22438) --- src/server/game/Entities/Unit/Unit.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 79bd8fe2a..85db0818a 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -5910,9 +5910,17 @@ uint32 Unit::GetDiseasesByCaster(ObjectGuid casterGUID, uint8 mode) else if (mode == 2) { Aura* aura = (*i)->GetBase(); - if (aura && !aura->IsRemoved() && aura->GetDuration() > 0) - if ((aura->GetApplyTime() + aura->GetMaxDuration() / 1000 + 8) > (GameTime::GetGameTime().count() + aura->GetDuration() / 1000)) - aura->SetDuration(aura->GetDuration() + 3000); + uint32 countMin = aura->GetMaxDuration(); + uint32 countMax = aura->GetSpellInfo()->GetMaxDuration() + 9000; + + 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;