Example #1
0
        public void FoundDecks()
        {
            List <Deck> decks  = null;
            var         parser = new DecksParser(100);

            parser.FoundDecks += args => decks = args.Decks;

            parser.Parse(new Line("Decks", "I 17:36:16.6978548 Deck Contents Received:"));
            parser.Parse(new Line("Decks", "I 17:18:34.7330418 ### Out of the Woods"));
            parser.Parse(new Line("Decks", "I 17:18:34.7330418 # Deck ID: 1473595360"));
            parser.Parse(new Line("Decks", "I 17:18:34.7365509 AAECAZICCIsI4KwCocICh84Cws4CmdMC5+EC+eYCC0BfxAbkCJTSApjSAqjSAovhAoTmAovmAvXnAgA="));
            parser.Parse(new Line("Decks", "I 17:36:16.7059037 ### Classic Hunter"));
            parser.Parse(new Line("Decks", "I 17:36:16.7059037 # Deck ID: 1473605146"));
            parser.Parse(new Line("Decks", "I 17:36:16.7093861 AAECAYoWBscDyQS7BZkH2Qf4CAyNAdgBqAK1A4cEkgXtBusH2wntCYEK/gwA"));
            Assert.IsNull(decks);

            Thread.Sleep(150);
            Assert.IsNotNull(decks);
            Assert.AreEqual(2, decks.Count);

            Assert.AreEqual("Out of the Woods", decks[0].Name);
            Assert.AreEqual(1473595360, decks[0].DeckId);
            Assert.AreEqual(30, decks[0].CardDbfIds.Sum(x => x.Value));

            Assert.AreEqual("Classic Hunter", decks[1].Name);
            Assert.AreEqual(1473605146, decks[1].DeckId);
            Assert.AreEqual(30, decks[1].CardDbfIds.Sum(x => x.Value));
        }
        public GameEventManager(Game game, ILogInput logInput, IGameDataProvider gameData)
        {
            _game     = game;
            _gameData = gameData;

            _arenaWatcher                 = new ArenaWatcher(gameData);
            _arenaWatcher.RunComplete    += game.Arena.OnArenaRunComplete;
            _arenaWatcher.CardPicked     += game.Arena.OnArenaDraftPick;
            _arenaWatcher.ChoicesChanged += game.Arena.OnArenaDraftChoices;
            _arenaWatcher.DeckComplete   += game.Arena.OnArenaDraftComplete;

            _packWatcher             = new PackWatcher(gameData);
            _packWatcher.PackOpened += game.OnPackOpened;

            _dungeonRunWatcher = new DungeonRunWatcher(new DungeonRunData(game, gameData));
            _dungeonRunWatcher.DungeonRunMatchStarted += game.OnDungeonRunMatchStarted;
            _dungeonRunWatcher.DungeonRunDeckUpdated  += game.OnDungeonRunDeckUpdated;

            _friendlyChallengeWatcher = new FriendlyChallengeWatcher(gameData);
            _friendlyChallengeWatcher.FriendlyChallenge += game.OnFriendlyChallenge;

            var logParserManager = new LogParserManager();

            var powerParser = new PowerParser(new DefaultGameInfoProvider(game));

            powerParser.CreateGame       += () => game.OnCreateGame(null);
            powerParser.PowerTaskListLog += args => game.OnGameTimeChanged(args.Line.Time);
            powerParser.GameStateChange  += mod => game.CurrentGame?.Apply(mod);
            powerParser.BlockStart       += block => game.GameStateEvents.OnBlockStart(block, game.CurrentGame);
            powerParser.BlockEnd         += block => game.GameStateEvents.OnBlockEnd(block, game.CurrentGame);
            powerParser.GameStateLog     += args => game.CurrentGame?.AppendLog(args);
            powerParser.SetupComplete    += game.OnSetupComplete;
            logParserManager.RegisterParser(powerParser);

            var decksParser = new DecksParser();

            decksParser.FindingGame += game.OnQueuedForGame;
            decksParser.EditedDeck  += game.Collection.OnDeckEdited;
            decksParser.FoundDecks  += game.Collection.OnDecksLoaded;
            logParserManager.RegisterParser(decksParser);

            var loadingScreenParser = new LoadingScreenParser();

            loadingScreenParser.ModeChanged += game.OnModeChanged;
            loadingScreenParser.ModeChanged += LoadingScreenParser_OnModeChanged;
            logParserManager.RegisterParser(loadingScreenParser);

            var arenaParser = new ArenaParser();

            arenaParser.ArenaRunComplete += () => _arenaWatcher.Update();
            logParserManager.RegisterParser(arenaParser);

            var rachelleParser = new RachelleParser();

            rachelleParser.DeckDeleted      += game.Collection.OnDeckDeleted;
            rachelleParser.GoldProgressWins += game.OnGoldProgressWins;
            logParserManager.RegisterParser(rachelleParser);

            logInput.NewLines += eventArgs => logParserManager.Parse(eventArgs.Lines);
        }
