Example #1
0
 /// <summary>
 /// Execute a use item request
 /// </summary>
 /// <remarks>
 /// Generally delegates to individual modules, but not always
 /// </remarks>
 /// <param name="origin">Item that initiated request</param>
 public CoreUseItemResponse UseItem(CoreUseItemRequest request, Item origin, IResponse response)
 {
     response = new CoreUseItemResponse()
     {
         _requestInstanceId = request._requestInstanceId,
         CoreUseItemEvent   = new CoreUseItemEvent()
         {
             Use     = request.Use,
             Using   = origin,
             Success = false
         }
     };
     try
     {
         ItemCommandHandlers.ForEach(itemCommandHandler =>
         {
             if (((CoreUseItemResponse)response)._responseSuccess == false)
             {
                 var coreUseItemEvent = itemCommandHandler.Invoke(request.Use, origin);
                 if (coreUseItemEvent != null)
                 {
                     ((CoreUseItemResponse)response).CoreUseItemEvent = coreUseItemEvent;
                     ((CoreUseItemResponse)response)._responseSuccess = true;
                 }
             }
         });
     }
     catch (Exception e)
     {
         ((CoreUseItemResponse)response)._responseSuccess = false;
         ((CoreUseItemResponse)response)._responseMessage = $"Unable to use item: {e.Message}";
     }
     return((CoreUseItemResponse)response);
 }
Example #2
0
        /// <summary>
        /// Process an item command
        /// </summary>
        /// <param name="itemCommand"></param>
        private async Task OnItemCommand(ItemCommand itemCommand)
        {
            if (itemCommand.Id == new Guid("0db8f80d-0ea8-4cbf-80ba-b37cab739391"))
            {
                var jsonEditorPage = new JsonEditorPage(Container);
                jsonEditorPage.ViewModel.ItemId  = itemCommand.ItemId.ToString();
                jsonEditorPage.ViewModel.PreLoad = true;
                jsonEditorPage.Disappearing     += (disSender, disE) =>
                {
                    MessageService.Send(new WorldReadLocationSummaryRequest()
                    {
                    });
                };
                await Page.Navigation.PushModalAsync(jsonEditorPage);
            }
            else
            {
                var useRequest = new CoreUseItemRequest()
                {
                    ItemId = itemCommand.ItemId,
                    Use    = itemCommand
                };
                var result = await MessageService.SendRequestAsync <CoreUseItemResponse>(useRequest);

                if (!result.IsSuccess())
                {
                    throw new BeforeOurTimeException(result._responseMessage);
                }
            }
        }
Example #3
0
 /// <summary>
 /// Execute a use item request
 /// </summary>
 /// <param name="origin">Item that initiated request</param>
 public string UseItem(CoreUseItemRequest request, Item origin, IResponse response)
 {
     throw new NotImplementedException();
 }