예제 #1
0
        private void RemoveItem(DataGridCardItem item)
        {
            TotalAmount -= item.Count;
            DustAmount  -= item.Dust;

            switch (item.Rarity)
            {
            case HearthDb.Enums.Rarity.COMMON:
                CommonsCount -= item.Count;
                break;

            case HearthDb.Enums.Rarity.RARE:
                RaresCount -= item.Count;
                break;

            case HearthDb.Enums.Rarity.EPIC:
                EpicsCount -= item.Count;
                break;

            case HearthDb.Enums.Rarity.LEGENDARY:
                LegendariesCount -= item.Count;
                break;
            }

            cardsGrid.GridItems.Remove(item);

            CurrentItems.Remove(item);
        }
예제 #2
0
        private async void OnCardsGridItemDropped(object sender, DataGridCardItemEventArgs e)
        {
            m_currentItem = e.Item;

            if (m_currentItem.Count > 1)
            {
                m_cardCountDialog = new CardCountDialog(e.Item.Name, e.Item.Count);
                m_cardCountDialog.AcceptButton.Click += OnAcceptClick;
                m_cardCountDialog.CancelButton.Click += OnCancelClick;

                m_dialog = new CustomDialog(this)
                {
                    Content = m_cardCountDialog
                };

                await this.ShowMetroDialogAsync(m_dialog, m_dialogSettings);
            }
            else if (m_currentItem.Count == 1)
            {
                AddItem(m_currentItem);
            }
            else
            {
            }
        }
        private void OnDeleteRowClick(object sender, RoutedEventArgs e)
        {
            int nIndex = dataGrid.SelectedIndex;

            System.Diagnostics.Debug.WriteLine($"Deleting row at index \"{nIndex}\"");

            if (dataGrid.SelectedItem is DataGridCardItem)
            {
                //MetroWindow window = Window.GetWindow(this) as MetroWindow;

                //MessageDialogResult result = await window.ShowMessageAsync(string.Empty, "Are you sure you want to remove the selected card?", MessageDialogStyle.AffirmativeAndNegative);

                //if (result == MessageDialogResult.Affirmative)
                //{
                DataGridCardItem item = dataGrid.SelectedItem as DataGridCardItem;

                GridItems.RemoveAt(nIndex);

                if (RowDeleted != null)
                {
                    RowDeleted(this, new DataGridCardItemEventArgs(item, nIndex));
                }
                else
                {
                }
                //}
                //else { }
            }
            else
            {
            }
        }
예제 #4
0
 private void OnItemDropped(DataGridCardItem item)
 {
     if (ItemDropped != null)
     {
         ItemDropped(this, new DataGridCardItemEventArgs(item, -1));
     }
     else
     {
     }
 }
