#pragma once

#include <Core/DifficultLvlStrategy.h>

#include <memory>
#include <string>

class Ship;

class Enemy {
public:
    Enemy(const std::string& name, std::unique_ptr<Ship>&& ship, std::unique_ptr<DifficultLvlStrategy<Ship, int>>&& strategy);

    void attack(Ship& playerShip);

private:
    std::string _name;
    std::unique_ptr<Ship> _ship;
    std::unique_ptr<DifficultLvlStrategy<Ship, int>> _strategy;
};
