internal void InitializeBoard() { // Bootstrapper var boardService = new BoardService(); var gameModel = new GameModel(boardService); var gameController = new GameController(gameModel); var boardModel = new BoardModel(boardService); var boardController = new BoardController(boardModel); var boardViewModel = new BoardViewModel(BoardCanvas, gameModel, boardModel); var userMessageController = new UserMessageController(boardViewModel); var rendererController = new RendererController(boardViewModel); boardModel.NewPieceAdded += rendererController.DrawNewPiece; boardModel.NewPieceAdded += gameController.IncreasePieceCount; boardModel.PieceRemoved += rendererController.DeletePiece; boardModel.PieceRemoved += gameController.DecreaseOpponentPieceCount; boardModel.PieceMoved += rendererController.MovePiece; boardModel.SelectionChanged += rendererController.ChangeSelection; gameModel.TurnTaken += rendererController.UpdateRendererModel; rendererController.NotifyUser += userMessageController.SetUserMessage; boardViewModel.NotifyUser += userMessageController.SetUserMessage; boardViewModel.SelectPiece += boardController.ChangeSelection; boardViewModel.RemovePiece += boardController.RemovePiece; boardViewModel.TakeTurn += gameController.TakeTurn; boardViewModel.AddPiece += boardController.AddNewPiece; boardViewModel.MoveSelectedPiece += boardController.MoveSelectedPiece; DataContext = boardViewModel; gameController.StartGame(); }
private async Task Client_MessageRecieved(SocketMessage messageParam) { if (!(messageParam is SocketUserMessage message)) { return; } var context = new SocketCommandContext(Client, message); var getCard = new MTGCardOutput(); if (context.Message == null || context.Message.Content == "") { return; } if (context.User.IsBot) { return; } if (context.User.Id == 129804455964049408 && context.Guild.Id == 596104949503361050) { await ReactWithEmoteAsync(context.Message, "<:WeebsOut:627783662708064256>"); } if (message != null && (message.Content.Contains("[") && message.Content.Contains("]"))) { try { Regex rx = new Regex(@"\[\[(.*?)\]\]", RegexOptions.Compiled | RegexOptions.IgnoreCase); MatchCollection matches = rx.Matches(message.Content); foreach (var item in matches) { var dataOutput = new UserMessageController(item.ToString()); await context.Channel.SendMessageAsync("", false, dataOutput.MessageOutput.Build()); } } catch (Exception msg) { Console.WriteLine(ConsoleWriteOverride.AddTimeStamp(msg.Message)); await context.Channel.SendMessageAsync("", false, getCard.DetermineFailure(3).Build()); } } var argPos = 0; if (!(message.HasStringPrefix("mtg!", ref argPos) || message.HasMentionPrefix(Client.CurrentUser, ref argPos))) { return; } var result = await Commands.ExecuteAsync(context, argPos, null); if (!result.IsSuccess) { Console.WriteLine(ConsoleWriteOverride.AddTimeStamp($"Something went wrong with executing command. Text: {context.Message.Content} | Error: {result.ErrorReason}")); } }