-
Печенин Данила Михайлович authored5fb654ac
#pragma once
#include <States/GameState/Entities/IEntity.h>
#include <random>
struct IDynamicEntity : IEntity {
[[nodiscard]] virtual std::unique_ptr<IDynamicEntity> clone() const = 0;
virtual void action() = 0;
~IDynamicEntity() override = default;
};
class Enemy : public IDynamicEntity {
public:
Enemy();
[[nodiscard]] std::unique_ptr<IDynamicEntity> clone() const override;
void action() override;
void draw_into(sf::RenderWindow& window) const override;
void prepare_for_drawing() override;
private:
sf::RectangleShape m_rectangle;
sf::Clock m_stopwatch;
std::mt19937 m_rng{std::random_device{}()};
std::uniform_int_distribution<size_t> m_dist_milliseconds{0, 9999};
std::uniform_int_distribution<> m_dist_direction{0, 3};
};