예제 #5
0
        private void OnOpenSelectionClick(object sender, System.Windows.RoutedEventArgs e)
        {
            if (m_selectionWindow == null)
            {
                List <DataGridCardItem> lstSelection = m_account.AccountPreferences.CardSelection.ConvertAll(c =>
                {
                    CardWrapper wrapper = new CardWrapper(new HearthMirror.Objects.Card(c.Id, c.Count, c.IsGolden));

                    return(DataGridCardItem.FromCardWrapper(wrapper));
                });

                m_selectionWindow = new CardSelectionWindow(lstSelection)
                {
                    Owner = this
                };

                m_selectionWindow.Closed += (s, args) =>
                {
                    m_account.AccountPreferences.CardSelection.Clear();

                    if (m_selectionWindow.SaveSelection)
                    {
                        m_account.AccountPreferences.CardSelection = m_selectionWindow.CurrentItems.ConvertAll(i =>
                        {
                            return(new CachedCard
                            {
                                Id = i.Tag.Card.Id,
                                Count = i.Tag.Card.Count,
                                IsGolden = i.Tag.Card.Premium
                            });
                        });

                        m_account.SavePreferenes();
                    }
                    else
                    {
                    }

                    openSelectionButton.IsEnabled = true;

                    m_selectionWindow = null;
                };

                m_selectionWindow.Show();

                openSelectionButton.IsEnabled = false;
            }
            else
            {
                DustUtilityPlugin.BringWindowToFront(m_selectionWindow);
            }
        }
        private SearchResultContainer CreateSearchResult(CardWrapper[] vCards)
        {
            SearchResultContainer retVal = new SearchResultContainer();

            Log.WriteLine("Creating search result...", LogType.Debug);

            DataGridCardItem[] vItems = new DataGridCardItem[vCards.Length];

            for (int i = 0; i < vCards.Length; i++)
            {
                CardWrapper wrapper = vCards[i];

                switch (wrapper.DbCard.Rarity)
                {
                case HearthDb.Enums.Rarity.COMMON:
                    retVal.CommonsCount += wrapper.Count;
                    break;

                case HearthDb.Enums.Rarity.RARE:
                    retVal.RaresCount += wrapper.Count;
                    break;

                case HearthDb.Enums.Rarity.EPIC:
                    retVal.EpicsCount += wrapper.Count;
                    break;

                case HearthDb.Enums.Rarity.LEGENDARY:
                    retVal.LegendariesCount += wrapper.Count;
                    break;
                }

                DataGridCardItem item = DataGridCardItem.FromCardWrapper(wrapper);

                retVal.TotalCount += item.Count;
                retVal.Dust       += item.Dust;

                vItems[i] = item;
            }

            //Sort
            vItems = OrderItems(vItems).ToArray();

            for (int i = 0; i < vItems.Length; i++)
            {
                retVal.GridItems.Add(vItems[i]);
            }

            return(retVal);
        }
예제 #7
0
        private void OnDataGridDrop(object sender, DragEventArgs e)
        {
            System.Diagnostics.Debug.WriteLine("drop");

            if (e.Data.GetDataPresent("item"))
            {
                DataGridCardItem item = e.Data.GetData("item") as DataGridCardItem;

                System.Diagnostics.Debug.WriteLine($"Dropped {item.Name}");

                OnItemDropped(item);
            }
            else
            {
            }
        }
예제 #8
0
        private void OnDataGridMouseMove(object sender, MouseEventArgs e)
        {
            //if (cardImagePopup.IsOpen)
            //{
            //    Point position = e.GetPosition(dataGrid);

            //    cardImagePopup.HorizontalOffset = position.X + 20;
            //    cardImagePopup.VerticalOffset = position.Y;
            //}
            //else { }

            if (AllowDrag && (m_startPosition != null && m_startPosition.HasValue))
            {
                if (m_draggedItem == null && dataGrid.SelectedIndex > -1)
                {
                    m_draggedItem = dataGrid.SelectedItem as DataGridCardItem;
                }
                else
                {
                }

                Point position = e.GetPosition(null);

                Vector diff = m_startPosition.Value - position;

                if (m_draggedItem != null &&
                    (Math.Abs(diff.X) > (SystemParameters.MinimumHorizontalDragDistance / 3) &&
                     Math.Abs(diff.Y) > (SystemParameters.MinimumVerticalDragDistance / 3)))
                {
                    System.Diagnostics.Debug.WriteLine($"dragging {m_draggedItem.Name}");

                    DataObject data = new DataObject("item", m_draggedItem.CreateCopy());

                    DragDrop.DoDragDrop(dataGrid, data, DragDropEffects.Copy);

                    m_startPosition = null;
                    m_draggedItem   = null;
                }
                else
                {
                }
            }
            else
            {
            }
        }
예제 #9
0
        private void OnImportPackClick(object sender, RoutedEventArgs e)
        {
            List <HearthMirror.Objects.Card> lstLatestPack = Reflection.GetPackCards();

            if (lstLatestPack?.Count > 0)
            {
                for (int i = 0; i < lstLatestPack.Count; i++)
                {
                    CardWrapper wrapper = new CardWrapper(lstLatestPack[i]);

                    DataGridCardItem item = DataGridCardItem.FromCardWrapper(wrapper);

                    AddItem(item);
                }
            }
            else
            {
            }
        }