/**
* 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;
};