Example #3
0
        public void InvalidDeck()
        {
            List <Deck> decks  = null;
            var         parser = new DecksParser();

            parser.FoundDecks += args => decks = args.Decks;

            parser.Parse(new Line("Decks", "I 16:47:47.3726325 ### "));
            parser.Parse(new Line("Decks", "I 16:47:47.3726325 # Deck ID: 1430830822"));
            parser.Parse(new Line("Decks", "I 16:47:47.3726325 INVALID_DECKSTRING"));

            Assert.IsNull(decks);
        }
Example #4
0
        public void InvalidLines()
        {
            List <Deck> decks  = null;
            var         parser = new DecksParser();

            parser.FoundDecks += args => decks = args.Decks;

            parser.Parse(new Line("Decks", "Invalid line 1"));
            parser.Parse(new Line("Decks", "Invalid line 2"));
            parser.Parse(new Line("Decks", "Invalid line 3"));

            Assert.IsNull(decks);
        }
Example #5
0
        public void FindingGame_NoDeck()
        {
            Deck deck   = null;
            var  heroId = 0;
            var  parser = new DecksParser();

            parser.FindingGame += args =>
            {
                deck   = args.Deck;
                heroId = args.HeroId;
            };

            parser.Parse(new Line("Decks", "I 16:30:07.9804984 Finding Game With Hero: 637"));
            Assert.IsNull(deck);
            Assert.AreEqual(637, heroId);
        }
Example #6
0
        public void EditedDeck()
        {
            Deck deck   = null;
            var  parser = new DecksParser();

            parser.EditedDeck += args => deck = args.Deck;

            parser.Parse(new Line("Decks", "I 17:18:34.7330418 Finished Editing Deck:"));
            parser.Parse(new Line("Decks", "I 17:18:34.7330418 ### Out of the Woods"));
            parser.Parse(new Line("Decks", "I 17:18:34.7330418 # Deck ID: 1473595360"));
            Assert.IsNull(deck);

            parser.Parse(new Line("Decks", "I 17:18:34.7365509 AAECAZICCIsI4KwCocICh84Cws4CmdMC5+EC+eYCC0BfxAbkCJTSApjSAqjSAovhAoTmAovmAvXnAgA="));
            Assert.IsNotNull(deck);
            Assert.AreEqual("Out of the Woods", deck.Name);
            Assert.AreEqual(1473595360, deck.DeckId);
            Assert.AreEqual(30, deck.CardDbfIds.Sum(x => x.Value));
        }
Example #7
0
        public void FindingGame_Deck_Arena()
        {
            Deck deck   = null;
            var  heroId = 0;
            var  parser = new DecksParser();

            parser.FindingGame += args =>
            {
                deck   = args.Deck;
                heroId = args.HeroId;
            };

            parser.Parse(new Line("Decks", "I 16:47:47.3726325 Starting Arena Game With Deck:"));
            parser.Parse(new Line("Decks", "I 16:47:47.3726325 ### "));
            parser.Parse(new Line("Decks", "I 16:47:47.3726325 # Deck ID: 1430830822"));
            parser.Parse(new Line("Decks", "I 16:47:47.3726325 AAEBAZ/HAhgI3AGXAtwC2AqarAKGrQLsrgKxrwLqvwLRwQKawgLmwgLKwwLJxwLHywKXzgKZzgK0zgLN0wLS0wLL5gKb5wL86gID0wq/5QLY5QIA"));

            Assert.AreEqual(string.Empty, deck.Name);
            Assert.AreEqual(1430830822, deck.DeckId);
            Assert.AreEqual(30, deck.CardDbfIds.Sum(x => x.Value));

            Assert.AreEqual(0, heroId);
        }
Example #8
0
        public void FindingGame_Deck_Constructed()
        {
            Deck deck   = null;
            var  heroId = 0;
            var  parser = new DecksParser();

            parser.FindingGame += args =>
            {
                deck   = args.Deck;
                heroId = args.HeroId;
            };

            parser.Parse(new Line("Decks", "I 17:48:20.5299220 Finding Game With Deck:"));
            parser.Parse(new Line("Decks", "I 17:48:20.5299220 ### Classic Hunter"));
            parser.Parse(new Line("Decks", "I 17:48:20.5299220 # Deck ID: 1473605146"));
            parser.Parse(new Line("Decks", "I 17:48:20.5304233 AAECAYoWBscDyQS7BZkH2Qf4CAyNAdgBqAK1A4cEkgXtBusH2wntCYEK/gwA"));

            Assert.AreEqual("Classic Hunter", deck.Name);
            Assert.AreEqual(1473605146, deck.DeckId);
            Assert.AreEqual(30, deck.CardDbfIds.Sum(x => x.Value));

            Assert.AreEqual(0, heroId);
        }