aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
authorMatan Shukry <matanshukry@gmail.com>2021-04-22 23:02:19 +0300
committerGitHub <noreply@github.com>2021-04-22 22:02:19 +0200
commit60df74933f0bf75865ba963b33c2c1bdd9cdefbd (patch)
tree2fa43546a87d6ab4e8526fb03953d470468b5280 /src/server/game/Spells/SpellEffects.cpp
parent8a452c3d105a50a81086dbb850514f63330efbe0 (diff)
Core/Spells: Removed extra health from feed pet (#26305)
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 06ee5111fd6..0e1d4149a06 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -3790,19 +3790,24 @@ void Spell::EffectFeedPet(SpellEffIndex effIndex)
if (!pet->IsAlive())
return;
- int32 benefit = pet->GetCurrentFoodBenefitLevel(foodItem->GetTemplate()->GetBaseItemLevel());
- if (benefit <= 0)
- return;
-
ExecuteLogEffectDestroyItem(effIndex, foodItem->GetEntry());
+ int32 pct;
+ int32 levelDiff = int32(pet->getLevel()) - int32(foodItem->GetTemplate()->GetBaseItemLevel());
+ if (levelDiff >= 30)
+ return;
+ else if (levelDiff >= 20)
+ pct = int32(12.5); // we can't pass double so keeping the cast here for future references
+ else if (levelDiff >= 10)
+ pct = 25;
+ else
+ pct = 50;
+
uint32 count = 1;
player->DestroyItemCount(foodItem, count, true);
/// @todo fix crash when a spell has two effects, both pointed at the same item target
- CastSpellExtraArgs args(TRIGGERED_FULL_MASK);
- args.SpellValueOverrides.AddMod(SPELLVALUE_BASE_POINT0, benefit);
- m_caster->CastSpell(pet, effectInfo->TriggerSpell, args);
+ m_caster->CastSpell(pet, effectInfo->TriggerSpell, CastSpellExtraArgs(TRIGGERED_FULL_MASK));
}
void Spell::EffectDismissPet(SpellEffIndex effIndex)