#pragma once
#include "character.h"

class Fireball : public Character {
public:
	Fireball( Character* caster, CharacterManager* characterManager, CollisionManager* collisionManager, TextManager* textManager, DialogueManager* dialogueManager, int tileX, int tileY, GameCore::DIRECTION direction, int dialogue );
	Fireball( Character* caster,CharacterManager* characterManager, CollisionManager* collisionManager, TextManager* textManager, DialogueManager* dialogueManager, int tileX, int tileY, GameCore::DIRECTION direction, int trigger, int dialogue );
	virtual ~Fireball();

	void collide( Character* moveChar );
	TYPE getType();
    
    Character* getCaster();
private:
    GameCore::DIRECTION direction;
	void init(Character* caster, int tileX, int tileY, GameCore::DIRECTION newDirection);
    int color;
	void setSpriteState( Character::STATE aState );

    Character* caster;

	void creation();
	void idle();
	void walking();
	void dying();
	void attacked();
	void attack();
	void attackReady();
	void dead();
    void magic();
    void casting();
};

