35 lines
806 B
C#
35 lines
806 B
C#
using System;
|
|
|
|
namespace Core.Systems
|
|
{
|
|
public class LivesSystem : IDisposable
|
|
{
|
|
private int _currentLives;
|
|
|
|
public LivesSystem(int initialLives)
|
|
{
|
|
_currentLives = initialLives;
|
|
GameEvents.PresentDropped += OnPresentDropped;
|
|
|
|
GameEvents.ReportLivesUpdated(_currentLives);
|
|
}
|
|
|
|
private void OnPresentDropped()
|
|
{
|
|
if (_currentLives <= 0) return;
|
|
|
|
_currentLives--;
|
|
GameEvents.ReportLivesUpdated(_currentLives);
|
|
|
|
if (_currentLives <= 0)
|
|
{
|
|
GameEvents.ReportGameOver();
|
|
}
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
GameEvents.PresentDropped -= OnPresentDropped;
|
|
}
|
|
}
|
|
} |