#pragma once
#include "Animation.h"
#include "SDLib.h"
const int VIRUS = 1;
const int SMALL_WORM = 2;
const int LARGE_WORM = 3;
const int TANK = 4;
const int RED_CELL = 5;
const int BLUE_CELL = 6;
const int CRAWLER = 7;
const int SQUID = 8;
const int BOMB = 9;
const int BLASTER = 10;
const int FLY = 11;
class Enemies
{
public:
struct Vector2
{
float x;
float y;
};
float speed, previousSpeed, initialHealth, currentHealth, damage, resistance, angle;
int burntAlpha;
Animation deathAnim;
Animation processorReachedAnim;
Animation walkingAnim, poisonAnim;
Vector2 position;
bool alive, freeze, flying, poisoned, lightningTarget, killedByLightning, playDeathAnim, reachedProcessor, decrementEnemy;
int width, height, sourceX, sourceY, waveToAppear;
int maxFreezeTime;
timer freezeTimer;
float freezeStrength, currentFreezeTime;
int poisonDmgInterval, pDmgCounter, numberOfPoisonAttacks;
timer pIntervalTimer;
float poisonStrength, currentPoisonTime;
Enemies();
Enemies(SDLib& sdlLib, int dir, int posX, int posY, int prefDirection, int EnemyType, int assignedWave);
void Update(Map& cMap, SDLib& sdlLib);
void DrawGreenHealthBar(SDLib& sdlLib);
void DrawRedHealthBar(SDLib& sdlLib);
void Draw(SDLib& sdlLib);
void UpdateCards(SDLib& sdlLib);
static const int LEFT = 0;
static const int RIGHT = 1;
static const int UP = 2;
static const int DOWN = 3;
int type, direction, preferredDirection, oldPreferredDirection;
private:
float hasGoneUp32;
};