aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/Creature.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp
index 9a8eae73cfb..77b846b3d35 100644
--- a/src/game/Creature.cpp
+++ b/src/game/Creature.cpp
@@ -529,22 +529,23 @@ void Creature::Update(uint32 diff)
if(!isAlive())
break;
- if(m_regenTimer > diff)
+ bool bNotInCombatOrIsPolymorphed = (!isInCombat() || IsPolymorphed());
+
+ if(m_regenTimer > diff || bNotInCombatOrIsPolymorphed)
m_regenTimer -= diff;
else
{
- if (!isInCombat() || IsPolymorphed())
+ if(bNotInCombatOrIsPolymorphed)
RegenerateHealth();
if(getPowerType() == POWER_ENERGY)
- {
if(!IsVehicle() || GetVehicleKit()->GetVehicleInfo()->m_powerType != POWER_PYRITE)
Regenerate(POWER_ENERGY);
- }
else
RegenerateMana();
- m_regenTimer += 2000 - diff;
+ if(!bNotInCombatOrIsPolymorphed)
+ m_regenTimer += 2000 - diff;
}
break;