#include "Missile.h"

Missile::Missile(SDL_Surface *screen, Collisions *gestionnaireCollisons, Sounderer *mediaPlayer, SDL_Surface* apparence)
: Power(screen, gestionnaireCollisons, mediaPlayer, apparence)
{

}///Constructeur

Missile::~Missile()
{

}///Destructeur

void Missile::usePower(int orientation, int &x, int &y, int const &ID)
{
    //[0] Bruitage
    m_mediaPlayer->play("Missile");

    //[1] Orientation de la trajectoire du missile
    int posX(x);
    int posY(y);

    int ajoutX(0);
    int ajoutY(0);
    convertDir(orientation, ajoutX, ajoutY);

    //[2] Parcours du missile dans le vide
    while (m_gestionnaireCollisions->tester(posX,posY) == VIDE)
    {
        posX += ajoutX;
        posY += ajoutY;
    }

    //[3] Perforation de toute l'�paisseur
    while (m_gestionnaireCollisions->tester(posX,posY) != VIDE)
    {
        m_gestionnaireCollisions->enlever(posX,posY);

        posX += ajoutX;
        posY += ajoutY;
    }

    //[END]
    m_used = true;
}///usePower

void Missile::postMortemPower(int const &x, int const &y, int const &ID)
{
    //[0] Bruitage
    m_mediaPlayer->play("Missile");

    //[1] Explosion
    for (int i(-1); i<=1; i++)
        for (int j(-1); j<=1; j++)
            if (i != 0 || j != 0) m_gestionnaireCollisions->enlever(x+i, y+j);

    //[end]
    m_used = true;
}///postMortemPower