public static int ChildAge(RootPerson parent1, Person parent2, int remainingChildren) { if (remainingTwins > 0) { remainingTwins--; return(prevAge); } else { Person baseParent = GenerationHelpers.GetBaseParent(parent1, parent2); int maxAge = Mathf.Min(22, baseParent.age - 18, prevAge - 1); int minAge = Mathf.Max(0, remainingChildren); int age = Random.Range(minAge, maxAge + 1); if (remainingChildren > 0) { float det = Random.Range(0.0f, 1.0f); if (det <= 0.05f || baseParent.age == 18) { remainingTwins = 1; } else if (det <= 0.06f) { remainingTwins = 2; } } prevAge = age; return(age); } }
public static EyeColor ChildEyeColor(RootPerson root) { float det = Random.Range(0.0f, 1.0f); if (det <= 0.5f) { return(root.eyeColor); } else { det = Random.Range(0.0f, 1.0f); switch (root.eyeColor) { case EyeColor.brown: if (det <= 2.0f / 3.0f) { return(EyeColor.brown); } else if (det <= 5.0f / 6.0f) { return(EyeColor.blue); } else { return(EyeColor.green); } case EyeColor.blue: if (det <= 1.0f / 6.0f) { return(EyeColor.brown); } else if (det <= 5.0f / 6.0f) { return(EyeColor.blue); } else { return(EyeColor.green); } case EyeColor.green: if (det <= 1.0f / 6.0f) { return(EyeColor.brown); } else if (det <= 1.0f / 3.0f) { return(EyeColor.blue); } else { return(EyeColor.green); } } return(EyeColor.brown); } }
public static int ChildAge(RootPerson root, int remainingChildren) { if (remainingTwins > 0) { remainingTwins--; return(prevAge); } else { int maxAge = Mathf.Min(22, root.age - 18, prevAge - 1); int minAge = Mathf.Max(0, remainingChildren); int age = Random.Range(minAge, maxAge + 1); if (remainingChildren > 0) { float det = Random.Range(0.0f, 1.0f); if (det <= 0.05f || root.age == 18) { remainingTwins = 1; } else if (det <= 0.06f) { remainingTwins = 2; } } prevAge = age; return(age); } }
public List <Person> FindPeople([FromBody] Person person) { RootPerson personList = dl.GetDummyPersonData(); List <Person> peoplelist = personList.persons.Where(r => (r.FirstName == person.FirstName) || (r.LastName == person.LastName)).ToList(); return(peoplelist); }
private void GenPartner(RootPerson root) { gender = Generators.PartnerGender(root); ageGroup = Generators.PartnerAgeGroup(root); age = Generators.Age(ageGroup); skinColor = Generators.PartnerSkinColor(root); hairColor = Generators.RootHairColor(skinColor); eyeColor = Generators.RootEyeColor(skinColor); }
public Person(PersonType type, RootPerson parent1, Person parent2, int remainingChildren) { if (type == PersonType.child) { personType = type; GenChild(parent1, parent2, remainingChildren); } else { Debug.LogError("Used child constructor for non-child"); } }
public static SkinColor PartnerSkinColor(RootPerson root) { float det = Random.Range(0.0f, 1.0f); if (det <= 0.5f) { return(root.skinColor); } else { return(RootSkinColor()); } }
public static Gender ChildGender(RootPerson parent1, Person parent2) { if (GenerationHelpers.GenderTypeMatch(parent1, parent2)) { return(ChildGender(parent1)); } else { float det = Random.Range(0.0f, 1.0f); if (GenerationHelpers.IsNB(parent1) || GenerationHelpers.IsNB(parent2)) { if (det <= 0.35f) { return(Gender.cisMale); } else if (det <= 0.7f) { return(Gender.cisFemale); } else if (det <= 0.85f) { return(Gender.dmabNonBinary); } else { return(Gender.dfabNonBinary); } } else { if (det <= 0.45f) { return(Gender.cisMale); } else if (det <= 0.9f) { return(Gender.cisFemale); } else if (det <= 0.95f) { return(Gender.dmabNonBinary); } else { return(Gender.dfabNonBinary); } } } }
private void GenChild(RootPerson parent1, Person parent2, int remainingChildren) { gender = Generators.ChildGender(parent1, parent2); age = Generators.ChildAge(parent1, parent2, remainingChildren); float det = Random.Range(0.0f, 1.0f); if (GenerationHelpers.SABMatch(parent1, parent2) || det <= 0.1f) { skinColor = Generators.RootSkinColor(); hairColor = Generators.RootHairColor(skinColor); eyeColor = Generators.RootEyeColor(skinColor); } else { } }
private void GenChild(RootPerson root, int remainingChildren) { gender = Generators.ChildGender(root); age = Generators.ChildAge(root, remainingChildren); float det = Random.Range(0.0f, 1.0f); if (det <= 2.0f / 3.0f) { skinColor = Generators.ChildSkinColor(root); hairColor = Generators.ChildHairColor(root); eyeColor = Generators.ChildEyeColor(root); } else { skinColor = Generators.RootSkinColor(); hairColor = Generators.RootHairColor(skinColor); eyeColor = Generators.RootEyeColor(skinColor); } }
public Person(PersonType type, RootPerson root) { personType = type; switch (type) { case PersonType.partner: GenPartner(root); break; case PersonType.roommate: GenRoommate(root); break; case PersonType.child: Debug.LogError("Used non-child constructor to initialize child"); break; default: Debug.LogError("Invalid person type"); break; } }
public Household() { root = new RootPerson(); otherMembers = new List <Person>(); if (root.relationship != Relationship.single) { otherMembers.Add(new Person(PersonType.partner, root)); } int numChildren = NumChildren(); for (int i = 0; i < numChildren; i++) { if (root.relationship == Relationship.single) { otherMembers.Add(new Person(PersonType.child, root, numChildren - i - 1)); } else { otherMembers.Add(new Person(PersonType.child, root, otherMembers[0], numChildren - i - 1)); } } }
public static Gender ChildGender(RootPerson root) { float det = Random.Range(0.0f, 1.0f); switch (root.gender) { case Gender.cisMale: case Gender.cisFemale: if (det <= 0.49f) { return(Gender.cisMale); } else if (det <= 0.98f) { return(Gender.cisFemale); } else if (det <= 0.99f) { return(Gender.dmabNonBinary); } else { return(Gender.dfabNonBinary); } case Gender.transMale: case Gender.transFemale: if (det <= 0.4f) { return(Gender.cisMale); } else if (det <= 0.8f) { return(Gender.cisFemale); } else if (det <= 0.9f) { return(Gender.dmabNonBinary); } else { return(Gender.dfabNonBinary); } case Gender.dmabNonBinary: case Gender.dfabNonBinary: if (det <= 0.25f) { return(Gender.cisMale); } else if (det <= 0.5f) { return(Gender.cisFemale); } else if (det <= 0.75f) { return(Gender.dmabNonBinary); } else { return(Gender.dfabNonBinary); } } return(Gender.cisMale); }
public static HairColor ChildHairColor(RootPerson root) { float det = Random.Range(0.0f, 1.0f); if (det <= 0.5f) { return(root.hairColor); } else { det = Random.Range(0.0f, 1.0f); switch (root.hairColor) { case HairColor.black: if (det <= 0.5f) { return(HairColor.black); } else if (det <= 0.875f) { return(HairColor.brown); } else if (det <= 0.9375f) { return(HairColor.blonde); } else { return(HairColor.red); } case HairColor.brown: if (det <= 0.125f) { return(HairColor.black); } else if (det <= 0.75f) { return(HairColor.brown); } else if (det <= 0.875f) { return(HairColor.blonde); } else { return(HairColor.red); } case HairColor.blonde: if (det <= 0.0625f) { return(HairColor.black); } else if (det <= 0.3125f) { return(HairColor.brown); } else if (det <= 0.875f) { return(HairColor.blonde); } else { return(HairColor.red); } case HairColor.red: if (det <= 0.0625f) { return(HairColor.black); } else if (det <= 0.3125f) { return(HairColor.brown); } else if (det <= 0.4375f) { return(HairColor.blonde); } else { return(HairColor.red); } } return(HairColor.black); } }
public static SkinColor ChildSkinColor(RootPerson root) { float det = Random.Range(0.0f, 1.0f); if (det <= 0.5f) { return(root.skinColor); } else { det = Random.Range(0.0f, 1.0f); switch (root.skinColor) { case SkinColor.black: if (det <= 0.5f) { return(SkinColor.black); } else { return(SkinColor.brown); } case SkinColor.brown: if (det <= 0.25f) { return(SkinColor.black); } else { return(SkinColor.brown); } case SkinColor.yellow: if (det <= 0.5f) { return(SkinColor.brown); } else { return(SkinColor.yellow); } case SkinColor.white: if (det <= 0.5f) { return(SkinColor.brown); } else if (det <= 0.75f) { return(SkinColor.yellow); } else { return(SkinColor.white); } } return(SkinColor.brown); } }
public static AgeGroup PartnerAgeGroup(RootPerson root) { float det = Random.Range(0.0f, 1.0f); if (root.wealth == Wealth.wealthy) { switch (root.ageGroup) { case AgeGroup.youngAdult: if (det <= 0.5f) { return(AgeGroup.youngAdult); } else if (det <= 0.99f) { return(AgeGroup.adult); } else { return(AgeGroup.middleAged); } case AgeGroup.adult: if (det <= 0.45f) { return(AgeGroup.youngAdult); } else if (det <= 0.9f) { return(AgeGroup.adult); } else { return(AgeGroup.middleAged); } case AgeGroup.middleAged: if (det <= 0.45f) { return(AgeGroup.youngAdult); } else if (det <= 0.7f) { return(AgeGroup.adult); } else { return(AgeGroup.middleAged); } case AgeGroup.senior: if (det <= 0.4f) { return(AgeGroup.youngAdult); } else if (det <= 0.65f) { return(AgeGroup.adult); } else if (det <= 0.7f) { return(AgeGroup.middleAged); } else { return(AgeGroup.senior); } } } else { if (det <= 0.5f) { return(root.ageGroup); } else if (det <= 0.99f) { switch (root.ageGroup) { case AgeGroup.youngAdult: return(AgeGroup.adult); case AgeGroup.adult: det = Random.Range(0.0f, 1.0f); if (det <= 0.5f) { return(AgeGroup.youngAdult); } else { return(AgeGroup.middleAged); } case AgeGroup.middleAged: det = Random.Range(0.0f, 1.0f); if (det <= 0.5f) { return(AgeGroup.adult); } else { return(AgeGroup.senior); } case AgeGroup.senior: return(AgeGroup.middleAged); } } else { switch (root.ageGroup) { case AgeGroup.youngAdult: return(AgeGroup.middleAged); case AgeGroup.adult: return(AgeGroup.senior); case AgeGroup.middleAged: return(AgeGroup.youngAdult); case AgeGroup.senior: return(AgeGroup.adult); } } } return(root.ageGroup); }
public static Gender PartnerGender(RootPerson root) { float det = Random.Range(0.0f, 1.0f); switch (root.sexuality) { case Sexuality.straight: switch (root.gender) { case Gender.cisMale: if (det <= 0.98f) { return(Gender.cisFemale); } else { return(Gender.transFemale); } case Gender.cisFemale: if (det <= 0.98f) { return(Gender.cisMale); } else { return(Gender.transMale); } case Gender.transMale: if (det <= 0.9f) { return(Gender.cisFemale); } else { return(Gender.transFemale); } case Gender.transFemale: if (det <= 0.9f) { return(Gender.cisMale); } else { return(Gender.transMale); } } break; case Sexuality.gay: switch (root.gender) { case Gender.cisMale: if (det <= 0.95f) { return(Gender.cisMale); } else { return(Gender.transMale); } case Gender.cisFemale: if (det <= 0.95f) { return(Gender.cisFemale); } else { return(Gender.transFemale); } case Gender.transMale: if (det <= 0.95f) { return(Gender.cisMale); } else { return(Gender.transMale); } case Gender.transFemale: if (det <= 0.95f) { return(Gender.cisFemale); } else { return(Gender.transFemale); } } break; case Sexuality.bi: if (det <= 0.47f) { return(Gender.cisMale); } else if (det <= 0.5f) { return(Gender.transMale); } else if (det <= 0.97f) { return(Gender.cisFemale); } else { return(Gender.transFemale); } case Sexuality.pan: if (det <= 0.15f) { return(Gender.cisMale); } else if (det <= 0.3f) { return(Gender.cisFemale); } else if (det <= 0.45f) { return(Gender.transMale); } else if (det <= 0.6f) { return(Gender.transFemale); } else if (det <= 0.8f) { return(Gender.dmabNonBinary); } else { return(Gender.dfabNonBinary); } } return(Gender.dfabNonBinary); }