// Assign random attributes public void Randomise() { Appearance.Randomise(false, false); Movement.LookDir = new Vector3(Random.Range(-1f, 1f), 0, Random.Range(-1f, 1f)); charName = AssetManager.instance.GetUniqueNpcName(); age = (CharacterAge)Random.Range(0, System.Enum.GetNames(typeof(CharacterAge)).Length); occupation = (CharacterOccupation)Random.Range(0, System.Enum.GetNames(typeof(CharacterOccupation)).Length - 1); // -1 to not include politician wealth = (CharacterWealth)Random.Range(0, System.Enum.GetNames(typeof(CharacterWealth)).Length); disposition = Random.Range(40, 60); // If poor then high chance of wearing rags and fingerless gloves if (wealth == CharacterWealth.Poor && Random.value > 0.2f) { Appearance.hands = 2; Appearance.body = 3; } if (occupation == CharacterOccupation.Monk) { // Monk hairstyle Appearance.hair = 2; Appearance.hat = 0; } if (occupation == CharacterOccupation.Knight) { // Helmet and armour Appearance.hat = 5; Appearance.body = 2; Appearance.hair = 0; // Bald head so hair doesn't clip through helmet } // Randomise colours AFTER setting body parts so it picks colours from the new palettes Appearance.RandomiseColours(); Appearance.ApplyAll(); }
public string GetRandomFlattery(CharacterAge age) { if (_flatteryAge.ContainsKey(age)) { return(_flatteryAge.GetValue(age).RandomText); } return(""); }
public string GetRandomThreaten(CharacterAge age) { if (_threatenAge.ContainsKey(age)) { return(_threatenAge.GetValue(age).RandomText); } return(""); }
public bool Matches(CharacterAge g1, CharacterAge g2) { var hashSet = m_matchingRules[g1]; if (hashSet == null) { return(true); } return(hashSet.Contains(g2)); }
public void GetAgeMatchQuality_CloseAdult(ActorAge actorAge, CharacterAge characterAge) { var actor = new Glyssen.VoiceActor.VoiceActor { Age = actorAge }; var matchQuality = actor.GetAgeMatchQuality(new CharacterDetail { Age = characterAge }); Assert.AreEqual(MatchLevel.Acceptable, matchQuality); }
public void GetAgeMatchQuality_AdultVsChild(ActorAge actorAge, CharacterAge characterAge) { var actor = new Glyssen.VoiceActor.VoiceActor { Age = actorAge }; var matchQuality = actor.GetAgeMatchQuality(new CharacterDetail { Age = characterAge }); Assert.AreEqual(AgeMatchQuality.AdultVsChild, matchQuality); }
public void AddRule(CharacterAge age, IEnumerable <CharacterAge> matchingAges) { if (matchingAges == null) { m_matchingRules.Add(age, null); } else { m_matchingRules.Add(age, new HashSet <CharacterAge>(matchingAges)); } }
public void GetAgeMatchQuality_Mismatch(ActorAge actorAge, CharacterAge characterAge) { var actor = new Glyssen.VoiceActor.VoiceActor { Age = actorAge }; var matchQuality = actor.GetAgeMatchQuality(new CharacterDetail { Age = characterAge }); Assert.AreEqual(MatchLevel.Mismatch, matchQuality); }
public void StoreCharacterDetail(string characterId, CharacterGender gender, CharacterAge age) { if (m_project.AllCharacterDetailDictionary.ContainsKey(characterId)) { throw new ArgumentException("Project already contains a character with ID " + characterId); } var detail = new CharacterDetail { CharacterId = characterId, Gender = gender, Age = age, MaxSpeakers = 1 }; m_pendingCharacterDetails[characterId] = detail; }
private static string GetUiStringForCharacterAge(CharacterAge characterAge) { switch (characterAge) { case CharacterAge.Child: return(LocalizationManager.GetString("DialogBoxes.NewCharacterDlg.CharacterAge.Child", "Child")); case CharacterAge.Elder: return(LocalizationManager.GetString("DialogBoxes.NewCharacterDlg.CharacterAge.Elder", "Elder")); case CharacterAge.YoungAdult: return(LocalizationManager.GetString("DialogBoxes.NewCharacterDlg.CharacterAge.YoungAdult", "Young Adult")); default: return(LocalizationManager.GetString("DialogBoxes.NewCharacterDlg.CharacterAge.Adult", "Adult")); } }
private static string GetUiStringForCharacterAge(CharacterAge characterAge) { switch (characterAge) { case CharacterAge.Child: return(LocalizationManager.GetString("DialogBoxes.VoiceActorAssignmentDlg.CharacterAge.Child", "Child")); case CharacterAge.Elder: return(LocalizationManager.GetString("DialogBoxes.VoiceActorAssignmentDlg.CharacterAge.Elder", "Elder")); case CharacterAge.YoungAdult: return(LocalizationManager.GetString("DialogBoxes.VoiceActorAssignmentDlg.CharacterAge.YoungAdult", "Young Adult")); default: return(string.Empty); } }
public PersonalInformation(CharacterName characterName, CharacterSex characterSex, CharacterRace characterRace, CharacterBackground characterBackground, CharacterAge characterAge, CharacterHeight characterHeight, CharacterWeight characterWeight, CharacterHairStyle hairStyle) { cName = characterName; cRace = characterRace; cSex = characterSex; cBackground = characterBackground; cHeight = characterHeight; cWeight = characterWeight; cAge = characterAge; cHair = hairStyle; }
private static string GetUiStringForCharacterAge(CharacterAge characterAge) { switch (characterAge) { case CharacterAge.Child: return("Kiddo"); case CharacterAge.Elder: return("Geezer"); case CharacterAge.YoungAdult: return("Whippersnapper"); default: return(string.Empty); } }
public bool ContainsCharacterWithAge(CharacterAge age) { var characterDetails = m_project.AllCharacterDetailDictionary; return(CharacterIds.Any(c => { if (CharacterVerseData.IsCharacterStandard(c)) { return age == CharacterAge.Adult; } return characterDetails[c].Age == age; })); }
public void ChangeAge(CharacterAge newAge, CharacterAge previousAge) { if (IsInteracting()){ CloseInteraction(); } if (currentState.GetType() == typeof(MoveState)) { EnterState(new IdleState(this)); } ChangeAnimation(newAge.boneAnimation); AgeSwapMover.instance.ChangeAgePosition(newAge, previousAge); DebugManager.instance.Log("Transition to: " + newAge.stateName + ", from " + previousAge.stateName, "Player"); //ChangeHitBox(newAge, previousAge); Inventory.SwapItemWithCurrentAge(newAge.boneAnimation); }
/// <summary> /// We used to use this in character group generation. We no longer use it, but since there are a lot of tests for it and it might /// be useful in the future, we'll keep it around for now. /// </summary> public bool Matches(CharacterDetail character, CharacterGenderMatchingOptions genderMatchingOptions, CharacterAgeMatchingOptions ageMatchingOptions) { if (!CharacterIds.Any()) { return(false); // Probably a group set aside for a special purpose in the group generator (e.g., narrator) } if (CharacterVerseData.IsCharacterStandard(character.CharacterId)) { switch (CharacterVerseData.GetStandardCharacterType(character.CharacterId)) { case CharacterVerseData.StandardCharacter.Narrator: return(CharacterIds.All(i => CharacterVerseData.GetStandardCharacterType(i) == CharacterVerseData.StandardCharacter.Narrator)); default: return(CharacterIds.All(i => { var type = CharacterVerseData.GetStandardCharacterType(i); return type != CharacterVerseData.StandardCharacter.Narrator && type != CharacterVerseData.StandardCharacter.NonStandard; })); } } if (CharacterIds.Any(i => CharacterVerseData.IsCharacterStandard(i))) { return(false); } bool result = true; var characterDetails = m_project.AllCharacterDetailDictionary; result &= CharacterIds.All(i => { CharacterGender gender = characterDetails[i].Gender; return(genderMatchingOptions.Matches(character.Gender, gender)); }); result &= CharacterIds.All(i => { CharacterAge age = characterDetails[i].Age; return(ageMatchingOptions.Matches(character.Age, age)); }); return(result); }
public bool ContainsOnlyCharactersWithAge(CharacterAge age) { var characterDetails = m_project.AllCharacterDetailDictionary; return(CharacterIds.All(c => { if (CharacterVerseData.IsCharacterStandard(c)) { return age == CharacterAge.Adult; } CharacterDetail characterDetail; if (!characterDetails.TryGetValue(c, out characterDetail)) { return false; } return characterDetail.Age == age; })); }
private static void Transition(CharacterAge previousAge, CharacterAge newAge) { UpdatePlayer(previousAge); }
public static void UpdatePlayer(CharacterAge previousAge) { playerCharacter.ChangeAge(GetCurrentAge(), previousAge); }
private void ChangeHitBox(CharacterAge newAge, CharacterAge previousAge) { CharacterController charControl = GetComponent<CharacterController>(); charControl.radius = newAge.capsule.radius; charControl.height = newAge.capsule.height; charControl.center = newAge.capsule.center; if(previousAge.stateName == CharacterAgeState.YOUNG){ if(newAge.stateName == CharacterAgeState.MIDDLE || newAge.stateName == CharacterAgeState.OLD){ transform.position = new Vector3(transform.position.x, transform.position.y + newAge.capsule.height/2, + transform.position.z); } } }
public void AddCharacterDetailToProject(string characterId, CharacterGender gender, CharacterAge age) { var detail = new CharacterDetail { CharacterId = characterId, Gender = gender, Age = age, MaxSpeakers = 1 }; m_project.AddProjectCharacterDetail(detail); m_project.SaveProjectCharacterDetailData(); }