#pragma once #include using namespace sf; class Map; class Player; class Bullet: public RectangleShape { public: Bullet(Vector2f position, float angle, int strength); void registerMap(Map* map); void registerSelf(Player* player); void update(float delta); bool isDead() const; bool isExplosive() const; void setColor(Color color); void madeByPlayer(); protected: bool _explosive; float _speed; private: Map* _map; Player* _self; bool _dead; int _strength; bool _madeByPlayer; }; class RectBullet: public Bullet { public: RectBullet(Vector2f position, float angle, int strength); }; class NukeBullet: public Bullet { public: NukeBullet(Vector2f position, float angle, int strength); private: Texture _badlyAllocatedTexture; };