#include "Teleport.h"

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

}///Constructeur

Teleport::~Teleport()
{

}///Destructeur

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

    //[1]Pr�paration de l'orientation du bond
    int ajoutX(0);
    int ajoutY(0);
    convertDir(orientation, ajoutX, ajoutY);

    //[2]Bond
    for (int i(0); i<6; i++)
    {
        x += ajoutX;
        y += ajoutY;
    }

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

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

    //[1] Inversion
    for (int i(-1); i<=1; i++)
        for (int j(-1); j<=1; j++)
            if ((i != 0 || j != 0) && m_gestionnaireCollisions->tester(x+i, y+j) != VIDE) m_gestionnaireCollisions->enlever(x+i, y+j);
            else m_gestionnaireCollisions->ajouter(x+i, y+j, ID);

    m_used = true;
}///postMortemPower