Skip to content

Commit

Permalink
Revert "fix: health scaling for <100%hp mobs (#49)"
Browse files Browse the repository at this point in the history
This reverts commit 4e04c2f.
  • Loading branch information
Nyeriah authored Nov 15, 2024
1 parent 4e04c2f commit db49a97
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions src/mod_zone_difficulty_scripts.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1084,7 +1084,7 @@ class mod_zone_difficulty_allcreaturescript : public AllCreatureScript

CreatureBaseStats const* origCreatureStats = sObjectMgr->GetCreatureBaseStats(creature->GetLevel(), creatureTemplate->unit_class);
uint32 baseHealth = origCreatureStats->GenerateHealth(creatureTemplate);
uint32 scaledHealth = baseHealth;
uint32 newHp = baseHealth;
uint32 entry = creature->GetEntry();

uint32 phaseMask = creature->GetPhaseMask();
Expand All @@ -1095,7 +1095,7 @@ class mod_zone_difficulty_allcreaturescript : public AllCreatureScript
{
// Trash mobs. Apply generic tuning.
if (!creature->IsDungeonBoss() && isMythic)
scaledHealth = round(baseHealth * sZoneDifficulty->MythicmodeHpModifier);
newHp = round(baseHealth * sZoneDifficulty->MythicmodeHpModifier);
}
else
{
Expand All @@ -1105,24 +1105,24 @@ class mod_zone_difficulty_allcreaturescript : public AllCreatureScript
if (!multiplier)
multiplier = 1.0f; // never 0

scaledHealth = round(baseHealth * multiplier);
newHp = round(baseHealth * multiplier);
}

if (matchingPhase != -1)
{
if (creature->GetMaxHealth() == scaledHealth)
if (creature->GetMaxHealth() == newHp)
return;

uint32 prevMaxHealth = creature->GetMaxHealth();
uint32 prevHealth = creature->GetHealth();
bool hpIsFull = false;

creature->SetMaxHealth(scaledHealth);
creature->SetCreateHealth(scaledHealth);
creature->SetModifierValue(UNIT_MOD_HEALTH, BASE_VALUE, (float)scaledHealth);

uint32 scaledCurHealth = prevHealth && prevMaxHealth ? float(scaledHealth)/float(prevMaxHealth)*float(prevHealth) : 0;
creature->SetHealth(scaledCurHealth);
if (creature->GetHealthPct() >= 100)
hpIsFull = true;

creature->SetMaxHealth(newHp);
creature->SetCreateHealth(newHp);
creature->SetModifierValue(UNIT_MOD_HEALTH, BASE_VALUE, (float)newHp);
if (hpIsFull)
creature->SetHealth(newHp);
creature->UpdateAllStats();
creature->ResetPlayerDamageReq();
}
Expand Down

0 comments on commit db49a97

Please sign in to comment.