#ifndef BASE_TYPES_H #define BASE_TYPES_H #include #include #include struct Alien { int Id; // uses for QHash QString name; int type; QPointF pos; float angle; // -180 .. 180 float speed; // cells per tick (speed=1 is 60cells by 1 sec for 60fps e.g.) float health; QPoint finish; QVector path; int pathIndex; unsigned int prise; }; struct Tower { QString name; int type; int AlienId; // aim alien int PlayerId; // tower's owner QPoint pos; // not QPointF because tower fixed on grid float angle; // -180 .. 180 float range; // in cells float reload; // time for reload in ticks }; struct Splash { int Id; QString name; int type; QPoint TowerId; // parent tower (-1;-1) for null parent int AlienId; // aim alien (different from tower.AlienId) int lifetime; // in ticks float radius; // in cells float angle; // -180 .. 180 QPointF pos; }; struct Wave { int Id; QList types; // some types of aliens (e.g. 2 fly and 3 grount in one wave) QList counts; // count aliens of each type int wait_time; // time in ticks unsigned int gold; }; #endif // BASE_TYPES_H