#pragma once #include #include class Tile; class Museum; class TileBehaviorStrategy { public: virtual void step(); virtual void update(Tile &) = 0; virtual std::unique_ptr clone(Museum & m) = 0; protected: TileBehaviorStrategy(const std::string type); TileBehaviorStrategy() = default; protected: unsigned int steps = 0; Museum * museum = nullptr; };