#pragma once

#include <vectors/vec2.h>

namespace game{

class World;

namespace equipment {

class Weapon
{
protected:
    float cooldown;
    float damage;
    float bulletSpeed;
    float reloadTime;

public:
    Weapon(float cooldown, float damage, float bulletSpeed) noexcept;

    virtual void Update() noexcept;

    virtual void Shoot(const vec2f &position, bool direction, World *world, bool forced) noexcept = 0;
};

}
}
