void Update()
{
if (!_pause)
{
_lifeManager.regen(Time.deltaTime);
_energy = _medium.getEnergy() / _maxMediumEnergy;
if (GameStateController.isShortcutKey(_keyLife, true))
{
_lifeManager.addVariation(1f);
}
if (GameStateController.isShortcutKey(_keyEnergy, true))
{
setEnergy(1f);
}
// dammage in case of low energy
if (_energy <= 0.05f)
{
_lifeManager.addVariation(-Time.deltaTime * _lowEnergyDpt);
}
// Life animation when life is reducing
if (_lifeManager.getVariation() < 0)
{
if (lifeAnimation.isPlaying == false)
{
lifeAnimation.Play();
}
}
// Energy animation when energy is reducing
if (_energy < _energyBefore)
{
DisplayEnergyAnimation();
}
_energyBefore = _energy;
_lifeManager.applyVariation();
if (_lifeManager.getLife() == 0f && (_isAlive))
{
_isAlive = false;
RedMetricsManager.get().sendEvent(TrackingEvent.DEATH, null, getLastCheckpointName());
StartCoroutine(RespawnCoroutine());
}
}
}