protected virtual void SaveCreatingPlayerCharacter(string characterName) { PlayerCharacterData characterData = new PlayerCharacterData(); characterData.Id = GenericUtils.GetUniqueId(); characterData.SetNewPlayerCharacterData(characterName, SelectedDataId, SelectedEntityId); characterData.SavePersistentCharacterData(); }
protected override void SaveCreatingPlayerCharacter(string characterName) { PlayerCharacterData characterData = new PlayerCharacterData(); characterData.Id = GenericUtils.GetUniqueId(); characterData.SetNewPlayerCharacterData(characterName, SelectedDataId, SelectedEntityId); characterData.FactionId = SelectedFactionId; characterData.UmaAvatarData = GetAvatarData(); GameInstance.Singleton.SaveSystem.SaveCharacter(characterData); }
protected virtual void LoadCharacters() { // Remove all models characterModelContainer.RemoveChildren(); CharacterModelByEntityId.Clear(); // Remove all cached data PlayerCharacterDataByEntityId.Clear(); // Clear character selection CacheCharacterSelectionManager.Clear(); CacheCharacterList.HideAll(); // Show list of characters that can be create PlayerCharacterData firstData = null; List <BasePlayerCharacterEntity> selectableCharacters = GetCreatableCharacters(); CacheCharacterList.Generate(selectableCharacters, (index, characterEntity, ui) => { // Cache player character to dictionary, we will use it later PlayerCharacterDataByEntityId[characterEntity.EntityId] = characterEntity.playerCharacters; // Prepare data BaseCharacter playerCharacter = characterEntity.playerCharacters[0]; PlayerCharacterData playerCharacterData = new PlayerCharacterData(); playerCharacterData.SetNewPlayerCharacterData(characterEntity.characterTitle, playerCharacter.DataId, characterEntity.EntityId); // Hide all model, the first one will be shown later BaseCharacterModel characterModel = playerCharacterData.InstantiateModel(characterModelContainer); CharacterModelByEntityId[playerCharacterData.EntityId] = characterModel; characterModel.gameObject.SetActive(false); characterModel.UpdateAnimation(false, MovementState.IsGrounded); // Setup UI if (ui != null) { UICharacter uiCharacter = ui.GetComponent <UICharacter>(); uiCharacter.Data = playerCharacterData; CacheCharacterSelectionManager.Add(uiCharacter); } if (index == 0) { firstData = playerCharacterData; } }); // Select first entry if (CacheCharacterSelectionManager.Count > 0) { CacheCharacterSelectionManager.Select(0); } else { OnSelectCharacter(firstData); } }
protected virtual void OnClickCreate() { var gameInstance = GameInstance.Singleton; var selectedUI = SelectionManager.SelectedUI; if (selectedUI == null) { UISceneGlobal.Singleton.ShowMessageDialog("Cannot create character", "Please select character class"); Debug.LogWarning("Cannot create character, did not selected character class"); return; } var characterName = inputCharacterName.text.Trim(); var minCharacterNameLength = gameInstance.minCharacterNameLength; var maxCharacterNameLength = gameInstance.maxCharacterNameLength; if (characterName.Length < minCharacterNameLength) { UISceneGlobal.Singleton.ShowMessageDialog("Cannot create character", "Character name is too short"); Debug.LogWarning("Cannot create character, character name is too short"); return; } if (characterName.Length > maxCharacterNameLength) { UISceneGlobal.Singleton.ShowMessageDialog("Cannot create character", "Character name is too long"); Debug.LogWarning("Cannot create character, character name is too long"); return; } var characterId = GenericUtils.GetUniqueId(); var characterData = new PlayerCharacterData(); characterData.Id = characterId; characterData.SetNewPlayerCharacterData(characterName, selectedUI.Data.DataId, selectedUI.Data.EntityId); characterData.SavePersistentCharacterData(); if (eventOnCreateCharacter != null) { eventOnCreateCharacter.Invoke(); } }
protected virtual void LoadCharacters() { SelectionManager.Clear(); // Show list of characters that can be create var selectableCharacters = GetCreatableCharacters(); CacheList.Generate(selectableCharacters, (index, characterEntity, ui) => { var character = characterEntity.database; var characterData = new PlayerCharacterData(); characterData.DataId = characterEntity.DataId; characterData.EntityId = characterEntity.EntityId; characterData.SetNewPlayerCharacterData(character.title, characterEntity.DataId, characterEntity.EntityId); var uiCharacter = ui.GetComponent <UICharacter>(); uiCharacter.Data = characterData; // Select trigger when add first entry so deactivate all models is okay beacause first model will active var characterModel = characterData.InstantiateModel(characterModelContainer); CharacterModels[characterData.EntityId] = characterModel; characterModel.gameObject.SetActive(false); SelectionManager.Add(uiCharacter); }); }