Exemplo n.º 1
0
        public async Task SendPlayersBattleScene(PokeBattleGame game)
        {
            var playerOneScene = await EmbeddedMessageUtil.CreateBattleSceneEmbed(_discord.CurrentUser, game.PlayerOne, game.PlayerTwo, _pokemonController);

            var playerTwoScene = await EmbeddedMessageUtil.CreateBattleSceneEmbed(_discord.CurrentUser, game.PlayerTwo, game.PlayerOne, _pokemonController);

            await SendPlayerMessage(playerOneScene, game.PlayerOne.DiscordId);
            await SendPlayerMessage(playerTwoScene, game.PlayerTwo.DiscordId);
        }
Exemplo n.º 2
0
        public async Task SendPlayersLogMessage(PokeBattleGame game)
        {
            var message = "```\n";

            message += game.LogMessage;
            message += "```";

            await SendPlayerMessage(message, game.PlayerOne.DiscordId);
            await SendPlayerMessage(message, game.PlayerTwo.DiscordId);
        }
Exemplo n.º 3
0
        public async Task CreateGame(ulong invitationId)
        {
            Guid            battleTokenId = Guid.NewGuid();
            InvitationGroup invitation    = _pendingInvitations[invitationId];

            // Update our users in our database:
            await UpdateUser(battleTokenId, invitation.PlayerOneId);
            await UpdateUser(battleTokenId, invitation.PlayerTwoId);

            //Create the game for our dictionary:
            PokeBattleGame gameToAdd = new PokeBattleGame(battleTokenId, _pokemonController, _userController);

            gameToAdd.PlayerOne = new BattlePlayer(invitation.PlayerOneId);
            gameToAdd.PlayerTwo = new BattlePlayer(invitation.PlayerTwoId);
            _games.Add(battleTokenId, gameToAdd);
        }
Exemplo n.º 4
0
        private async Task DoGameOverProcess(PokeBattleGame game, IUserMessage message)
        {
            game.RunGame(-1); // Execute post-game functions (XP gain / Level Up)
            var winner = game.GetWinningPlayer();
            var loser  = game.GetLosingPlayer();
            await _handler.UpdateUserPokemon(winner.CurrentPokemon);

            await _handler.UpdateUserPokemon(loser.CurrentPokemon);

            await _handler.SendWinnerCard(winner);

            await _handler.SendLoserCard(loser);

            await game.ClearTokens();

            await message.DeleteAsync();

            await _handler.RemoveGame(game.BattleTokenId);
        }