From 436c60907d662212d9cd8899a8ed4248246baf72 Mon Sep 17 00:00:00 2001 From: Nefertumm Date: Fri, 12 Nov 2021 13:07:16 -0300 Subject: [PATCH] fix(Core/Achievement): Throw food (#9098) --- src/server/scripts/Events/pilgrims_bounty.cpp | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/server/scripts/Events/pilgrims_bounty.cpp b/src/server/scripts/Events/pilgrims_bounty.cpp index adecac336..133e3aaed 100644 --- a/src/server/scripts/Events/pilgrims_bounty.cpp +++ b/src/server/scripts/Events/pilgrims_bounty.cpp @@ -376,13 +376,42 @@ public: { if (Unit* target = GetHitUnit()) { + uint32 spellId = 0; + switch (GetSpellInfo()->Id) + { + case SPELL_PASS_TURKEY: + spellId = SPELL_STORE_TURKEY; + break; + case SPELL_PASS_STUFFING: + spellId = SPELL_STORE_STUFFING; + break; + case SPELL_PASS_PIE: + spellId = SPELL_STORE_PIE; + break; + case SPELL_PASS_CRANBERRY: + spellId = SPELL_STORE_CRANBERRY; + break; + case SPELL_PASS_SWEET_POTATO: + spellId = SPELL_STORE_SWEET_POTATO; + break; + } + // player case if (target->IsVehicle() && target->ToCreature()) { if (Player* player = target->GetCharmerOrOwnerPlayerOrPlayerItself()) { GetCaster()->CastSpell(player, GetVisualThrow(GetSpellInfo()->Id, true), true); - player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2, GetVisualThrow(GetSpellInfo()->Id, true)); + if (AuraEffect* aur = target->GetAuraEffectDummy(spellId)) + { + if (aur->GetBase()->GetStackAmount() >= 5) + { + if (Player* casterPlayer = GetCaster()->GetCharmerOrOwnerPlayerOrPlayerItself()) + { + casterPlayer->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2, GetVisualThrow(GetSpellInfo()->Id, true)); + } + } + } } } // normal case