public void Attach(Model.Dungeon model)
        {
            dungeon = model;

            // Load terrain sprites
            tiles.Clear();
            for (int j = 0; j < dungeon.Height; j++)
            {
                for (int i = 0; i < dungeon.Width; i++)
                {
                    Point point             = new Point(i, j);
                    Model.Dungeon.Cell cell = dungeon.GetCell(point);

                    Tile tile = new Tile();
                    tile.Position = FieldToViewCoordinates(point);

                    if (cell.Terrain == Model.Terrain.Floor)
                    {
                        tile.Origin  = new Vector2(64.0F, 32.0F);
                        tile.Texture = grassTile;
                    }
                    else if (cell.Terrain == Model.Terrain.Wall)
                    {
                        tile.Origin  = new Vector2(64.0F, 80.0F);
                        tile.Texture = treeTile;
                    }

                    tiles.Add(tile);
                }
            }
            tiles.Sort(CompareTiles);
        }
        public void Draw()
        {
            for (int j = 0; j < dungeon.Height; j++)
            {
                for (int i = 0; i < dungeon.Width; i++)
                {
                    Point point = new Point(i, j);
                    Model.Dungeon.Cell  cell     = dungeon.GetCell(point);
                    List <Model.Entity> entities = dungeon.GetEntitiesAt(point);

                    bool entityAt = false;
                    for (int k = 0; k < entities.Count(); k++)
                    {
                        if (entities[i] is Model.Entities.Combatant)
                        {
                            Console.Write('@');
                            entityAt = true;
                            break;
                        }
                    }

                    if (!entityAt)
                    {
                        switch (cell.Terrain)
                        {
                        case Model.Terrain.Floor:
                            Console.Write('.');
                            break;

                        case Model.Terrain.Wall:
                            Console.Write('#');
                            break;
                        }
                    }
                }
                Console.Write('\n');
            }
        }