#pragma once #include #include "context.h" #include "state.h" #include "states.h" #include "station.h" class OnTheMove : public State { private: Station* targetStation; public: OnTheMove(Station* targetStation); State* putDown(Station* newSation) override; }; class Hacking : public State { private: Station* currentStation; public: Hacking(Station* currentStation); State* pickedUp() override; }; class WaitingForPickup : public State { private: Station* currentStation; Station* targetStation; public: WaitingForPickup(Station* currentStation, Station* targetStation); State* pickedUp() override; }; class Startup : public State { public: State* putDown(Station* newSation) override; }; class NewTargetFinder : public State { private: Station* currentStation; public: NewTargetFinder(Station* currentStation); State* update(Context context) override; };