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