private void MetroWindow_Loaded(object sender, RoutedEventArgs e) { var presentationsource = PresentationSource.FromVisual(this); if (presentationsource != null) // make sure it's connected { Helper.DpiScalingX = presentationsource.CompositionTarget.TransformToDevice.M11; Helper.DpiScalingY = presentationsource.CompositionTarget.TransformToDevice.M22; } if (!_foundHsDirectory) { this.ShowHsNotInstalledMessage(); return; } if (NewVersion != null) { ShowNewUpdateMessage(); } if (_updatedVersion != null) { this.ShowUpdateNotesMessage(); } if (_updatedLogConfig) { this.ShowMessage("Restart Hearthstone", "This is either your first time starting the tracker or the log.config file has been updated. Please restart Heartstone once, for the tracker to work properly."); } ManaCurveMyDecks.UpdateValues(); }
private void AddCardToDeck(Card card) { if (card == null) { return; } if (_newDeck.Cards.Contains(card)) { var cardInDeck = _newDeck.Cards.First(c => c.Name == card.Name); cardInDeck.Count++; } else { _newDeck.Cards.Add(card); } UpdateTitle(); Helper.SortCardCollection(ListViewDeck.Items, Config.Instance.CardSortingClassFirst); ManaCurveMyDecks.UpdateValues(); try { TextBoxDBFilter.Focus(); TextBoxDBFilter.Select(0, TextBoxDBFilter.Text.Length); } catch { } }
private void AddCardToDeck(Card card) { if (card == null) { return; } var cardInDeck = _newDeck.Cards.FirstOrDefault(c => c.Name == card.Name); if (cardInDeck != null) { if (!_newDeck.IsArenaDeck && (cardInDeck.Count >= 2 || cardInDeck.Rarity == "Legendary" && cardInDeck.Count >= 1)) { return; } cardInDeck.Count++; } else { _newDeck.Cards.Add(card); } UpdateCardCount(); Helper.SortCardCollection(ListViewDeck.Items, Config.Instance.CardSortingClassFirst); ManaCurveMyDecks.UpdateValues(); try { TextBoxDBFilter.Focus(); TextBoxDBFilter.Select(0, TextBoxDBFilter.Text.Length); } catch { } }
private void RemoveCardFromDeck(Card card) { if (card == null) { return; } if (card.Count > 1) { card.Count--; } else { _newDeck.Cards.Remove(card); } UpdateCardCount(); Helper.SortCardCollection(ListViewDeck.Items, Config.Instance.CardSortingClassFirst); ManaCurveMyDecks.UpdateValues(); try { TextBoxDBFilter.Focus(); TextBoxDBFilter.Select(0, TextBoxDBFilter.Text.Length); } catch { } UpdateExpansionIcons(); }
private void ComboBoxDeckVersion_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { if (!_initialized || DeckPickerList.ChangedSelection) { return; } var deck = DeckPickerList.SelectedDecks.FirstOrDefault(); if (deck == null) { return; } var version = ComboBoxDeckVersion.SelectedItem as SerializableVersion; if (version == null || deck.SelectedVersion == version) { return; } deck.SelectVersion(version); DeckList.Save(); DeckPickerList.UpdateDecks(forceUpdate: new[] { deck }); UpdateDeckList(deck); ManaCurveMyDecks.UpdateValues(); if (deck.Equals(DeckList.Instance.ActiveDeck)) { UseDeck(deck); } Console.WriteLine(version); }
private void ComboBoxDeckVersion_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { if (!_initialized || DeckPickerList.ChangedSelection) { return; } var deck = DeckPickerList.SelectedDecks.FirstOrDefault() ?? DeckList.Instance.ActiveDeck; if (deck == null) { return; } var version = ComboBoxDeckVersion.SelectedItem as SerializableVersion; if (version == null || deck.SelectedVersion == version) { return; } deck.SelectVersion(version); DeckList.Save(); DeckPickerList.UpdateDecks(forceUpdate: new[] { deck }); UpdateDeckList(deck); ManaCurveMyDecks.UpdateValues(); OnPropertyChanged(nameof(HsReplayButtonVisibility)); if (deck.Equals(DeckList.Instance.ActiveDeck)) { UseDeck(deck); } DeckCharts.SetDeck(deck); HsReplayDeckInfo.SetDeck(deck); }
private async void MetroWindow_Loaded(object sender, RoutedEventArgs e) { var presentationsource = PresentationSource.FromVisual(this); if(presentationsource != null) // make sure it's connected { Helper.DpiScalingX = presentationsource.CompositionTarget.TransformToDevice.M11; Helper.DpiScalingY = presentationsource.CompositionTarget.TransformToDevice.M22; } ManaCurveMyDecks.UpdateValues(); if(_updatedVersion != null) await this.ShowUpdateNotesMessage(); if(!_foundHsDirectory) await this.ShowHsNotInstalledMessage(); else if(_updatedLogConfig) { await this.ShowMessage("Restart Hearthstone", "This is either your first time starting the tracker or the log.config file has been updated. Please restart Heartstone once, for the tracker to work properly."); } if(!Config.Instance.ResolvedDeckStatsIds) { if(ResolveDeckStatsIds()) await Restart(); } if(Config.Instance.HearthStatsSyncOnStart && HearthStatsAPI.IsLoggedIn) HearthStatsManager.SyncAsync(background: true); }
public void LoadAndUpdateDecks() { UpdateDeckList(DeckList.Instance.ActiveDeck); UpdateDbListView(); SelectDeck(DeckList.Instance.ActiveDeck, true); Helper.SortCardCollection(ListViewDeck.Items, Config.Instance.CardSortingClassFirst); DeckPickerList.PropertyChanged += DeckPickerList_PropertyChanged; DeckPickerList.UpdateDecks(); DeckPickerList.UpdateArchivedClassVisibility(); ManaCurveMyDecks.UpdateValues(); }
private async void MetroWindow_Loaded(object sender, RoutedEventArgs e) { var presentationsource = PresentationSource.FromVisual(this); if (presentationsource != null) // make sure it's connected { Helper.DpiScalingX = presentationsource.CompositionTarget.TransformToDevice.M11; Helper.DpiScalingY = presentationsource.CompositionTarget.TransformToDevice.M22; } ManaCurveMyDecks.UpdateValues(); if (_updatedVersion != null) { FlyoutUpdateNotes.IsOpen = true; UpdateNotesControl.LoadUpdateNotes(); //await this.ShowUpdateNotesMessage(); } if (!_foundHsDirectory) { await this.ShowHsNotInstalledMessage(); } else if (_updatedLogConfig && _game.IsRunning) { await this.ShowMessage("Restart Hearthstone", "This is either your first time starting HDT or the log.config file has been updated. Please restart Hearthstone, for HDT to work properly."); } if (!Config.Instance.FixedDuplicateMatches) { RemoveDuplicateMatches(false); } if (!Config.Instance.ResolvedOpponentNames) { ResolveOpponentNames(); } if (!Config.Instance.ResolvedDeckStatsIds) { ResolveDeckStatsIds(); //Restart(); } if (Config.Instance.HearthStatsSyncOnStart && HearthStatsAPI.IsLoggedIn) { HearthStatsManager.SyncAsync(background: true); } //SetupProtocol(); turn on later }
private void RemoveCardFromDeck(Card card) { if (card == null) { return; } if (card.Count > 1) { card.Count--; } else { _newDeck.Cards.Remove(card); } UpdateTitle(); Helper.SortCardCollection(ListViewDeck.Items, Config.Instance.CardSortingClassFirst); ManaCurveMyDecks.UpdateValues(); }
internal async void BtnUpdateDeck_Click(object sender, RoutedEventArgs e) { var selectedDeck = DeckPickerList.SelectedDecks.FirstOrDefault(); if (selectedDeck == null || string.IsNullOrEmpty(selectedDeck.Url)) { return; } var deck = await DeckImporter.Import(selectedDeck.Url); if (deck == null) { await this.ShowMessageAsync("Error", "Could not load deck from specified url."); return; } //this could be expanded to check against the last version of the deck that was not modified after downloading if (deck.Cards.All(c1 => selectedDeck.GetSelectedDeckVersion().Cards.Any(c2 => c1.Name == c2.Name && c1.Count == c2.Count))) { await this.ShowMessageAsync("Already up to date.", "No changes found."); return; } SetNewDeck(selectedDeck, true); TextBoxDeckName.Text = deck.Name; _newDeck.Cards.Clear(); foreach (var card in deck.Cards) { _newDeck.Cards.Add(card); } _newDeck.Edited(); UpdateCardCount(); Helper.SortCardCollection(ListViewDeck.Items, Config.Instance.CardSortingClassFirst); ManaCurveMyDecks.UpdateValues(); TagControlEdit.SetSelectedTags(deck.Tags); }
private async void BtnUpdateDeck_Click(object sender, RoutedEventArgs e) { var selectedDeck = DeckPickerList.SelectedDeck; if (selectedDeck == null || string.IsNullOrEmpty(selectedDeck.Url)) { return; } var deck = await DeckImporter.Import(selectedDeck.Url); if (deck == null) { await this.ShowMessageAsync("Error", "Could not load deck from specified url."); return; } if (deck.Cards.All(c1 => selectedDeck.Cards.Any(c2 => c1.Name == c2.Name && c1.Count == c2.Count))) { await this.ShowMessageAsync("Already up to date.", "No changes found."); return; } SetNewDeck(selectedDeck, true); TextBoxDeckName.Text = deck.Name; _newDeck.Cards.Clear(); foreach (var card in deck.Cards) { _newDeck.Cards.Add(card); } UpdateTitle(); Helper.SortCardCollection(ListViewDeck.Items, Config.Instance.CardSortingClassFirst); ManaCurveMyDecks.UpdateValues(); TagControlEdit.SetSelectedTags(deck.Tags); }
internal async void UpdateDeckFromWeb(Deck existingDeck) { if (existingDeck == null || string.IsNullOrEmpty(existingDeck.Url)) { return; } var deck = await DeckImporter.Import(existingDeck.Url); if (deck == null) { await this.ShowMessageAsync("Error", "Could not load deck from specified url."); return; } //this could be expanded to check against the last version of the deck that was not modified after downloading if (deck.Cards.All(c1 => existingDeck.GetSelectedDeckVersion().Cards.Any(c2 => c1.Name == c2.Name && c1.Count == c2.Count)) && deck.Name == existingDeck.Name) { await this.ShowMessageAsync("Already up to date.", "No changes found."); return; } var imported = (Deck)existingDeck.Clone(); imported.Name = deck.Name; imported.Cards.Clear(); foreach (var card in deck.Cards) { imported.Cards.Add(card); } ShowDeckEditorFlyout(imported, false); Helper.SortCardCollection(ListViewDeck.Items, Config.Instance.CardSortingClassFirst); ManaCurveMyDecks.UpdateValues(); TagControlEdit.SetSelectedTags(deck.Tags); }