#include #include "Tile.h" #include "TileAppearance.h" #include "TileBehavior.h" Tile::Tile(Museum & museum, TileData data) : museum(museum) { this->set_data(data); } void Tile::set_data(TileData data) { this->data = data; this->color = TileAppearance::get_color(this->data.type); this->behavior = TileBehavior::get_strategy(this->data.type).clone(this->museum); } void Tile::update() { this->behavior->update(*this); } void Tile::step() { this->behavior->step(); }