aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/Creature.cpp5
-rw-r--r--src/game/Unit.cpp4
2 files changed, 4 insertions, 5 deletions
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp
index bb93b844c1d..3591179eb23 100644
--- a/src/game/Creature.cpp
+++ b/src/game/Creature.cpp
@@ -1484,6 +1484,9 @@ void Creature::setDeathState(DeathState s)
if(m_formation && m_formation->getLeader() == this)
m_formation->FormationReset(true);
+ SetHealth(0);
+ SetPower(getPowerType(),0);
+
if ((canFly() || IsFlying()) && FallGround())
return;
@@ -1564,7 +1567,6 @@ void Creature::Respawn(bool force)
if (m_isDeadByDefault)
{
setDeathState(JUST_DIED);
- SetHealth(0);
i_motionMaster.Clear();
clearUnitState(UNIT_STAT_ALL_STATE);
LoadCreaturesAddon(true);
@@ -1608,7 +1610,6 @@ void Creature::ForcedDespawn(uint32 timeMSToDespawn)
setDeathState(JUST_DIED);
RemoveCorpse();
- SetHealth(0); // just for nice GM-mode view
}
bool Creature::IsImmunedToSpell(SpellEntry const* spellInfo)
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 60cc59a1311..644b2430b6f 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -658,7 +658,6 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
if (damage >= pVictim->GetHealth())
{
pVictim->setDeathState(JUST_DIED);
- pVictim->SetHealth(0);
CreatureInfo const* cInfo = ((Creature*)pVictim)->GetCreatureInfo();
if (cInfo && cInfo->lootid)
@@ -11997,6 +11996,7 @@ void Unit::setDeathState(DeathState s)
//without this when removing IncreaseMaxHealth aura player may stuck with 1 hp
//do not why since in IncreaseMaxHealth currenthealth is checked
SetHealth(0);
+ SetPower(getPowerType(),0);
}
else if (s == JUST_ALIVED)
RemoveFlag (UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE); // clear skinnable for creature and player (at battleground)
@@ -14550,8 +14550,6 @@ void Unit::Kill(Unit *pVictim, bool durabilityLoss)
//sLog.outError("%u kill %u", GetEntry(), pVictim->GetEntry());
- pVictim->SetHealth(0);
-
// find player: owner of controlled `this` or `this` itself maybe
Player *player = GetCharmerOrOwnerPlayerOrPlayerItself();