public async Task CatchMonster(SocketMessage message) { if (ActiveMonster == null) { await message.Channel.SendMessageAsync($"No active monster to catch. Try later."); return; } var player = await _monsterRepository.GetPlayer(message.Author.ToString()); if (player == null) { player = await _monsterRepository.CreatePlayer(message.Author.ToString()); } var catchSuccess = GetCatchSuccess(player); if (catchSuccess) { var catchImageUrl = Settings.GetCatchImageUrl(); await message.Channel.SendMessageAsync($"{catchImageUrl} \n {player.DiscordId} caught the {ActiveMonster.Name}!"); await _monsterRepository.IncreasePlayerExperience(player, ActiveMonster.BaseExperienceAward *ActiveMonster.Level); await _monsterRepository.AddPlayerCatch(player, ActiveMonster); Console.WriteLine($"New monster will spawn in {MonsterAppearTimer} minutes"); ActiveMonster = null; } else { await message.Channel.SendMessageAsync($"{player.DiscordId} failed to catch the {ActiveMonster.Name}! GET RECKT!"); } }