/// <summary>
 /// Sets the characters race resulting in a new UMA model being generated.
 /// </summary>
 /// <param name="race">Race.</param>
 public virtual void SetCharacterRace(AtavismRaceData race)
 {
     this.race = race;
     ResetModel();
     foreach (UGUICharacterRaceSlot raceSlot in races)
     {
         raceSlot.RaceSelected(race);
     }
     UpdateRaceDetails();
 }
        /*public void SetRace(string race, string gender)
         * {
         *  SetRace (race + gender);
         *  this.gender = gender;
         * }*/

        /// <summary>
        /// Cancels character creation and returns back to the selection screen
        /// </summary>
        public virtual void CancelCharacterCreation()
        {
            Destroy(character);
            if (characterSelected != null)
            {
                race   = GetRaceDataByName((string)characterSelected["race"]);
                gender = (string)characterSelected["gender"];
                CharacterSelected(characterSelected);
            }
            //ShowSelectionUI ();
            StartCharacterSelection();
        }
예제 #3
0
        Sprite GetRacePortrait(string gender, string raceName)
        {
            AtavismRaceData raceData = CharacterSelectionCreationManager.Instance.GetRaceDataByName(raceName);

            if (gender == "Male")
            {
                return(raceData.maleCharacterPrefab.GetComponent <AtavismMobAppearance>().portraitIcon);
            }
            else if (gender == "Female")
            {
                return(raceData.femaleCharacterPrefab.GetComponent <AtavismMobAppearance>().portraitIcon);
            }
            return(null);
        }
        public virtual void StartCharacterCreation()
        {
            ShowCreationUI();
            if (createCaracterName != null)
            {
                createCaracterName.text = "";
            }
            if (TMPCreateCaracterName != null)
            {
                TMPCreateCaracterName.text = "";
            }
            if (enterUI != null)
            {
                enterUI.SetActive(false);
            }
            if (races[0] != null)
            {
                race = races[0].raceData;
            }
            foreach (UGUICharacterRaceSlot raceSlot in races)
            {
                raceSlot.RaceSelected(race);
            }
            UpdateRaceDetails();
            aspect = classes[0].classData;
            foreach (UGUICharacterClassSlot classSlot in classes)
            {
                classSlot.ClassSelected(aspect);
            }


            if (character != null)
            {
                Destroy(character);
            }
            characterName = "";

            int randomResult = UnityEngine.Random.Range(0, 2);

            if (randomResult == 0)
            {
                gender = "Male";
            }
            else
            {
                gender = "Female";
            }
            if (avatarList != null)
            {
                avatarList.PreparSlots(race.raceName, gender, aspect.className);
            }

            // Do this after gender so the icons can be updated
            UpdateClassDetails();

            ResetModel();

            /*if (classes.Count > 0)
             *  aspect = classes [0];
             * SetCharacter ();*/
            loginState    = LoginState.CharacterCreate;
            creationState = CreationState.Body;
        }
        public virtual void CharacterSelected(CharacterEntry entry)
        {
            characterSelected = entry;
            foreach (UGUICharacterSelectSlot charSlot in characterSlots)
            {
                charSlot.CharacterSelected(characterSelected);
            }
            if (character != null)
            {
                Destroy(character);
            }
            race   = GetRaceDataByName((string)characterSelected["race"]);
            gender = (string)characterSelected["gender"];
            Dictionary <string, object> appearanceProps = new Dictionary <string, object>();

            foreach (string key in entry.Keys)
            {
                if (key.StartsWith("custom:appearanceData:"))
                {
                    appearanceProps.Add(key.Substring(23), entry[key]);
                }
            }
            // Dna settings
            string prefabName = (string)characterSelected["model"];

            if (prefabName.Contains(".prefab"))
            {
                int resourcePathPos = prefabName.IndexOf("Resources/");
                prefabName = prefabName.Substring(resourcePathPos + 10);
                prefabName = prefabName.Remove(prefabName.Length - 7);
            }
            GameObject prefab = (GameObject)Resources.Load(prefabName);

            if (prefab != null)
            {
                character = (GameObject)Instantiate(prefab, spawnPosition.position, spawnPosition.rotation);
            }
            else
            {
                Debug.LogError("prefab = null model: " + prefabName + " Loading ExampleCharacter");
                prefab = (GameObject)Resources.Load("ExampleCharacter");
                if (prefab != null)
                {
                    character = (GameObject)Instantiate(prefab, spawnPosition.position, spawnPosition.rotation);
                }
            }
            //SetCharacter (prefab);
            // Set equipment
            if (characterSelected.ContainsKey("weaponDisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("weaponDisplayID", (string)characterSelected["weaponDisplayID"]);
            }
            if (characterSelected.ContainsKey("weapon2DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("weapon2DisplayID", (string)characterSelected["weapon2DisplayID"]);
            }
            // UMA-equipment properties
            if (characterSelected.ContainsKey("legDisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("legDisplayID", (string)characterSelected["legDisplayID"]);
            }
            if (characterSelected.ContainsKey("chestDisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("chestDisplayID", (string)characterSelected["chestDisplayID"]);
            }
            if (characterSelected.ContainsKey("headDisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("headDisplayID", (string)characterSelected["headDisplayID"]);
            }
            if (characterSelected.ContainsKey("feetDisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("feetDisplayID", (string)characterSelected["feetDisplayID"]);
            }
            if (characterSelected.ContainsKey("handDisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("handDisplayID", (string)characterSelected["handDisplayID"]);
            }
            if (characterSelected.ContainsKey("capeDisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("capeDisplayID", (string)characterSelected["capeDisplayID"]);
            }
            if (characterSelected.ContainsKey("shoulderDisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("shoulderDisplayID", (string)characterSelected["shoulderDisplayID"]);
            }
            if (characterSelected.ContainsKey("beltDisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("beltDisplayID", (string)characterSelected["beltDisplayID"]);
            }
            if (characterSelected.ContainsKey("ringDisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("ringDisplayID", (string)characterSelected["ringDisplayID"]);
            }
            if (characterSelected.ContainsKey("ring2DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("ring2DisplayID", (string)characterSelected["ring2DisplayID"]);
            }
            if (characterSelected.ContainsKey("earringDisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("earringDisplayID", (string)characterSelected["earringDisplayID"]);
            }
            if (characterSelected.ContainsKey("earring2DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("earring2DisplayID", (string)characterSelected["earring2DisplayID"]);
            }
            if (characterSelected.ContainsKey("rangedDisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("rangedDisplayID", (string)characterSelected["rangedDisplayID"]);
            }
            if (characterSelected.ContainsKey("neckDisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("neckDisplayID", (string)characterSelected["neckDisplayID"]);
            }
            if (characterSelected.ContainsKey("slot1DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot1DisplayID", (string)characterSelected["slot1DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot2DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot2DisplayID", (string)characterSelected["slot2DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot3DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot3DisplayID", (string)characterSelected["slot3DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot4DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot4DisplayID", (string)characterSelected["slot4DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot5DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot5DisplayID", (string)characterSelected["slot5DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot6DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot6DisplayID", (string)characterSelected["slot6DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot7DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot7DisplayID", (string)characterSelected["slot7DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot8DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot8DisplayID", (string)characterSelected["slot8DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot9DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot9DisplayID", (string)characterSelected["slot9DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot10DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot10DisplayID", (string)characterSelected["slot10DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot11DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot11DisplayID", (string)characterSelected["slot11DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot12DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot12DisplayID", (string)characterSelected["slot12DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot13DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot13DisplayID", (string)characterSelected["slot13DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot14DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot14DisplayID", (string)characterSelected["slot14DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot15DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot15DisplayID", (string)characterSelected["slot15DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot16DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot16DisplayID", (string)characterSelected["slot16DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot17DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot17DisplayID", (string)characterSelected["slot17DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot18DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot18DisplayID", (string)characterSelected["slot18DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot19DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot19DisplayID", (string)characterSelected["slot19DisplayID"]);
            }
            if (characterSelected.ContainsKey("slot20DisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("slot20DisplayID", (string)characterSelected["slot20DisplayID"]);
            }
            if (characterSelected.ContainsKey("fashionDisplayID"))
            {
                character.GetComponent <AtavismMobAppearance>().UpdateEquipDisplay("fashionDisplayID", (string)characterSelected["fashionDisplayID"]);
            }



            // Name
            if (nameUI != null)
            {
                nameUI.text = (string)entry["characterName"];
            }
            if (TMPNameUI != null)
            {
                TMPNameUI.text = (string)entry["characterName"];
            }

            // Temp
            if (character != null && character.GetComponent <CustomisedHair>() != null)
            {
                CustomisedHair customHair = character.GetComponent <CustomisedHair>();
                if (characterSelected.ContainsKey(customHair.hairPropertyName))
                {
                    customHair.UpdateHairModel((string)characterSelected[customHair.hairPropertyName]);
                }
            }
        }