/**
 *  one room arena
 *  Copyright (C) 2016 POSITIVE MENTAL ATTITUDE
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, version 3 of the License.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#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;
};
