Example #1
0
        private async Task UseBerry(ulong encounterId, string spawnId)
        {
            ItemData berryData = Items.Where(x => x.ItemId == ItemId.ItemRazzBerry).FirstOrDefault();

            if (berryData == null || berryData.Count <= 0)
            {
                return;
            }

            try
            {
                UseItemCaptureResponse response = await _client.Encounter.UseCaptureItem(encounterId, ItemId.ItemRazzBerry, spawnId);

                int remaining = berryData.Count - 1;

                if (response.Success)
                {
                    berryData.Count = remaining;

                    LogCaller(new LoggerEventArgs(String.Format("Successfully used berry. Remaining: {0}", remaining), LoggerTypes.Info));
                }
                else
                {
                    LogCaller(new LoggerEventArgs(String.Format("Failed to use berry. Remaining: {0}", remaining), LoggerTypes.Warning));
                }
            }
            catch (Exception ex)
            {
                LogCaller(new LoggerEventArgs("Use Berry request failed", LoggerTypes.Exception, ex));
            }

            await Task.Delay(500);
        }
        private async Task UseBerry(ulong encounterId, string spawnId)
        {
            ItemData berryData = Items.Where(x => x.ItemId == ItemId.ItemRazzBerry || x.ItemId == ItemId.ItemBlukBerry || x.ItemId == ItemId.ItemNanabBerry || x.ItemId == ItemId.ItemPinapBerry).FirstOrDefault();

            if (berryData == null || berryData.Count <= 0)
            {
                return;
            }

            try
            {
                var response = await ClientSession.RpcClient.SendRemoteProcedureCallAsync(new Request
                {
                    RequestType    = RequestType.UseItemCapture,
                    RequestMessage = new UseItemCaptureMessage
                    {
                        EncounterId  = encounterId,
                        ItemId       = berryData.ItemId,
                        SpawnPointId = spawnId
                    }.ToByteString()
                });

                UseItemCaptureResponse useItemCaptureResponse = null;

                useItemCaptureResponse = UseItemCaptureResponse.Parser.ParseFrom(response);
                int remaining = berryData.Count - 1;
                berryData.Count = remaining;
                LogCaller(new LoggerEventArgs(String.Format("Successfully used berry. Remaining: {0}", remaining), LoggerTypes.Info));

                await Task.Delay(CalculateDelay(UserSettings.DelayBetweenPlayerActions, UserSettings.PlayerActionDelayRandom));
            }
            catch (Exception)
            {
                LogCaller(new LoggerEventArgs(String.Format("Failed to use berry. Remaining: {0}", berryData.Count), LoggerTypes.Warning));
            }
        }
 /// <summary>
 /// Provides a safe way to invoke the <see cref="UseItemCaptureReceived" /> event.
 /// </summary>
 /// <param name="value"></param>
 public void RaiseUseItemCaptureReceived(UseItemCaptureResponse value) => UseItemCaptureReceived?.Invoke(this, value);