/*========================================================
tank
par Martin Robinson & Thibault Podevin
c'est un enemy qui tire sur le ARWING
==========================================================
preprocessor*/

#pragma once
#ifndef _TANK
#define _TANK

#include "shell.hpp"
#include "sprite.hpp"
#include "bullet.hpp"
#include "point.hpp"
#include <math.h>
#include <cstdlib>

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

class tank : public sprite{
    float _sightRadius;             //distance où il vois le joueur
    float _RadsY,                   //angle setter en duble pour utilisation avec math.h
           _RadsX;
    int _a,                         //nombre aléatoir persistant
        _cooldown,                  //refroidissement du moteur
        _count,                     //décompte avant de mettre à jour le nombre aléatoir persistant
        _health;                    //santé de l'enemy
    point _posBullet;               //positition où les bullets vont apparaitre, mise à jour avec _a
public:
    //constructeur
    tank();
    tank(const shell&);
    //mutator
    void update();                  //mise à jour
    void damage();                  //recevoir des dommages
    //getter
    bool watch(const sprite&)const;
                                    //retourne vrai si le tank voi le sprite
    bullet shoot(const sprite&, const shell&)const;
                                    //tirer
    bool health()const;            //retourne vrai si encore en vie
};


#endif
