public static int CalculateHouseholdFamilyScore(FutureDescendantService.FutureDescendantHouseholdInfo ths, Common.StringBuilder results) { results.Append(Common.NewLine + "CalculateHouseholdFamilyScore"); int householdSizeTraitScore = 0x0; foreach (ulong num2 in ths.mProgenitorSimIds) { IMiniSimDescription iMiniSimDescription = SimDescription.GetIMiniSimDescription(num2); if (iMiniSimDescription == null) continue; results.Append(Common.NewLine + " Progenitor: " + iMiniSimDescription.FullName); MiniSimDescription miniSim = iMiniSimDescription as MiniSimDescription; SimDescription fullSim = iMiniSimDescription as SimDescription; if (fullSim != null) { foreach (Trait trait in fullSim.TraitManager.List) { results.Append(Common.NewLine + " " + trait.TraitName(fullSim.IsFemale) + " : " + trait.DescendantFamilySizeModifier); householdSizeTraitScore += trait.DescendantFamilySizeModifier; } } else if (miniSim != null) { foreach (TraitNames names in miniSim.Traits) { Trait traitFromDictionary = TraitManager.GetTraitFromDictionary(names); results.Append(Common.NewLine + " " + traitFromDictionary.TraitName(miniSim.IsFemale) + " : " + traitFromDictionary.DescendantFamilySizeModifier); householdSizeTraitScore += traitFromDictionary.DescendantFamilySizeModifier; } } } results.Append(Common.NewLine + " Score : " + householdSizeTraitScore); int result = FutureDescendantService.CalculateDesiredHouseholdSize(householdSizeTraitScore); results.Append(Common.NewLine + " Result : " + result); return result; }