-
Чаадаев Алексей Константинович authoredfd029709
#pragma once
//#include "Entities.h" //он тут есть
//#include "../Events/Events.h"
#include "../Room/Room.h"
#include "../Events/IGameEvent.h"
class GameContext;
class IStaticEntity;
class DeleteStaticEntity : public IGameEvent {
public:
DeleteStaticEntity(std::unique_ptr<IStaticEntity> ptr);
void handle(GameContext& context) const override;
private:
std::unique_ptr<IStaticEntity> m_ptr_entity;
};
class LostGame : public IGameEvent {
public:
void handle(GameContext& context) const override;
};
class WinGame: public IGameEvent {
public:
void handle(GameContext& context) const override;
};
class Pacman : public IEntity, public IVisitor {
public:
Pacman();
void move(Room::Direction direction);
void draw_into(sf::RenderWindow& window) const override;
void prepare_for_drawing() override;
std::unique_ptr<IGameEvent> visit(Food* ptr_food) override;
std::unique_ptr<IGameEvent> visit(Enemy* ptr_enemy) override;
};