#pragma once
#include "Command.h"

class MoveCommand : public Command
{
public:
  MoveCommand(BehaviorState& state, BWAPI::Position destination)
    : Command(state), m_destination(destination)
  {
    assert(destination.isValid());
  }
  virtual bool execute(BWAPI::Unit* unit) const
  {
    return unit->move(m_destination);
  }
protected:
  virtual void _output(std::ostream& out) const
  {
    out << "Move " << m_destination;
  }

  const BWAPI::Position m_destination;
};
