#pragma once
#include "../../../../Utils/Process/FSM/Condition.h"

class UnitLoaded : public Condition
{
public:
  UnitLoaded(BWAPI::Unit* unit)
    : m_unit(unit)
  {
  }

  bool evaluate() const
  {
    return m_unit->isLoaded();	
  }

protected:
  BWAPI::Unit* const m_unit;
private:
  UnitLoaded & operator=(const UnitLoaded &);
};

class UnitOnGround: public Condition
{
public:
  UnitOnGround(BWAPI::Unit* const unit)
    : m_unit(unit)
  {
  }

  bool evaluate() const
  {
    return !m_unit->isLoaded();	
  }

protected:
  BWAPI::Unit* const m_unit;
private:
  UnitOnGround & operator=(const UnitOnGround &);
};