private static void RunPostWhoohooInternal(Sim actor, Sim target, IGameObject obj, bool fireDisgraceEvents) { SimDescription actorSim = actor.SimDescription; if (!actorSim.HadFirstWooHoo) { actorSim.SetFirstWooHoo(); EventTracker.SendEvent(EventTypeId.kHadFirstWoohoo, actor, target); } Woohooer.Settings.mLastWoohoo[actorSim.SimDescriptionId] = SimClock.CurrentTime(); SimDescription targetSim = target.SimDescription; if (!targetSim.HadFirstWooHoo) { targetSim.SetFirstWooHoo(); EventTracker.SendEvent(EventTypeId.kHadFirstWoohoo, target, actor); } Woohooer.Settings.mLastWoohoo[targetSim.SimDescriptionId] = SimClock.CurrentTime(); Relationship relationship = Relationship.Get(actor, target, true); if (relationship != null) { relationship.LTR.AddInteractionBit(LongTermRelationship.InteractionBits.Kissed); relationship.LTR.AddInteractionBit(LongTermRelationship.InteractionBits.WooHoo); } if ((obj != null) && (obj.LotCurrent.LotType == LotType.Commercial)) { actor.BuffManager.AddElement(BuffNames.PublicWooHoo, Origin.FromWooHooInPublic); target.BuffManager.AddElement(BuffNames.PublicWooHoo, Origin.FromWooHooInPublic); } if (actor.IsHuman) { if (fireDisgraceEvents) { CommonWoohoo.CheckForWitnessedCheating(actor, target, true); } actor.SimDescription.SetFirstKiss(target.SimDescription); target.SimDescription.SetFirstKiss(actor.SimDescription); if (fireDisgraceEvents) { CommonWoohoo.WoohooDisgraceChecks(actor, target); } if ((actor.Household != target.Household) && !Relationship.AreFianceeOrSpouse(actor, target)) { if (Woohooer.Settings.mAllowStrideOfPride) { actor.BuffManager.AddElement(BuffNames.StrideOfPride, Origin.FromWooHooOffHome); target.BuffManager.AddElement(BuffNames.StrideOfPride, Origin.FromWooHooOffHome); } } SocialCallback.AddIncredibleTimeBuffIfNecessary(actor, target); SocialCallback.AddIncredibleTimeBuffIfNecessary(target, actor); } else { EventTracker.SendEvent(EventTypeId.kPetWooHooed, actor, target); EventTracker.SendEvent(EventTypeId.kPetWooHooed, target, actor); if (((actor.Partner == null) && (target.Partner == null)) || (Woohooer.Settings.mForcePetMate[PersistedSettings.GetSpeciesIndex(actor)])) { Relationship.RemoveAllPetMateFlags(actor); Relationship.RemoveAllPetMateFlags(target); Relationship.Get(actor, target, false).LTR.AddInteractionBit(LongTermRelationship.InteractionBits.Marry); } } }