#ifndef BASESTRUCT_H
#define BASESTRUCT_H

#include <QVector>
#include <QPoint>
#include <QString>
#include <QPixmap>
#include <QPointF>
#include <QRect>
#include <QDebug>

#include <cmath>
#include <deque>

using std::atan;
using std::deque;

struct FPVector
{
    QPointF pnt;
    float angle;
};


/*struct Effect
{
    float Health;
    float Speed;
    int Armor;
    int CntHealth;
    int CntSpeed;
    int CntArmor;
};*/


struct AlienImages
{
    QVector<QPixmap> pix;
    int type;
};


struct Alien
{
//        unsigned char AName[64];
        FPVector Position;
        int PicType;
        //int FlX;
        //int FlY;
        //int Armor;
        //int Level;
        //int Money;
        int PathIndex;
        int PicIndex;
        //int PicIndl;
        //int MaxFrame;
        //float Health;
        float Speed;
        float PicFrame;
        //float PicI;
        //float Regeneration;
        deque<QPointF> path;//path() As Point
		QPoint DestPnt;
//		Effect Effects;
};


struct Tower
{
    //unsigned char TName[64];
    //Rectangle Position;
    //float angle;
    //int flx;
    //int fly;
    QPointF Center;
    //Point FirePnt;
    //int BaseType;
    //int Damage;
    //float Radius;
    //float DamageRadius;
    //float FireSpeed;
    //float DPS;
    //int Level;
    //int Cost;
    //int UpgradeCost;
    //int Aim;
    //int FireCnt;
    //Effect Effects;
};

/*
struct Splash
{
    FPVector Position;
    int flx;
    int fly;
    Point DestPnt;
    int DestAlien;
    int BaseType;
    int Damage;
    float DamageRadius;
    float Speed;
    Effect Effects;
    int PicInd;
    float PicFrame;
    int MaxFrame;
};

*/
#endif // BASESTRUCT_H
