#include #include "RedTileBehavior.h" #include "BlueTileBehavior.h" #include "Tile.h" #include "Museum.h" using namespace std; RedTileBehavior RedTileBehavior::instance { RedTileBehavior::type }; void RedTileBehavior::step(Artist * artist) { this->interactions++; if (artist != nullptr) this->museum->people.remove_artist(*artist); } void RedTileBehavior::update(Tile & tile) { if (this->interactions == 0) return; tile.set_type(BlueTileBehavior::type); } unique_ptr RedTileBehavior::clone(Museum & museum) { auto instance = new RedTileBehavior(); instance->museum = &museum; return unique_ptr(instance); }