public void TestDreadscaleIsActual()
        {
            Card c = new Card {
                Id = "AT_063t", Name = "Dreadscale", Type = "Minion"
            };

            Assert.IsTrue(GameV2.IsActualCard(c));
        }
Ejemplo n.º 2
0
        public void HandlePossibleArenaCard(string id)
        {
            var card = GameV2.GetCardFromId(id);

            if (!GameV2.IsActualCard(card))
            {
                return;
            }
            if (!_game.PossibleArenaCards.Contains(card))
            {
                _game.PossibleArenaCards.Add(card);
            }
        }
Ejemplo n.º 3
0
        public void HandlePossibleConstructedCard(string id, bool canBeDoneImporting)
        {
            if (_doneImportingConstructed)
            {
                return;
            }
            var card = GameV2.GetCardFromId(id);

            if (card == null || !GameV2.IsActualCard(card))
            {
                return;
            }
            if (canBeDoneImporting)
            {
                _unloadedCardCount++;
                var containsOtherThanDruid =
                    _game.PossibleConstructedCards.Any(c => !string.IsNullOrEmpty(c.PlayerClass) && c.PlayerClass != "Druid");
                var cardCount =
                    _game.PossibleConstructedCards.Where(c => !Config.Instance.ConstructedImportingIgnoreCachedIds.Contains(c.Id))
                    .Count(c => (!containsOtherThanDruid || c.PlayerClass != "Druid"));
                if (_unloadedCardCount > MaxCardsOnCollectionPage && card.Cost < _lastManaCost && cardCount > 10)
                {
                    _doneImportingConstructed = true;
                    return;
                }
                _lastManaCost = card.Cost;
            }
            else
            {
                if (Helper.SettingUpConstructedImporting)
                {
                    if (!_game.PossibleConstructedCards.Contains(card))
                    {
                        _game.PossibleConstructedCards.Add(card);
                    }
                    return;
                }
                if (_ignoreCachedIds.Contains(card.Id))
                {
                    _ignoreCachedIds.Remove(card.Id);
                    return;
                }
            }
            if (!_game.PossibleConstructedCards.Contains(card))
            {
                _game.PossibleConstructedCards.Add(card);
            }
        }
        private void BtnImportDeck_Click(object sender, RoutedEventArgs e)
        {
            var ignoreCards = new List <Card>();
            var deck        = new Deck {
                Class = _gameStats.OpponentHero
            };

            foreach (var turn in _gameStats.TurnStats)
            {
                foreach (var play in turn.Plays)
                {
                    if (play.Type == PlayType.OpponentPlay || play.Type == PlayType.OpponentDeckDiscard || play.Type == PlayType.OpponentHandDiscard ||
                        play.Type == PlayType.OpponentSecretTriggered)
                    {
                        var card = GameV2.GetCardFromId(play.CardId);
                        if (GameV2.IsActualCard(card))
                        {
                            if (ignoreCards.Contains(card))
                            {
                                ignoreCards.Remove(card);
                                continue;
                            }
                            var deckCard = deck.Cards.FirstOrDefault(c => c.Id == card.Id);
                            if (deckCard != null)
                            {
                                deckCard.Count++;
                            }
                            else
                            {
                                deck.Cards.Add(card);
                            }
                        }
                    }
                    else if (play.Type == PlayType.OpponentBackToHand)
                    {
                        var card = GameV2.GetCardFromId(play.CardId);
                        if (GameV2.IsActualCard(card))
                        {
                            ignoreCards.Add(card);
                        }
                    }
                }
            }
            Helper.MainWindow.SetNewDeck(deck);
            //Helper.MainWindow.TabControlTracker.SelectedIndex = 1;
            Helper.MainWindow.FlyoutGameDetails.IsOpen = false;
            Helper.MainWindow.FlyoutDeckStats.IsOpen   = false;
        }
        public Deck GetOpponentDeck()
        {
            var ignoreCards = new List <Card>();
            var deck        = new Deck {
                Class = OpponentHero
            };

            foreach (var turn in TurnStats)
            {
                foreach (var play in turn.Plays)
                {
                    if (play.Type == PlayType.OpponentPlay || play.Type == PlayType.OpponentDeckDiscard || play.Type == PlayType.OpponentHandDiscard ||
                        play.Type == PlayType.OpponentSecretTriggered)
                    {
                        var card = GameV2.GetCardFromId(play.CardId);
                        if (GameV2.IsActualCard(card) && (card.PlayerClass == null || card.PlayerClass == OpponentHero))
                        {
                            if (ignoreCards.Contains(card))
                            {
                                ignoreCards.Remove(card);
                                continue;
                            }
                            var deckCard = deck.Cards.FirstOrDefault(c => c.Id == card.Id);
                            if (deckCard != null)
                            {
                                deckCard.Count++;
                            }
                            else
                            {
                                deck.Cards.Add(card);
                            }
                        }
                    }
                    else if (play.Type == PlayType.OpponentBackToHand)
                    {
                        var card = GameV2.GetCardFromId(play.CardId);
                        if (GameV2.IsActualCard(card))
                        {
                            ignoreCards.Add(card);
                        }
                    }
                }
            }
            return(deck);
        }