21#include <unordered_map>
66 void initialiseClass(std::unordered_map<std::type_index, std::vector<std::any>> &ecsEntities);
117 const std::string
getInfo(
const unsigned int indent = 0)
const;
140 void _gameOverSound();
161 void _spawnEnemy(
const std::pair<float, float> pos);
171 const int _randInt(
int min = 0,
int max = 5);
181 void _setTextComponents();
183 bool _playing =
false;
184 bool _gameWon =
false;
185 bool _gameOver =
false;
190 float _screenPosXOffset = 75;
191 float _screenPosYOffset = 45;
192 long int _activeEnemies = 0;
193 std::optional<std::shared_ptr<GUI::ECS::Components::TextComponent>> _titleHealth;
194 std::optional<std::shared_ptr<GUI::ECS::Components::TextComponent>> _remainingEnemies;
195 std::optional<std::shared_ptr<GUI::ECS::Components::ImageComponent>> _backgroundItem;
196 std::shared_ptr<GUI::ECS::Components::SpriteComponent> _spriteBullet;
197 std::shared_ptr<GUI::ECS::Components::SpriteComponent> _spriteBulletEnemy;
198 std::shared_ptr<GUI::ECS::Components::SpriteComponent> _spritePlayer;
199 std::shared_ptr<GUI::ECS::Components::SpriteComponent> _spriteEnemy;
200 std::vector<GUI::ECS::Demo::Bullet> _bullets;
201 std::shared_ptr<GUI::ECS::Systems::Window> _window;
202 std::shared_ptr<GUI::ECS::Systems::EventManager> _event;
203 std::shared_ptr<GUI::ECS::Demo::PlayerBrain> _playerBrain;
204 std::vector<std::shared_ptr<GUI::ECS::Demo::EnemyBrain>> _enemyBrain;
205 std::unordered_map<std::type_index, std::vector<std::any>> _ecsEntities;
File in charge of containing the custom errors that are going to be used for custom description error...
File in charge of containing the logic for the bullet class.
Declaration of the EnemyBrain class and its related functionality.
Declaration of the PlayerBrain class and related functionality.
This is the file that links the EntityNode children.
Macro definitions for logging messages with varying levels of detail and formatting.
This is the file in charge of containing the Log class (the one in charge of outputing info only when...
This is an agglomerator in which all the files from Recoded folder will be included.
Declaration of the SoundLib class for managing sounds in the ECS architecture.
The Orchestrator class manages the overall game state, including entity creation, updates,...
void render()
Renders the game entities to the window.
void tick()
Updates the game state for the current frame.
void stop()
Stops the game logic and resets the playing state.
~Orchestrator()=default
Destructor.
const bool isGameOver() const
Checks if the game is over.
const bool isGameWon() const
Checks if the game has been won.
void start()
Starts the game logic and sets the game to a playing state.
void initialiseClass(std::unordered_map< std::type_index, std::vector< std::any > > &ecsEntities)
Initializes the ECS entities managed by the orchestrator.
const std::string getInfo(const unsigned int indent=0) const
This is a function meant for debugging purposes It will dump the current state of the variables upon ...
Orchestrator(const std::uint32_t entityId=0)
Default constructor.
void reset()
Resets the game state, clearing all entities and resetting conditions.
This is the file that links the Components children.
This is the file that links the utility children ressources.
std::ostream & operator<<(std::ostream &os, const Bullet &item)
Outputs the sprite's info to a stream.