#pragma once
#include <iostream>
#include <raylib.h>
#include "Morault_Map.h"
namespace Morault {
	namespace Gameplay {
		typedef enum {
			CITY,
			MALL,
			AWAITING_GAME,
			IN_GAME,
			AFTER_GAME
		};
		struct PlayerData {
			std::string playerName = "";
			int hp = 100, xp = 0;
			// eventually: std::vector<Item> items;
			// eventually: Item* primaryWeapon;
			// eventually: Item* secondaryWeapon;
			// eventually: Item* cosmetics;
		};
		class PlayerController {
		public:

			PlayerController();
			PlayerController(Vector3 position);
			Vector3 rotation;
			Camera camera;
			float sensitivityMultiplier = 0.5;
			void UpdatePlayerController(bool focus, Maps::Map *map, float renderScale);
			~PlayerController();
		};
		class Player {
		public:
			Player();
			Player(PlayerData, PlayerController);
			PlayerData data;
			PlayerController controller;
			~Player();
		};
	}
}