//these tile shapes should be in a different class or something public List <Tile> GetTilesInCross(MapPosition origin, int limit) { List <Tile> tiles = new List <Tile>(); MapPosition right = new MapPosition(origin.X + limit, origin.Y); tiles = StraightPath(origin, CorrectMapPosition(right).MapPosition); MapPosition left = new MapPosition(origin.X - limit, origin.Y); tiles.AddRange(StraightPath(origin, CorrectMapPosition(left).MapPosition)); MapPosition up = new MapPosition(origin.X, origin.Y + limit); tiles.AddRange(StraightPath(origin, CorrectMapPosition(up).MapPosition)); MapPosition down = new MapPosition(origin.X, origin.Y - limit); tiles.AddRange(StraightPath(origin, CorrectMapPosition(down).MapPosition)); return(tiles); }