public override void HourlyCallback() { if (GameUtils.IsOnVacation() || GameUtils.IsUniversityWorld()) { Common.DebugNotify(mMom.FullName + Common.NewLine + "RobotPregnancy.HourlyCallback" + Common.NewLine + " - Pregnancy Paused"); return; } mHourOfPregnancy++; string msg = mMom.FullName + Common.NewLine + "RobotPregnancy.HourlyCallback" + Common.NewLine + " - Hour: " + mHourOfPregnancy + Common.NewLine; if (mMom.Household.IsTouristHousehold) { msg += " - Foreign Sim" + Common.NewLine; ForeignVisitorsSituation foreignVisitorsSituation = ForeignVisitorsSituation.TryGetForeignVisitorsSituation(mMom); if (mHourOfPregnancy == Woohooer.Settings.mForeignRobotDisplayTNS && foreignVisitorsSituation != null) { StyledNotification.Show(new StyledNotification.Format(Localization.LocalizeString("Gameplay/ActorSystems/Pregnancy:ForeignBabyIsComingTNS", new object[] { mMom }), StyledNotification.NotificationStyle.kGameMessagePositive), "glb_tns_baby_coming_r2"); } if (mHourOfPregnancy == Woohooer.Settings.mForeignRobotLeavesWorld) { if (foreignVisitorsSituation != null) { foreignVisitorsSituation.MakeGuestGoHome(mMom); } else if (mMom.SimDescription.AssignedRole != null) { mMom.SimDescription.AssignedRole.RemoveSimFromRole(); } } if (mHourOfPregnancy > Woohooer.Settings.mForeignRobotLeavesWorld) { Common.DebugNotify(msg); mHourOfPregnancy--; return; } } if (mHourOfPregnancy >= Woohooer.Settings.mRobotHourToStartWalkingPregnant) { ActiveTopic.AddToSim(mMom, "Pregnant", mMom.SimDescription); RequestPregnantWalkStyle(); } if (mHourOfPregnancy == Woohooer.Settings.mRobotHoursOfPregnancy) { msg += " - Having the Baby"; HaveTheBaby(); } Common.DebugNotify(msg); }
public override void HourlyCallback() { if (GameUtils.IsOnVacation() || GameUtils.IsUniversityWorld()) { Common.DebugNotify("AlienPregnancy.HourlyCallback - Pregnancy paused"); return; } mHourOfPregnancy++; string msg = mMom.FullName + Common.NewLine + "AlienPregnancy.HourlyCallback" + Common.NewLine + " - Hour: " + mHourOfPregnancy + Common.NewLine; if (mHourOfPregnancy == Aliens.Settings.mPregnancyShow) { msg += " - Showing Pregnancy"; InteractionInstance instance = ShowAlienPregnancy.Singleton.CreateInstance(mMom, mMom, new InteractionPriority(InteractionPriorityLevel.ESRB), false, false); instance.Hidden = true; mMom.InteractionQueue.AddNext(instance); Common.DebugNotify(msg); return; } if (mMom.Household.IsTouristHousehold) { msg += " - Mother is Tourist" + Common.NewLine; ForeignVisitorsSituation situation = ForeignVisitorsSituation.TryGetForeignVisitorsSituation(mMom); if (mHourOfPregnancy == Aliens.Settings.mForeignShowTNS && situation != null) { StyledNotification.Show(new StyledNotification.Format( Localization.LocalizeString("Gameplay/ActorSystems/Pregnancy:ForeignBabyIsComingTNS", new object[] { mMom }), StyledNotification.NotificationStyle.kGameMessagePositive)); } if (mHourOfPregnancy == Aliens.Settings.mForeignLeaves) { msg += " - Sending Pregnant Tourist Home"; if (situation != null) { situation.MakeGuestGoHome(mMom); } else if (mMom.SimDescription.AssignedRole != null) { mMom.SimDescription.AssignedRole.RemoveSimFromRole(); } Common.DebugNotify(msg); } if (mHourOfPregnancy > Aliens.Settings.mForeignLeaves) { msg += " - Walking Back 1 Hour"; mHourOfPregnancy--; Common.DebugNotify(msg); return; } } if (mHourOfPregnancy >= Aliens.Settings.mStartWalk) { ActiveTopic.AddToSim(mMom, "Pregnant", mMom.SimDescription); RequestPregnantWalkStyle(); } if (mHourOfPregnancy == Aliens.Settings.mStartLabor) { msg += " - Beginning Labor" + Common.NewLine; for (int i = 0; i < Aliens.Settings.mNumPuddles; i++) { PuddleManager.AddPuddle(mMom.PositionOnFloor); } if (mMom.IsSelectable) { StyledNotification.Show(new StyledNotification.Format(Localization.LocalizeString("Gameplay/ActorSystems/Pregnancy:BabyIsComingTNS", new object[] { mMom }), StyledNotification.NotificationStyle.kGameMessageNegative), "glb_tns_baby_coming_r2"); } mMom.BuffManager.RemoveElement(BuffsAndTraits.sXenogenesis); mMom.BuffManager.AddElement(BuffsAndTraits.sAlienBabyIsComing, Origin.FromPregnancy); if (mContractionBroadcast != null) { mContractionBroadcast.Dispose(); } mContractionBroadcast = new ReactionBroadcaster(mMom, kContractionBroadcasterParams, new ReactionBroadcaster.BroadcastCallback(StartReaction), new ReactionBroadcaster.BroadcastCallback(CancelReaction)); mMom.AddInteraction(TakeToHospitalEx.Singleton); InteractionInstance entry = HaveContraction.Singleton.CreateInstance(mMom, mMom, new InteractionPriority(InteractionPriorityLevel.High, 10f), false, false); mMom.InteractionQueue.Add(entry); mContractionsAlarm = mMom.AddAlarmRepeating(5f, TimeUnit.Minutes, new AlarmTimerCallback(TriggerContraction), 5f, TimeUnit.Minutes, "Trigger Contractions Alarm", AlarmType.AlwaysPersisted); EventTracker.SendEvent(EventTypeId.kPregnancyContractionsStarted, mMom); } if (mHourOfPregnancy >= Aliens.Settings.mPregnancyDuration) { msg += " - Delivering Baby" + Common.NewLine; HaveTheBaby(); } SetPregoBlendShape(); Common.DebugNotify(msg); }
public override void HourlyCallback() { if (GameUtils.IsOnVacation() || GameUtils.IsUniversityWorld()) { Common.DebugNotify(mMom.FullName + Common.NewLine + "HumanSurrogatePregnancy.HourlyCallback" + Common.NewLine + " - Pregnancy Paused"); return; } mHourOfPregnancy++; string msg = mMom.FullName + Common.NewLine + "HumanSurrogatePregnancy.HourlyCallback" + Common.NewLine + " - Hour: " + mHourOfPregnancy + Common.NewLine; if (mHourOfPregnancy == kHourToStartPregnantMotives) { mMom.BuffManager.AddElement(BuffNames.Nauseous, Origin.FromUnknown); } if (mHourOfPregnancy < kHourToShowPregnantBuff && mHourOfPregnancy > kHourToStartPregnantMotives) { mMom.BuffManager.AddElement(BuffNames.Nauseous, Origin.FromUnknown); } if (mMom.Household.IsTouristHousehold) { msg += " - Foreign Sim" + Common.NewLine; ForeignVisitorsSituation foreignVisitorsSituation = ForeignVisitorsSituation.TryGetForeignVisitorsSituation(mMom); if (mHourOfPregnancy == kForeignSimDisplaysTNS && foreignVisitorsSituation != null) { StyledNotification.Show(new StyledNotification.Format(Localization.LocalizeString("Gameplay/ActorSystems/Pregnancy:ForeignBabyIsComingTNS", new object[] { mMom }), StyledNotification.NotificationStyle.kGameMessagePositive), "glb_tns_baby_coming_r2"); } if (mHourOfPregnancy == kForeignSimLeavesWorld) { if (foreignVisitorsSituation != null) { foreignVisitorsSituation.MakeGuestGoHome(mMom); } else if (mMom.SimDescription.AssignedRole != null) { mMom.SimDescription.AssignedRole.RemoveSimFromRole(); } } if (mHourOfPregnancy > kForeignSimLeavesWorld) { Common.DebugNotify(msg); mHourOfPregnancy--; return; } } if (mHourOfPregnancy == kHourToShowPregnantBuff) { msg += " - Adding Pregnant Buff" + Common.NewLine; Common.DebugNotify(msg); InteractionInstance interactionInstance = ShowPregnancyEx.Singleton.CreateInstance(mMom, mMom, new InteractionPriority(InteractionPriorityLevel.ESRB), false, false); interactionInstance.Hidden = true; mMom.InteractionQueue.AddNext(interactionInstance); return; } if (mHourOfPregnancy >= kHourToStartWalkingPregnant) { ActiveTopic.AddToSim(mMom, "Pregnant", mMom.SimDescription); RequestPregnantWalkStyle(); } if (mHourOfPregnancy == kHourToStartContractions) { msg += " - Starting Labor" + Common.NewLine; for (int i = 0; i < kNumberOfPuddlesForWaterBreak; i++) { PuddleManager.AddPuddle(mMom.PositionOnFloor); } if (mMom.IsSelectable) { StyledNotification.Show(new StyledNotification.Format(Localization.LocalizeString("Gameplay/ActorSystems/Pregnancy:BabyIsComingTNS", new object[] { mMom }), StyledNotification.NotificationStyle.kGameMessageNegative), "glb_tns_baby_coming_r2"); } mMom.BuffManager.RemoveElement(BuffNames.Pregnant); mMom.BuffManager.AddElement(BuffNames.BabyIsComing, Origin.FromPregnancy); if (mContractionBroadcast != null) { mContractionBroadcast.Dispose(); } mContractionBroadcast = new ReactionBroadcaster(mMom, kContractionBroadcasterParams, new ReactionBroadcaster.BroadcastCallback(StartReaction), new ReactionBroadcaster.BroadcastCallback(CancelReaction)); mMom.AddInteraction(TakeToHospital.Singleton); InteractionInstance entry = HaveContraction.Singleton.CreateInstance(mMom, mMom, new InteractionPriority(InteractionPriorityLevel.High, 10f), false, false); mMom.InteractionQueue.Add(entry); mContractionsAlarm = mMom.AddAlarmRepeating(5f, TimeUnit.Minutes, new AlarmTimerCallback(TriggerContraction), 5f, TimeUnit.Minutes, "Trigger Contractions Alarm", AlarmType.AlwaysPersisted); EventTracker.SendEvent(EventTypeId.kPregnancyContractionsStarted, mMom); } if (mHourOfPregnancy == kHoursOfPregnancy) { msg += " - Having the Baby"; HaveTheBaby(); } SetPregoBlendShape(); Common.DebugNotify(msg); }