#pragma once

#include <vector>

#include "td/misc/Time.h"

namespace td {
namespace server {

class Server;

class Lobby {
private:
	Server* m_Server;
	bool m_LobbyOpened = false;
	std::uint64_t m_StartTimerTime = 0;
	std::vector<std::uint8_t> m_Players;
	utils::AutoTimer m_Timer;
public:
	Lobby(Server* server);

	void OnPlayerJoin(std::uint8_t playerID);
	void OnPlayerLeave(std::uint8_t playerID);

	void OpenLobby();

	void SendTimeRemaining();

	void Tick();

	//static constexpr int LobbyWaitingTime = 2 * 60 * 1000; // in millis
	static constexpr int LobbyWaitingTime = 5 * 1000; // in millis
};

} // namespace server
} // namespace td
