diff options
author | megamage <none@none> | 2009-08-23 22:36:51 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-08-23 22:36:51 -0500 |
commit | 5f1589d6d19bf9d4548e0e9fda97f77bb1240ebf (patch) | |
tree | 8d13ac05294821c049abb62fc8a3b73b924ec085 /src/game/Creature.cpp | |
parent | 7712d5e0bd021e92b87e592a830129c69133dee4 (diff) |
*Allow vehicles to regenerate energy.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Creature.cpp')
-rw-r--r-- | src/game/Creature.cpp | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp index a8d1ffe9b54..9aa6eb78c74 100644 --- a/src/game/Creature.cpp +++ b/src/game/Creature.cpp @@ -539,28 +539,22 @@ void Creature::Update(uint32 diff) // CORPSE/DEAD state will processed at next tick (in other case death timer will be updated unexpectedly) if(!isAlive()) break; - if(m_regenTimer > 0) - { - if(diff >= m_regenTimer) - m_regenTimer = 0; - else - m_regenTimer -= diff; - } - if (m_regenTimer != 0) - break; - if (!isInCombat()) + if(m_regenTimer > diff) + m_regenTimer -= diff; + else { - if(HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_OTHER_TAGGER)) - SetUInt32Value(UNIT_DYNAMIC_FLAGS, GetCreatureInfo()->dynamicflags); - RegenerateHealth(); - } - else if(IsPolymorphed()) + if (!isInCombat() || IsPolymorphed()) RegenerateHealth(); - RegenerateMana(); + if(getPowerType() == POWER_ENERGY) + Regenerate(POWER_ENERGY); + else + RegenerateMana(); + + m_regenTimer += 2000 - diff; + } - m_regenTimer = 2000; break; } case DEAD_FALLING: |