#ifndef _ROUND_H_
#define _ROUND_H_

#include "allegro.h"
//#include "Unit.h"
//#include "UnitCreate.h"
#include "gameConstants.h"
#include <vector>
#include <string>
using namespace std;

//Round stores the information needed to make a round of TASM.
//Round needs to:
//know how large the arena is
//know its picture and has to draw it
//know which units to load
//know which units to make and when

class Unit;
class UnitCreate;

class Round {
 public:
  Round ();

  void setArenaSize (fixed, fixed);
  fixed getArenaSizeX ();
  fixed getArenaSizeY ();
  BITMAP * getArenaPic ();
  void setArenaPic (BITMAP *);
  BITMAP * getTitlePic ();
  void setTitlePic (BITMAP *);
  vector <UnitCreate *> * getUnitsToAppear ();
  void addUnitsToAppear (UnitCreate *);

  void setArenaKB (fixed);
  fixed getArenaKB ();

  void setArenaWall (int);
  int getArenaWall ();

  string * getName ();
  void setName (string *);

  ~Round ();

 protected:
  string * name;

  //the arena: its size and its picture
  fixed arenaSizeX, arenaSizeY;
  BITMAP * arenaPic;
  BITMAP * titlePic;

  //have a var for the song that is played

  //the units that will be needed, and when/how will they appear?
  vector <Unit *> * unitTypes;
  vector <UnitCreate *> * unitsToAppear;

  //winning and losing conditions for the round
  vector <int> * winningConditions;
  vector <int> * losingConditions;
  int survivalTime;
  int criticalUnitType;
  fixed arenaKB;
  int arenaWall;
};

#endif
