Beispiel #1
0
        public void RemoveGame(ulong userId)
        {
            Game game = _gameByUserId[userId];

            game.OnGameUpdated -= HandleGameUpdate;
            game.OnGameEnded   -= HandleGameEnded;

            _gameByUserId.Remove(userId);
        }
Beispiel #2
0
        private async Task HandleGameEnded(Game game)
        {
            Embed embed = new EmbedBuilder()
                          .WithTitle("Game Over!")
                          .WithDescription($"{game.Player.Username}#{game.Player.Discriminator} reached a score of {game.Score}.\nThanks for playing!")
                          .AddField("\u200B", "[GitHub Repository](https://github.com/DaRealBerlm/ProtoTheSnake)")
                          .WithCurrentTimestamp()
                          .Build();
            await game.Message.ModifyAsync(x => x.Embed = embed);

            RemoveGame(game.Player.Id);
        }
Beispiel #3
0
 private async Task HandleGameUpdate(Game game)
 {
     var level = game.Grid.Render();
     var embed = GetEmbed(level, game.Player);
     await game.Message.ModifyAsync(x => x.Embed = embed);
 }
Beispiel #4
0
 public void AddGame(ulong userId, Game game)
 {
     game.OnGameUpdated += HandleGameUpdate;
     game.OnGameEnded   += HandleGameEnded;
     _gameByUserId.Add(userId, game);
 }