/** * one room arena * Copyright (C) 2016 POSITIVE MENTAL ATTITUDE * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, version 3 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #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; };