From 7f98b71698eca5b136676991026de1d0d212f9fb Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 21 May 2023 13:31:42 +0200 Subject: [PATCH] Core/Creatures: Fixed some creatures having 0 max health (and being unkillable) --- src/server/game/Entities/Creature/Creature.cpp | 2 +- src/server/game/Entities/Pet/Pet.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index a2f56b7daf..60d0319b9c 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2960,7 +2960,7 @@ uint64 Creature::GetMaxHealthByLevel(uint8 level) const CreatureTemplate const* cInfo = GetCreatureTemplate(); CreatureLevelScaling const* scaling = cInfo->GetLevelScaling(GetMap()->GetDifficultyID()); float baseHealth = sDB2Manager.EvaluateExpectedStat(ExpectedStatType::CreatureHealth, level, cInfo->GetHealthScalingExpansion(), scaling->ContentTuningID, Classes(cInfo->unit_class)); - return baseHealth * cInfo->ModHealth * cInfo->ModHealthExtra; + return std::max(baseHealth * cInfo->ModHealth * cInfo->ModHealthExtra, 1.0f); } float Creature::GetHealthMultiplierForTarget(WorldObject const* target) const diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index 5fc48d978e..2710250600 100644 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -919,7 +919,7 @@ bool Guardian::InitStatsForLevel(uint8 petlevel) CreatureBaseStats const* stats = sObjectMgr->GetCreatureBaseStats(petlevel, cinfo->unit_class); ApplyLevelScaling(); - SetCreateHealth(sDB2Manager.EvaluateExpectedStat(ExpectedStatType::CreatureHealth, petlevel, cinfo->GetHealthScalingExpansion(), m_unitData->ContentTuningID, Classes(cinfo->unit_class)) * cinfo->ModHealth * cinfo->ModHealthExtra * _GetHealthMod(cinfo->rank)); + SetCreateHealth(std::max(sDB2Manager.EvaluateExpectedStat(ExpectedStatType::CreatureHealth, petlevel, cinfo->GetHealthScalingExpansion(), m_unitData->ContentTuningID, Classes(cinfo->unit_class)) * cinfo->ModHealth * cinfo->ModHealthExtra * _GetHealthMod(cinfo->rank), 1.0f)); SetCreateMana(stats->BaseMana); SetCreateStat(STAT_STRENGTH, 22); SetCreateStat(STAT_AGILITY, 22);