Example #1
0
        private void OnDeleteCharacterButtonClicked(int characterIndex)
        {
            var noticeWindow = Utils.ShowNotice("Deleting a character... Please wait.", null, true);

            noticeWindow.OkButton.interactable = false;

            var parameters = new RemoveCharacterRequestParameters(characterIndex);

            coroutinesExecutor.StartTask((y) => DeleteCharacter(y, parameters), exception => ServiceConnectionProviderUtils.OnOperationFailed());
        }
Example #2
0
        private async Task DeleteCharacter(IYield yield, RemoveCharacterRequestParameters parameters)
        {
            var characterPeerLogic = ServiceContainer.GameService.GetPeerLogic <ICharacterPeerLogicAPI>().AssertNotNull();
            var responseParameters = await characterPeerLogic.RemoveCharacter(yield, parameters);

            switch (responseParameters.Status)
            {
            case RemoveCharacterStatus.Succeed:
            {
                var characterParameters = new CharacterParameters {
                    HasCharacter = false, Index = (CharacterIndex)parameters.CharacterIndex
                };
                RecreateCharacter(characterParameters);

                var noticeWindow = UserInterfaceContainer.Instance.Get <NoticeWindow>().AssertNotNull();
                noticeWindow.Message.text          = "Character deleted successfully.";
                noticeWindow.OkButton.interactable = true;
                break;
            }

            case RemoveCharacterStatus.Failed:
            {
                var noticeWindow = UserInterfaceContainer.Instance.Get <NoticeWindow>().AssertNotNull();
                noticeWindow.Message.text          = "Could not remove a character. Please try again.";
                noticeWindow.OkButton.interactable = true;
                break;
            }

            default:
            {
                var noticeWindow = UserInterfaceContainer.Instance.Get <NoticeWindow>().AssertNotNull();
                noticeWindow.Message.text          = "Something went wrong, please try again.";
                noticeWindow.OkButton.interactable = true;
                break;
            }
            }
        }
Example #3
0
 public async Task <RemoveCharacterResponseParameters> RemoveCharacter(IYield yield, RemoveCharacterRequestParameters parameters)
 {
     return(await ServerPeerHandler.SendOperation <RemoveCharacterRequestParameters, RemoveCharacterResponseParameters>
                (yield, (byte)CharacterOperations.RemoveCharacter, parameters, MessageSendOptions.DefaultReliable()));
 }