#pragma once
#include "Fireball.h"
#include "Character.h"
#include <queue>

class MainCharacter : public Character {
public:
	MainCharacter( CharacterManager* characterManager, CollisionManager* collisionManager, TextManager* textManager, DialogueManager* dialogueManager, int tileX, int tileY, int dialogue );
	~MainCharacter(void);

    void addMovement(GameCore::DIRECTION direction);

	void collide( Character* moveChar );
	Character::TYPE getType();

    int getStrength();
    int getLevel();
    int expNeededforNextLevel();

private:
	void setSpriteState( Character::STATE aState );

	void creation();
	void idle();
	void walking();
	void dying();
	void attacked();
	void attack();
	void attackReady();
	void dead();
    void magic();
    void casting();

    queue<GameCore::DIRECTION> movement;
};

