#pragma once
#include "../../Utils/Component.h"
#include <Exp/Logical/AndExp.h>
#include <BWAPI.h>

class CurrentWorld;
class UnitTypeObject;

/**
 * @brief A unit is said to be recruitable if the prerequisites for training the unit have been 
 *        met AND there's at least one completed building for training it. 
 */
class UnitTypeCreatable : public planning::AndExp
{
public:
  UnitTypeCreatable(UnitTypeObject* unitType);
  UnitTypeObject* getType() const { return m_unitType; }
protected:
  UnitTypeObject* const m_unitType;
};