#pragma once

#include <SDL2/SDL.h>
#include "utils.h"
#include "text.h"
#include "asset.h"
#include "animatedsprite.h"
#include "const.h"
#include <string>

#ifndef SCOREBOARD_H
#define SCOREBOARD_H

// Clase ScoreBoard
class ScoreBoard
{
private:
	struct clock_t
	{
		int hours;
		int minutes;
		int seconds;
		bool separator;
	};

	LTexture *texture;			// Textura con los graficos para las vidas
	AnimatedSprite *sprite;		// Sprite para mostrar las vidas en el marcador
	SDL_Renderer *renderer;		// El renderizador de la ventana
	Asset *asset;				// Objeto con la ruta a todos los ficheros de recursos
	Text *text;					// Objeto para escribir texto
	std::vector<color_t> color; // Vector con los colores del objeto
	int counter;				// Contador interno
	int colorChangeSpeed;		// Cuanto mas alto, mas tarda en cambiar de color
	int *lives;					// Número ara mostrar en el marcador de vidas
	int *items;					// Número para mostrar en el marcador de items
	Uint32 *clock;				// Contiene el tiempo de inicio de la partida

	// Obtiene el tiempo transcurrido de partida
	clock_t getTime();

public:
	// Constructor
	ScoreBoard(SDL_Renderer *renderer, Asset *asset, int *lives, int *items, Uint32 *clock);

	// Destructor
	~ScoreBoard();

	// Pinta el objeto en pantalla
	void render();

	// Actualiza las variables del objeto
	void update();

	// Recarga la textura
	void reLoadTexture();
};

#endif
