예제 #1
0
    public override async Task OnClick()
    {
        try {
            if (!CharacterCreationScreenRefresherService.GetHasCharacterTypeSelected())
            {
                return;
            }

            var characterType = CharacterCreationScreenRefresherService.GetSelectedCharacterType();

            LOG.Log($"Sending a request to create character: {GameState.PlayerName} on {GameState.CurrentWorld.World.Id} and type {characterType}");
            var characterData = await NetworkService.RequestCreateCharacter(
                GameState.PlayerName,
                GameState.CurrentWorld.World.Id,
                characterType
                );

            if (characterData != null)
            {
                LOG.Log($"Character creation was ok");
                GameState.CurrentCharacter = characterData;
                await ScreenChangerService.ChangeScreen(ScreenId.Area);
            }
        }
        catch (System.Exception e) {
            LOG.Log(e);
            throw;
        }
    }
예제 #2
0
 public override Task OnClick()
 {
     try {
         LOG.Log($"Selecting character {type}");
         CharacterCreationScreenRefresherService.SetHasCharacterTypeSelected(true);
         CharacterCreationScreenRefresherService.SetSelectedCharacterType(type);
         UIEvents.ChangeGameText(GameTextId.SelectedCharacterType, type.ToString());
         return(base.OnClick());
     }
     catch (System.Exception e) {
         LOG.Log(e);
         throw;
     }
 }
예제 #3
0
    public static async Task ChangeScreen(ScreenId id)
    {
        LOG.Log($"Chaning screen to: {id}");

        switch (id)
        {
        case ScreenId.Login:
            LoginScreenRefresherService.Refresh();
            break;

        case ScreenId.Universe:
            UniverseScreenRefresherService.Refresh();
            break;

        case ScreenId.Area:
            await AreaScreenRefresherService.Refresh();

            break;

        case ScreenId.CreateCharacter:
            CharacterCreationScreenRefresherService.Refresh();
            break;

        case ScreenId.Temp:
            await QuestScreenRefresherService.Refresh(QuestStatus.Available);

            break;
        }

        if (Object.currentScreen.Id != id)
        {
            Object.currentScreen.Hide();
            var screen = Object.screens.Find(x => x.Id == id);
            screen.Show();
            Object.currentScreen = screen;
        }
    }