#pragma once

#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include "Player.hpp"
#include "Map.hpp"
#include "Menu.hpp"
#include "Powerup.hpp"

using namespace sf;

class Starlight
{
public:
	Starlight() = delete;
	Starlight(RenderWindow* window, bool* keepRunning);
	~Starlight();
	void run();

private:
	void events();
	void input(float delta);
	void logic(float delta);
	void render();
	void toggleFrame(bool on, float delta);

	RenderWindow* _window;

	Map _map;
	
	ActualPlayer _player;
	std::vector<AiPlayer*> _enemy;
	
	Menu _menu;
	
	PowerupManager _powerups;
	
	RectangleShape _frame;
	
	View _view;
	
	int _returnCode;
	bool _running;
	bool* _keepRunning;
};