예제 #1
0
        private static DeckClassifier.DeckDefinition ClassifyDeck(Deck deck)
        {
            var attrs = new DeckClassifier.DeckAttributes {
                GameType = deck.GameType.ToString(),
                Colors   = deck.Colors?.GroupBy(c => c).ToDictionary(g => g.Key, g => g.Count()),
                Cards    = deck.Cards.GroupBy(c => c).ToDictionary(g => ArchetypeManager.IdToName.ContainsKey(g.Key) ? ArchetypeManager.IdToName[g.Key] : g.Key, g => g.Count()),
                Words    = deck.Cards.SelectMany(c => ArchetypeManager.IdToWords.ContainsKey(c) ? ArchetypeManager.IdToWords[c] : Enumerable.Empty <string>()).GroupBy(c => c).ToDictionary(g => g.Key, g => g.Count())
            };

            return(DeckClassifier.ClassifyDeck(attrs));
        }
예제 #2
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            if (e.Args.Contains("--debug"))
            {
                Logger.DebugMode = true;
            }
            AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionHandler;

            mutex = new Mutex(true, "Local\\DeckTracker", out bool isNew);
            if (!isNew)
            {
                MessageBox.Show("Universal Deck Tracker is already running...");
                Shutdown();
            }

            JsonConvert.DefaultSettings = () => {
                var settings = new JsonSerializerSettings();
                settings.Converters.Add(new StringEnumConverter());
                return(settings);
            };

            Logger.Initialize();
            ConfigManager.Initialize();
            ReplayUploader.Initialize();
            ArchetypeManager.Initialize();
            try {
                DeckClassifier.Initialize();
            } catch (Exception exception) {
                MessageBox.Show(exception.Message);
                Shutdown();
            }
            GameMessageDispatcher.Start();
            ProcessMonitor.Start();
#if !DEBUG
            UpdateManager.StartUpdateCheck();
#endif
        }