public void TestDreadscaleIsActual() { Card c = new Card { Id = "AT_063t", Name = "Dreadscale", Type = "Minion" }; Assert.IsTrue(GameV2.IsActualCard(c)); }
public void HandlePossibleArenaCard(string id) { var card = GameV2.GetCardFromId(id); if (!GameV2.IsActualCard(card)) { return; } if (!_game.PossibleArenaCards.Contains(card)) { _game.PossibleArenaCards.Add(card); } }
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); }