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); } }
private void SetupCardReviews() { foreach (var location in DraftScreen.GetAllCardNameLocations()) { MakeCardReviewLabel(location); } }
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*/ } } } }); }
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(); } }
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); }); } }