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; } }
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; } }
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; } }