#ifndef _PLAYERUNIT_H_
#define _PLAYERUNIT_H_

#include "InputObj.h"
#include "Unit.h"
#include "allegro.h"

#include <vector>
#include <string>
using namespace std;

//is a child of parent
//a mutable variable that tells it how much health it's gaining from hitting units and juice
//the input object (for mouse movement and aim)

class PlayerUnit : public Unit {
 public:
  PlayerUnit (UnitList *, UnitTemplate *, Unit *, fixed, fixed, fixed, fixed, int);

  virtual ~PlayerUnit ();

  virtual void decideAction ();
  virtual void draw (BITMAP *, MusicSound *, bool);
  virtual void takeDamage ();
  virtual void reduceScore (int);

  void aim ();
  void addJuiceGained (int);
  void resetJuiceGained ();
  int getJuiceGained ();
  int getScore ();

  void setInputObj (InputObj *);

  int getHPCostOfAttack (int);
  void setHPCostOfAttack (int, int);

  virtual void changeGoodStatusMax (int index, int val);
  virtual void changeBadStatusMax (int index, int val);
  vector <int> * getGoodStatusMax ();
  vector <int> * getBadStatusMax ();

 protected:
  int juiceGained;
  InputObj * iO;

  int hpAttack1;
  int hpAttack2;
  int hpAttack4;

  int chainTimer;
  int chainStep;

  int score;

  vector <int> * goodStatusMax;
  vector <int> * badStatusMax;
};

#endif
