Match 3

GIT REPOSITORY

The purpose of this small project is to show my programming skills.

Some code snip

public class TimeManager : ITimeManager
{
	public event EventHandler OnTimeUpdate;
	public event EventHandler OnTimesUp;
	
	private int _timeToEnd;

	private int TimeToEnd
	{
		get => _timeToEnd;
		set
		{
			_timeToEnd = value;
			OnTimeUpdate?.Invoke(this, new OnTimeUpdateEventArgs{ TimeToEnd = _timeToEnd});
		}
	}

	private IDataManager _dataManager;

	public TimeManager(IDataManager dataManager)
	{
		_dataManager = dataManager;
	}

	private bool _isRunning;
		
	public void StartGame()
	{
		if (!_isRunning)
		{
			_isRunning = true;
			TimeToEnd = _dataManager.GameplayTimeInSeconds;
			Counting().Forget();
		}
	}

	private async UniTask Counting()
	{
		while (TimeToEnd > 0 && _isRunning)
		{
			await UniTask.Delay(1000); //wait one second
			TimeToEnd -= 1;
		}
	
		_isRunning = false;
		OnTimesUp?.Invoke(this, EventArgs.Empty);
	}
}