private new void SpawnOffspring() { Pregnancy pregnancy = Actor.SimDescription.Pregnancy; Sim dad = pregnancy.Dad; bool isSelectable = Actor.IsSelectable; if (isSelectable) { PlumbBob.SelectActor(Actor); Camera.LerpParams kShowPetPregnancyCameraLerp = PetPregnancy.kShowPetPregnancyCameraLerp; Camera.FocusOnSim(Actor, kShowPetPregnancyCameraLerp.Zoom, kShowPetPregnancyCameraLerp.Pitch, kShowPetPregnancyCameraLerp.Time, true, false); BuffNames newKittensHuman = BuffNames.NewKittensHuman; Origin fromNewLitter = Origin.FromNewLitter; if (Actor.IsHorse) { newKittensHuman = BuffNames.NewFoalHuman; fromNewLitter = Origin.FromNewFoal; } else if (Actor.IsADogSpecies) { newKittensHuman = BuffNames.NewPuppiesHuman; } PetPregnancy.ReactToPetBirthHelper helper = new PetPregnancy.ReactToPetBirthHelper(newKittensHuman, fromNewLitter, Actor.Household.HouseholdId); new Sim.Celebrate.Event(Actor, null, PetPregnancy.kHadLitterCelebrationWitnessTuning, PetPregnancy.kHadLitterCelebrationBroadcasterParams, null, new Callback(helper.OnLitterCelebrationStarted)); Audio.StartObjectSound(Actor.ObjectId, "sting_pet_baby_born", false); } else { try { Simulator.YieldingDisabled = true; // Custom HaveBabyHomeEx.EnsureForeignFather(pregnancy); // Custom mOffspring = new Proxies.PetPregnancyProxy(pregnancy).CreateNewborns(0f, isSelectable, true); } finally { Simulator.YieldingDisabled = false; } } Actor.SimDescription.SetPetPregnant(false); string effectName = "ep5birthfoalconfetti"; int count = mOffspring.Count; if (Actor.IsCat) { if (count == 0x1) { Actor.ShowTNSIfSelectable(TNSNames.PetPregnancyCatSingleKittenTNS, null, Actor, new object[] { Actor }); } else { Actor.ShowTNSIfSelectable(TNSNames.PetPregnancyCatHadLitterTNS, null, Actor, new object[] { Actor, count }); } effectName = "ep5birthkittenconfetti"; } else if (Actor.IsADogSpecies) { if (count == 0x1) { Actor.ShowTNSIfSelectable(TNSNames.PetPregnancyDogSinglePuppyTNS, null, Actor, new object[] { Actor }); } else { Actor.ShowTNSIfSelectable(TNSNames.PetPregnancyDogHadLitterTNS, null, Actor, new object[] { Actor, count }); } effectName = "ep5birthpuppyconfetti"; } foreach (Sim sim2 in mOffspring) { Relationship.Get(Actor, sim2, true).LTR.UpdateLiking(RandomUtil.GetFloat(kInitialChildParentRelLikingRange[0x0], kInitialChildParentRelLikingRange[0x1])); if (dad != null) { Relationship relationship2 = Relationship.Get(dad, sim2, true); if (relationship2 != null) { relationship2.LTR.UpdateLiking(RandomUtil.GetFloat(kInitialChildParentRelLikingRange[0x0], kInitialChildParentRelLikingRange[0x1])); } } if (isSelectable) { sim2.SimDescription.IsNeverSelectable = false; } Pregnancy.MakeBabyVisible(sim2); VisualEffect effect = VisualEffect.Create(effectName); effect.SetPosAndOrient(Slots.GetPositionOfSlot(sim2.ObjectId, (uint)Sim.FXJoints.Spine0), -sim2.ForwardVector, Slots.GetUpOfSlot(sim2.ObjectId, Sim.FXJoints.Spine0)); effect.SubmitOneShotEffect(VisualEffect.TransitionType.SoftTransition); } }