#pragma once
#include "Player.h"
#include "Gui/Screens/MainScreen.h"
#include "Inventory/PlayerInventory.h"

class GameManager {
public:
	static GameManager& GetInstance();
	static GameManager* m_pInstance;
	static void DestroyInstance();
	

	void SetMainScreen(MainScreen* pMainScreen);
	void SetPlayer(Player* pPlayer); //No time

	void SetFuel(float fuel);
	float GetFuel() const;
	void DecreaseFuel(float fuel);
	void AddFuel(float fuel);

	void SetHullIntegrity(int hullIntegrity);
	int GetHullIntegrity() const;
	void DamageHull(int damage);

	void SetScore(int score);
	int GetScore() const;
	void IncreaseScore(int score);

	void SetMoney(int money);
	int GetMoney() const;
	void IncreaseMoney(int money);

	void Update(float elapsedSecs);
	int GetMaxFuel();
	PlayerInventory* GetInventory();
	Player* GetPlayer();

private:
	GameManager();


	float m_Balance{ 0.0f };
	int m_HullIntegrity{ 100 };
	float m_Fuel{ 100.0f };
	int m_Score{ 0 };
	int m_Money{ 0 };
	MainScreen* m_pMainScreen{ nullptr };
	PlayerInventory* m_pInventory{ nullptr };
	Player* m_pPlayer{ nullptr };

	SoundEffect* m_FuelLowSound{ nullptr };
	bool m_GameOver{ false };
};



