#pragma once

#include "struct.h"
#include "sprite.h"
#include "const.h"
#include "globals.h"

#ifndef BULLET_H
#define BULLET_H

//Clase bala
class Bullet
{
public:
	//Constructor
	Bullet();

	//Iniciador
	void init(int x, int y, int kind);
	
	//Pinta el objeto en pantalla
	void render();
	
	//Actualiza la posición y estado del objeto
	void move();
#ifdef TEST
	void testMove();
#endif
	//Deshabilita el objeto
	void erase();

	//Comprueba si el objeto está activo
	bool isActive();

	//Obtiene el valor de la variable
	int getPosX();

	//Obtiene el valor de la variable
	int getPosY();

	//Establece el valor de la variable
	void setPosX(int x);

	//Establece el valor de la variable
	void setPosY(int y);

	//Obtiene el valor de la variable
	float getVelY();

	//Obtiene el valor de la variable
	int getKind();

	//Obtiene el circulo de colisión
	Circle &getCollider();

private:
	//Posición X/Y del objeto
	int mPosX;
	int mPosY;

	//Alto y ancho el objeto
	Uint8 mWidth;
	Uint8 mHeight;

	//Velocidad del objeto
	int mVelX;
	int mVelY;

	//Tipo de objeto
	int mKind;

	//Sprite con los graficos y métodos de pintado
	Sprite mSprite;

	//Balloon's collision circle
	Circle mCollider;

	//Alinea el circulo de colisión con el objeto
	void shiftColliders();
};

#endif