Example #1
0
        public async void Run(IProgress <Tuple <Framebuffer, Point?, BonusMask> > progress, CancellationToken ct)
        {
            while (true)
            {
                await buffer.RefreshAsync(ct);

                if (prevBuffer == null)
                {
                    prevBuffer = new byte[buffer.Data.Length];
                    currBuffer = new byte[buffer.Data.Length];
                }
                Array.Copy(buffer.Data, currBuffer, buffer.Data.Length);

                Point?    point = null;
                BonusMask bonus = null;
                if (CheckInApp(buffer))
                {
                    point = FindRedOne(buffer);
                }
                bonus = FindBonus(buffer);

                progress.Report(Tuple.Create(buffer, point, bonus));

                Array.Copy(currBuffer, prevBuffer, currBuffer.Length);
                ct.ThrowIfCancellationRequested();
            }
        }
Example #2
0
        protected void ReadBonusImages()
        {
            var rectNormal = new Rectangle(188, 580, 180, 180);
            var rectExtra  = new Rectangle(188, 470, 180, 180);
            var files      = new[]
            {
                new { Type = BonusType.Bpc, FileName = "BPC Bonus.png", IsExtra = false },
                new { Type = BonusType.Bps, FileName = "BPS Bonus.png", IsExtra = false },
                new { Type = BonusType.FasterResearch, FileName = "Faster Research.png", IsExtra = false },
                new { Type = BonusType.FreeBacteria, FileName = "Free Bacteria.png", IsExtra = false },
                new { Type = BonusType.FreeDiamond, FileName = "Free Diamond.png", IsExtra = false },
                new { Type = BonusType.BpcExtra, FileName = "BPC Bonus Extra.png", IsExtra = true },
                new { Type = BonusType.BpsExtra, FileName = "BPS Bonus Extra.png", IsExtra = true },
                new { Type = BonusType.FasterResearchExtra, FileName = "Faster Research Extra.png", IsExtra = true },
                new { Type = BonusType.FreeBacteriaExtra, FileName = "Free Bacteria Extra.png", IsExtra = true },
                new { Type = BonusType.FreeDiamondExtra, FileName = "Free Diamond Extra.png", IsExtra = true }
            };

            bonusMasks = new List <BonusMask>();
            foreach (var file in files)
            {
                var image = Image.FromFile("Images//" + file.FileName) as Bitmap;
                var mask  = new BonusMask(file.IsExtra ? rectExtra : rectNormal)
                {
                    ClickNormalPos = file.IsExtra ? new Point(550, 1400) : new Point(550, 1270),
                    ClickExtraPos  = file.IsExtra ? new Point(550, 1230) : (Point?)null,
                    Type           = file.Type
                };
                for (int n = 0; n < BonusMask.PixelCount; n++)
                {
                    var p = mask.GetCoord(n);
                    mask.Pixels[n] = image.GetPixel(p.X, p.Y);
                }
                bonusMasks.Add(mask);
            }
        }