private int FindSelectedPartyMemberIndex()
        {
            int index = -1;

            if (partyBarLocation.X == 0 || partyBarLocation.Y == 0)
            {
                return(index);
            }

            DiffFinder finder = new DiffFinder(partyBarLocation.X, partyBarLocation.Y, 1,
                                               Constants.SCREEEN_HEIGHT - partyBarLocation.Y);
            Point point0 = new Point(0, 0);
            Point point1 = new Point(0, 10);
            Point point2 = new Point(0, 24);
            Point point3 = new Point(0, 48);

            finder.AddDiff(point0, point3, 4);
            finder.AddDiff(point1, point2, 0);
            finder.AddDiff(point0, point1, 19);

            var points = finder.ProcessImage();

            if (points.Count == 1 && points[0].Y > 0)
            {
                var point = points[0];
                int diff  = point.Y - partyBarLocation.Y;
                index = diff / 53;
            }

            return(index);
        }
        private int FindPartySize()
        {
            if (partyBarLocation.X == 0 || partyBarLocation.Y == 0)
            {
                return(0);
            }

            DiffFinder finder = new DiffFinder(partyBarLocation.X, partyBarLocation.Y, 1,
                                               Constants.SCREEEN_HEIGHT - partyBarLocation.Y);

            finder.AddDiff(new Point(0, 0), new Point(0, 1), 9);
            finder.AddDiff(new Point(0, 1), new Point(0, 15), 0);

            var points = finder.ProcessImage(Constants.MAX_PARTY_SIZE);

            _partyBarPoints.Clear();
            foreach (var point in points)
            {
                _partyBarPoints.Add(new Point(point.X + PARTY_BAR_CLICK_POSITION_OFFSET, point.Y));
            }
            return(points.Count);
        }
        private Point GetPartyBarLocation()
        {
            var points = partyBarFinder.ProcessImage();

            return(points.Count > 0 ? points[0] : new Point(0, 0));
        }