示例#1
0
        private void InternalUpdateCardReview(CardNameLocation location, List <CardGuess> cardGuesses)
        {
            currentCardGuessesByLocation[location] = cardGuesses;

            var name      = GetBestGuessLabelName(location);
            var myTextBox = (Button)this.FindName(name);

            myTextBox.Visibility = Visibility.Visible;

            var commentsButton = (Button)this.FindName(GetSearchButtonName(location));

            commentsButton.Visibility = Visibility.Visible;

            float rating = float.Parse(cardGuesses.Last().Review.AverageRating, CultureInfo.InvariantCulture.NumberFormat);

            myTextBox.Background = backgroundBrush;
            myTextBox.Foreground = new SolidColorBrush(Utils.GetMediaColorFromDrawingColor(Utils.GetColorForRating((decimal)rating)));


            myTextBox.Content = cardGuesses.Last().Review.ToString() + (cardGuesses.Count > 1 ? "*" : "");
            Utils.UpdateFontSizeToFit(myTextBox);

            if (DraftScreen.GetCardNameLocationsAvailable(draftPickNumber).Last().Equals(location))
            {
                latestStoryboardRefreshButton.Stop(this);
            }
        }
示例#2
0
 private void SetupCardReviews()
 {
     foreach (var location in DraftScreen.GetAllCardNameLocations())
     {
         MakeCardReviewLabel(location);
     }
 }
示例#3
0
        private void SetupPickNumber()
        {
            RECT pickRect = DraftScreen.GetRectForPickNumber();

            TextBox txtNumber = FindName("DraftPickNumber") as TextBox;

            if (txtNumber == null)
            {
                txtNumber = new TextBox
                {
                    Name            = "DraftPickNumber",
                    Text            = "Loading..",
                    Width           = 400,
                    Height          = 40,
                    Background      = new SolidColorBrush(Colors.Transparent),
                    Foreground      = new SolidColorBrush(Colors.White),
                    CaretBrush      = new SolidColorBrush(Colors.Transparent),
                    BorderThickness = new Thickness(0),
                    FontSize        = 20
                };
                Canvas.SetLeft(txtNumber, pickRect.Left);
                Canvas.SetTop(txtNumber, pickRect.Top - 40);
                MainCanvas.Children.Add(txtNumber);
                MainCanvas.RegisterName(txtNumber.Name, txtNumber);
            }

            Task.Run(() =>
            {
                while (!isPaused)
                {
                    bool isWindowNormal = ProcessWindowManager.Instance.IsWindowStateNormal();
                    if (isWindowNormal)
                    {
                        var pickNumber = CardRecognitionManager.Instance.ReadPickNumber(ProcessWindowManager.Instance.GetWindowAreaBitmap(DraftScreen.GetRectForPickNumber(isDoubleDigitsPickNumber), false));
                        if (pickNumber == null || !pickNumber.StartsWith("Card"))
                        {
                            isDoubleDigitsPickNumber = !isDoubleDigitsPickNumber;
                            pickNumber = CardRecognitionManager.Instance.ReadPickNumber(ProcessWindowManager.Instance.GetWindowAreaBitmap(DraftScreen.GetRectForPickNumber(isDoubleDigitsPickNumber), false));
                        }

                        if (pickNumber == null)
                        {
                            continue;
                        }

                        try
                        {
                            Application.Current.Dispatcher.BeginInvoke(
                                DispatcherPriority.Normal,
                                (Action)(() => OnNewPickNumber(pickNumber, txtNumber)));
                            Thread.Sleep(1000);
                        } catch { /*do nothing*/ }
                    }
                }
            });
        }
示例#4
0
        private void OnNewPickNumber(string newPickNumber, TextBox txtNumber)
        {
            var textRead = newPickNumber;

            newPickNumber = newPickNumber.Replace("Card", "").Trim();
            newPickNumber = DraftScreen.GetExceptionPickNumber(newPickNumber);

            if (string.IsNullOrWhiteSpace(newPickNumber))
            {
                return;
            }


            var is1Numeric   = int.TryParse(newPickNumber[0].ToString(), out int n);
            var is2Numeric   = int.TryParse(newPickNumber[1].ToString(), out int n2);
            var firstNumber  = is1Numeric ? newPickNumber[0].ToString() : "";
            var secondNumber = is2Numeric ? newPickNumber[1].ToString() : "";

            newPickNumber = firstNumber + secondNumber;

            if (string.IsNullOrEmpty(newPickNumber))
            {
                return;
            }

            var newDraftPickNumber = Convert.ToInt32(newPickNumber);

            if (newDraftPickNumber != draftPickNumber)
            {
                draftPickNumber = newDraftPickNumber;

                txtNumber.Text = textRead;

                foreach (var location in DraftScreen.GetCardNameLocationsNotAvailable(draftPickNumber))
                {
                    var name      = GetBestGuessLabelName(location);
                    var myTextBox = (Button)this.FindName(name);
                    myTextBox.Visibility = Visibility.Hidden;

                    var searchButton = (Button)this.FindName(GetSearchButtonName(location));
                    searchButton.Visibility = Visibility.Hidden;
                }
                GetAllCardReviews();
            }
        }
示例#5
0
        private void GetAllCardReviews()
        {
            if (isPaused)
            {
                return;
            }

            var rotateImage = (Image)RefreshBtn.Content;

            rotateImage.RenderTransform       = new RotateTransform();
            rotateImage.RenderTransformOrigin = new Point(0.5, 0.5);

            Storyboard      storyboard      = new Storyboard();
            DoubleAnimation rotateAnimation = new DoubleAnimation()
            {
                From           = 0,
                To             = 360,
                Duration       = new Duration(TimeSpan.FromSeconds(0.6)),
                RepeatBehavior = RepeatBehavior.Forever
            };

            Storyboard.SetTarget(rotateAnimation, rotateImage);
            Storyboard.SetTargetProperty(rotateAnimation, new PropertyPath("(UIElement.RenderTransform).(RotateTransform.Angle)"));

            storyboard.Children.Add(rotateAnimation);
            latestStoryboardRefreshButton = storyboard;
            storyboard.Begin(this, true);

            foreach (var location in DraftScreen.GetCardNameLocationsAvailable(draftPickNumber))
            {
                Task.Run(() =>
                {
                    var cardGuesses = CardRecognitionManager.Instance.ReadCardName(location, ProcessWindowManager.Instance.GetWindowAreaBitmap(location.Rect, true));

                    if (cardGuesses == null || cardGuesses.Count == 0)
                    {
                        return;
                    }
                    UpdateCardReview(location, cardGuesses);
                });
            }
        }