private void ArtifactSetsComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (_artifactSetsComboBoxSelectionHandled) { if (!EquipmentHelper.CanArtifactSetsBeChanged()) { AlertBox.Show("Artifact Sets cannot be changed while in combat or questing", MessageBoxButton.OK); var comboBox = sender as ComboBox; _artifactSetsComboBoxSelectionHandled = false; comboBox.SelectedItem = e.RemovedItems[0]; return; } var artifactSetName = e.AddedItems[0]?.ToString(); var artifactSetId = User.Instance.CurrentHero.ArtifactSets.FirstOrDefault(x => x.Name == artifactSetName).Id; EquipmentHelper.SwitchArtifactSet(artifactSetId); // Refresh the entire panel. RefreshWholeArtifactsPanel(); ArtifactsScrollViewer.ScrollToTop(); } _artifactSetsComboBoxSelectionHandled = true; }
private void ItemBorder_TryToEquip(object sender, MouseButtonEventArgs e) { var item = (sender as Border)?.Tag; if (item is Artifact artifact) { var isEquipped = User.Instance.CurrentHero.EquippedArtifacts.Contains(artifact); var equippedArtifactsChanged = false; if (!isEquipped) { var canBeEquipped = artifact.ArtifactFunctionality.CanBeEquipped(); if (canBeEquipped) { User.Instance.CurrentHero.EquippedArtifacts.Add(artifact); User.Instance.CurrentHero.ArtifactSets.FirstOrDefault(x => x.Id == User.Instance.CurrentHero.CurrentArtifactSetId)?.ArtifactIds.Add(artifact.Id); artifact.ArtifactFunctionality.OnEquip(); (sender as Border).Background = FindResource("BrushAccent3") as SolidColorBrush; (sender as Border).BorderBrush = FindResource("BrushBlack") as SolidColorBrush; equippedArtifactsChanged = true; } } else { // If the player clicked on the Equipped item border (in case they have 2 of this item and only 1 is equipped). if ((sender as Border).Name.StartsWith("Equipped")) { var canBeUnequipped = artifact.ArtifactFunctionality.CanBeUnequipped(); if (canBeUnequipped) { User.Instance.CurrentHero.EquippedArtifacts.Remove(artifact); User.Instance.CurrentHero.ArtifactSets.FirstOrDefault(x => x.Id == User.Instance.CurrentHero.CurrentArtifactSetId)?.ArtifactIds.Remove(artifact.Id); artifact.ArtifactFunctionality.OnUnequip(); (sender as Border).Background = FindResource("BrushAccent1") as SolidColorBrush; (sender as Border).BorderBrush = FindResource("BrushBlack") as SolidColorBrush; equippedArtifactsChanged = true; } } else { AlertBox.Show("You cannot equip two of the same artifacts!", MessageBoxButton.OK); } } // Refresh Artifacts tab. if (equippedArtifactsChanged) { RefreshWholeArtifactsPanel(); InterfaceHelper.RefreshStatsAndEquipmentPanelsOnCurrentPage(); ArtifactsScrollViewer.ScrollToTop(); } } }
private void ReloadScrollbarOffset() { if (_verticalOffset != 0) { switch (_selectedTabIndex) { case 0: MaterialsScrollViewer.ScrollToVerticalOffset(_verticalOffset); break; case 1: RecipesScrollViewer.ScrollToVerticalOffset(_verticalOffset); break; case 2: ArtifactsScrollViewer.ScrollToVerticalOffset(_verticalOffset); break; } _verticalOffset = 0; } }