/*=======================================================
objet volant
par Martin Robinson
herite de sprite
simule le vol d'avion style arcade,
avec un controle utilisateur
=========================================================
preprocessor*/

#pragma once
#ifndef _FLY
#define _FLY

#include "sprite.hpp"
#include "bullet.hpp"

/*======================================================
classe
======================================================*/

class fly : public sprite{
    bool _muteZ,                //sert à l'animation
          _muteX,               //sert à l'animation
          _muteControl;         //pour empecher le joueur bouger
    float _speed;              //vitesse
    int _cooldown,             //refroidissement du generateur
        _health;               //facteur de maganement
public:
    fly();
    fly(const shell& model);    //constructeur
    //mutator
    void forward(float);       //avance
    void turnLeft(float);      //tourner
    void turnRight(float);
    void climb(float);         //monté
    void descent(float);       //descendre
    bullet shoot(const shell&); //tirer une balle
    void boost(float);         //augmenter la vitesse temporairement
    void damage();              //manger une volé
    //getter
    bool cool()const;          //estce que le generateur est assez refroidis
    float speed()const;        //obtenir la vitesse
    bool health()const;        //somme nous en santé
};

#endif
