#pragma once

#include <vectors/vec2.h>

#include "entity.hpp"

namespace game::entity{

class BasicBullet: public Entity
{
protected:
    vec2f position;
    b2Vec2 velocity;
    float angle;
public:
    BasicBullet(World *world, const vec2f &position, float speed, float angle);
    virtual ~BasicBullet();

    virtual void Setup() = 0;

    virtual void OnCollide();
    virtual void OnCollide(Entity *entity);

    virtual void Update() noexcept;
    virtual void Render() noexcept = 0;

};

}
