Exemplo n.º 1
0
        private static void detectCommand(string command)
        {
            int whiteSpaces = countSpaces(command);

            switch (whiteSpaces)
            {
            case 0:
                //Movement
                Robot activeRobot = RobotRepository.getInstance().Get().First(r => r.isActive());
                IEnumerable <IMovement> robotAMovements = MovementParser.Parse(command);
                robotAMovements.ForEach(x => x.ExecuteOn(activeRobot));

                Console.WriteLine("{0} {1} {2}", activeRobot.getCoordinate().getX(), activeRobot.getCoordinate().getY(), activeRobot.getDirection());

                break;

            case 1:
                //Arena
                Arena arena = ArenaParser.Parse(command);
                Console.WriteLine(String.Format("Added new Arena: x - {0}, y - {1}", arena.getWidth(), arena.getHeight()));
                ArenaRepository.getInstance().Add(ArenaParser.Parse(command));
                break;

            case 2:
                //Robot
                RobotRepository.getInstance().Add(new RobotCoordinateParser().Parse(command));
                break;

            default:
                throw new Exception();
            }
        }
Exemplo n.º 2
0
        public void Parse_should_return_the_Arena(string inputString, int expectedArenaWidth, int expecredArenaHeight)
        {
            Arena arena = ArenaParser.Parse(inputString);

            arena.Width.Should().Be.EqualTo(expectedArenaWidth);
            arena.Height.Should().Be.EqualTo(expecredArenaHeight);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        public void RunComplete()
        {
            var complete = false;
            var parser   = new ArenaParser();

            parser.ArenaRunComplete += () => complete = true;
            parser.Parse(new Line("Arena", "D 18:21:33.7795321 SetDraftMode - IN_REWARDS"));
            Assert.IsTrue(complete);
        }
Exemplo n.º 5
0
 public void Parse_should_throw_an_ArgumentException_when_unable_to_parse_the_input(string inputString)
 {
     Assert.Throws <ArgumentException>(() => ArenaParser.Parse(inputString));
 }