protected override bool Run(SimDescription me, bool singleSelection) { List <SimTrait.Item> allOptions = new List <SimTrait.Item>(); foreach (Sims3.Gameplay.ActorSystems.Trait trait in TraitManager.GetDictionaryTraits) { if (trait.IsReward) { continue; } if (!trait.TraitValidForAgeSpecies(me.GetCASAGSAvailabilityFlags())) { continue; } int count = 0; if (me.TraitManager.mSocialGroupTraitGuid == trait.Guid) { count = 1; } else if (me.HasTrait(trait.Guid)) { continue; } allOptions.Add(new SimTrait.Item(trait.Guid, count)); } SimTrait.Item selection = new CommonSelection <SimTrait.Item>(Name, me.FullName, allOptions, new SimTrait.AuxillaryColumn()).SelectSingle(); if (selection == null) { return(false); } TraitNames traitName = selection.Value; me.RemoveSocialGroupTrait(); if (traitName != me.TraitManager.mSocialGroupTraitGuid) { Sims3.Gameplay.ActorSystems.Trait selTrait = TraitManager.GetTraitFromDictionary(traitName); if (selTrait != null) { me.TraitManager.mSocialGroupTraitEnabled = true; me.AddSocialGroupTrait(selTrait); } } if ((me.CreatedSim != null) && (me.CreatedSim.SocialComponent != null)) { me.CreatedSim.SocialComponent.UpdateTraits(); } return(true); }