diff options
-rw-r--r-- | src/game/Creature.cpp | 11 |
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; |