/*************************************************************
*
* Función archivo :
*
*
* Patrón usado (si alguno) :
*
*
* Fecha :
*
*
**************************************************************/

#ifndef PROYECTIL_H
#define PROYECTIL_H

#include<list>

#include <allegro5/allegro.h>
#include <allegro5/allegro_image.h>
#include <allegro5/allegro_primitives.h>

#include"ENEMIGO2.h"

class PROYECTIL
{
    public:
        PROYECTIL();
        virtual ~PROYECTIL();
        PROYECTIL(const PROYECTIL& other);
        PROYECTIL& operator=(const PROYECTIL& other);

        // Constructor con argumentos
        PROYECTIL(int _x, int _y, float _colisionX, float _colisionY);

        // Métodos
        int GetX();
        int GetY();

        float GetboundX();
        float GetboundY();

        int setX(int X);
        int setY(int Y);
        int setMovimiento(int x);

        void pintarArriba( ALLEGRO_BITMAP *imagen, float _x, float _y);
        void pintarAbajo( ALLEGRO_BITMAP *imagen, float _x, float _y);
        void pintarIzquierda( ALLEGRO_BITMAP *imagen, float _x, float _y);
        void pintarDerecha( ALLEGRO_BITMAP *imagen, float _x, float _y);
        void pintarHorizontal( ALLEGRO_BITMAP *imagen, float _x, float _y);
        void arriba(ALLEGRO_BITMAP *imagen, float _x, float _y);
        void abajo();
        void izquierda();
        void derecha();
        void mover(std::list<PROYECTIL* >::iterator iteradorPROYECTILES);
        bool colision(std::list<PROYECTIL* >::iterator iteradorPROYECTILES, std::list<ENEMIGO2* >::iterator iteradorEnemigos);
        bool fuera(std::list<PROYECTIL* >::iterator iteradorPROYECTILES, int anchura, int altura);
        bool SetestaVivo(int vida);
        bool GetVida();

    protected:

        int x,y;
        float boundX, boundY;

        bool estaVivo;

    private:
};

#endif // PROYECTIL_H
