Пример #1
0
        public static bool AutoImportArena(ArenaImportingBehaviour behaviour, ArenaInfo info = null)
        {
            var deck = info ?? DeckImporter.FromArena();

            if (deck?.Deck.Cards.Sum(x => x.Count) != 30)
            {
                return(false);
            }
            Log.Info($"Found new complete {deck.Deck.Hero} arena deck!");
            var recentArenaDecks =
                DeckList.Instance.Decks.Where(d => d.IsArenaDeck && d.Cards.Sum(x => x.Count) == 30).OrderByDescending(
                    d => d.LastPlayedNewFirst).Take(15);

            if (recentArenaDecks.Any(d => d.Cards.All(c => deck.Deck.Cards.Any(c2 => c.Id == c2.Id && c.Count == c2.Count))))
            {
                Log.Info("...but we already have that one. Discarding.");
            }
            else if (Core.Game.IgnoredArenaDecks.Contains(deck.Deck.Id))
            {
                Log.Info("...but it was already discarded by the user. No automatic action taken.");
            }
            else if (behaviour == ArenaImportingBehaviour.AutoAsk)
            {
                Core.MainWindow.ShowNewArenaDeckMessageAsync(deck.Deck);
                return(true);
            }
            else if (behaviour == ArenaImportingBehaviour.AutoImportSave)
            {
                Log.Info("...auto saving new arena deck.");
                Core.MainWindow.ImportArenaDeck(deck.Deck);
                return(true);
            }
            return(false);
        }
		public static bool AutoImportArena(ArenaImportingBehaviour behaviour, ArenaInfo info = null)
		{
			var deck = info ?? DeckImporter.FromArena();
			if(deck?.Deck.Cards.Sum(x => x.Count) != 30)
				return false;
			Log.Info($"Found new complete {deck.Deck.Hero} arena deck!");
			var recentArenaDecks =
				DeckList.Instance.Decks.Where(d => d.IsArenaDeck && d.Cards.Sum(x => x.Count) == 30).OrderByDescending(
					d => d.LastPlayedNewFirst).Take(15);
			if(recentArenaDecks.Any(d => d.Cards.All(c => deck.Deck.Cards.Any(c2 => c.Id == c2.Id && c.Count == c2.Count))))
				Log.Info("...but we already have that one. Discarding.");
			else if(Core.Game.IgnoredArenaDecks.Contains(deck.Deck.Id))
				Log.Info("...but it was already discarded by the user. No automatic action taken.");
			else if(behaviour == ArenaImportingBehaviour.AutoAsk)
			{
				Core.MainWindow.ShowNewArenaDeckMessageAsync(deck.Deck);
				return true;
			}
			else if(behaviour == ArenaImportingBehaviour.AutoImportSave)
			{
				Log.Info("...auto saving new arena deck.");
				Core.MainWindow.ImportArenaDeck(deck.Deck);
				return true;
			}
			return false;
		}