
#if !defined(AFX_EA01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_)
#define AFX_EA01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif 

#include "AbstractEnemy.h"
namespace sf {
	namespace application {
		namespace enemy {

class EA01 : public AbstractEnemy
{
public:
	
	EA01();
	virtual ~EA01();
	
	void initialize();
	
	void move(void);
	void hit(Character * const pDest);
	void allBomb(void);
	
	static void load(void);
	static void unload(void);
	static Character * const create(float x,float y ,float z,sf::application::scene::Game * const pGame,int index);
	
	sf::application::hit::Interface * const hitObj(void){return &mHitRect;};
private:
	enum State {
		MOVE,
		SHOOT,
		DEAD
	} mState;

	void die(void);

	int mDirCount;
	float mDirSpeed;
	sf::application::hit::HitRect mHitRect;
	sf::system::console::ObjRectangle mObj;
	sf::system::console::ObjRectangle mObjFoot;

	static sf::system::console::sprite::PSprite mspSprite[2];
	static const sf::system::console::sprite::Info msSpriteInfo[2];

	static const int SCORE; 
	
	bool mbHit;
	int mShootCount;
	int mShootTimer;
	float 	mDeltaTime;
	float 	mDeltaTimeRev;
	float mSpeed;
	float mDirBackup;
	int mAnimTimer;
	int mAnimSpeed;

};
		}
	}
}

#endif 
