From 4b97b20c028af1ea702af0f073aacf0969436dd2 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Thu, 1 Nov 2018 03:47:49 +0100 Subject: [PATCH] Core/Pets: corrected health scaling formular for Warlock pets and fixed a typo that was negating the health scaling --- src/server/scripts/Spells/spell_pet.cpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/server/scripts/Spells/spell_pet.cpp b/src/server/scripts/Spells/spell_pet.cpp index 7bea92321c3..2a5a5c16675 100644 --- a/src/server/scripts/Spells/spell_pet.cpp +++ b/src/server/scripts/Spells/spell_pet.cpp @@ -95,30 +95,35 @@ class spell_warl_pet_scaling_01 : public AuraScript { if (Player* owner = pet->GetOwner()) { - float stamina = std::min(0.0f, owner->GetStat(STAT_STAMINA) - owner->GetCreateStat(STAT_STAMINA)); - stamina *= 0.3f; + float stamina = std::max(0.0f, owner->GetStat(STAT_STAMINA) - owner->GetCreateStat(STAT_STAMINA)); + stamina *= 0.75f; - float healthBonus = 0.0f; + float staminaBonus = 0.0f; + float maxHealthBonus = 0.0f; switch (pet->GetEntry()) { case ENTRY_IMP: - healthBonus = uint32(stamina * 8.4f); + staminaBonus = uint32(stamina * 8.4f); + maxHealthBonus = owner->CountPctFromMaxHealth(30); break; case ENTRY_FELGUARD: case ENTRY_VOIDWALKER: - healthBonus = uint32(stamina * 11.0f); + staminaBonus = uint32(stamina * 11.0f); + maxHealthBonus = owner->CountPctFromMaxHealth(50); break; case ENTRY_SUCCUBUS: - healthBonus = uint32(stamina * 9.1f); + staminaBonus = uint32(stamina * 9.1f); + maxHealthBonus = owner->CountPctFromMaxHealth(40); break; case ENTRY_FELHUNTER: - healthBonus = uint32(stamina * 9.5f); + staminaBonus = uint32(stamina * 9.5f); + maxHealthBonus = owner->CountPctFromMaxHealth(40); break; default: break; } - amount = int32(healthBonus); + amount = int32(staminaBonus + maxHealthBonus); } } }