public void OnWorldLoadFinished() { try { Managers.ManagerCareer.RetiredLocation = null; Career staticCareer = CareerManager.GetStaticCareer(CareerGuid); if (staticCareer == null) { return; } foreach (RabbitHole hole in RabbitHole.GetRabbitHolesOfType(RabbitHoleType.CityHall)) { CareerLocation location = new CareerLocation(hole, staticCareer); if (!hole.CareerLocations.ContainsKey((ulong)staticCareer.Guid)) { hole.CareerLocations.Add((ulong)staticCareer.Guid, location); if (location.Career != null) { Managers.ManagerCareer.RetiredLocation = location; } } } } catch (Exception exception) { Common.Exception("Retired WorldLoadFinished", exception); } }
public static void OnWorldLoadFinished(object sender, EventArgs evtArgs) { kDebugging = Settings.mDebugging; foreach (Sim sim in Sims3.Gameplay.Queries.GetObjects <Sim>()) { DebugInduceAlienPregnancy.AddInteraction(sim); ReturnAlienBabyEx.AddInteraction(sim); } /* * foreach (CarUFO ufo in Sims3.Gameplay.Queries.GetObjects<CarUFO>()) * { * AbductSimAEx.AddInteraction(ufo); * } */ foreach (Lot lot in Sims3.Gameplay.Queries.GetObjects <Lot>()) { DebugTriggerAbduction.AddInteraction(lot); HaveAlienBabyHome.AddInteraction(lot); } foreach (RabbitHole hospital in RabbitHole.GetRabbitHolesOfType(RabbitHoleType.Hospital)) { HaveAlienBabyHospital.AddInteraction(hospital); } EventTracker.AddListener(EventTypeId.kChildBornOrAdopted, new ProcessEventDelegate(OnNewBaby)); EventTracker.AddListener(EventTypeId.kBoughtObject, new ProcessEventDelegate(OnObjectChanged)); EventTracker.AddListener(EventTypeId.kBoughtObjectInEditTownMode, new ProcessEventDelegate(OnObjectChanged)); EventTracker.AddListener(EventTypeId.kInventoryObjectAdded, new ProcessEventDelegate(OnObjectChanged)); EventTracker.AddListener(EventTypeId.kObjectStateChanged, new ProcessEventDelegate(OnObjectChanged)); }
public void HaveTheBaby() { if (Pregnancy.mContractionBroadcast != null) { Pregnancy.mContractionBroadcast.Dispose(); } Abductee.RemoveAlarm(Pregnancy.PreggersAlarm); Abductee.RemoveAlarm(Pregnancy.mContractionsAlarm); bool flag = false; foreach (InteractionInstance current in Abductee.InteractionQueue.InteractionList) { HaveAlienBabyHospital haveBabyHospital = current as HaveAlienBabyHospital; if (haveBabyHospital != null) { haveBabyHospital.CancellableByPlayer = false; haveBabyHospital.BabyShouldBeBorn = true; flag = true; break; } } if (!flag) { List <RabbitHole> hospitals = RabbitHole.GetRabbitHolesOfType(RabbitHoleType.Hospital); float distanceToBirthplace = Abductee.LotHome.GetDistanceToObject(Abductee); RabbitHole hospital = null; foreach (RabbitHole current in hospitals) { float distanceToHospital = current.RabbitHoleProxy.GetDistanceToObject(Abductee); if (distanceToHospital < distanceToBirthplace) { distanceToBirthplace = distanceToHospital; hospital = current; } } InteractionInstance instance; if (hospital != null) { instance = HaveAlienBabyHospital.Singleton.CreateInstance(hospital, Abductee, new InteractionPriority(InteractionPriorityLevel.Pregnancy), false, false); (instance as HaveAlienBabyHospital).BabyShouldBeBorn = true; } else { instance = HaveAlienBabyHome.Singleton.CreateInstance(Abductee.LotHome, Abductee, new InteractionPriority(InteractionPriorityLevel.Pregnancy), false, false); } Abductee.InteractionQueue.Add(instance); ActiveTopic.AddToSim(Abductee, "Recently Had Baby"); } }
public override bool Test(Sim actor, Sim target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback) { if (RabbitHole.GetRabbitHolesOfType(RabbitHoleType.Hospital).Count <= 0) { return(false); } return(target.BuffManager.HasElement(BuffsAndTraits.sAlienBabyIsComing)); }
public void OnWorldLoadFinished() { foreach (CareerBooterElement element in sCareers) { Career staticCareer = CareerManager.GetStaticCareer(element.mCareer); if (staticCareer == null) { continue; } string lotDesignator = null; ILotDesignator lotDesignatorClass = staticCareer as ILotDesignator; if (lotDesignatorClass != null) { lotDesignator = lotDesignatorClass.LotDesignator; } foreach (RabbitHole hole in RabbitHole.GetRabbitHolesOfType(element.mType)) { if (!string.IsNullOrEmpty(lotDesignator)) { if (hole.LotCurrent == null) { continue; } if (!hole.LotCurrent.Name.Contains(lotDesignator)) { continue; } } CareerLocation location = new CareerLocation(hole, staticCareer); if (!hole.CareerLocations.ContainsKey((ulong)staticCareer.Guid)) { hole.CareerLocations.Add((ulong)staticCareer.Guid, location); } } } }
public override bool Test(Sim actor, Sim target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback) { return((RabbitHole.GetRabbitHolesOfType(RabbitHoleType.Hospital).Count > 0) && target.BuffManager.HasElement(AlienUtilsEx.sBabyIsComing)); }
public override void HaveTheBaby() { string msg = mMom.FullName + Common.NewLine + "AlienPregnancy.HaveTheBaby" + Common.NewLine + " - Initiating Birth Sequence" + Common.NewLine; if (mContractionBroadcast != null) { mContractionBroadcast.Dispose(); } mMom.RemoveAlarm(PreggersAlarm); mMom.RemoveAlarm(mContractionsAlarm); msg += " - Pregnancy Alarm Removed" + Common.NewLine + " - Contraction Alarm Removed" + Common.NewLine; if (mMom.InteractionQueue.HasInteractionOfType(HaveAlienBabyHome.Singleton)) { msg += " - Already Birthing at Home"; Common.DebugNotify(msg); return; } if (mMom.InteractionQueue.HasInteractionOfType(HaveAlienBabyHospital.Singleton)) { msg += " - Already Birthing at Hospital"; foreach (InteractionInstance current in mMom.InteractionQueue.InteractionList) { HaveAlienBabyHospital haveBabyHosptial = current as HaveAlienBabyHospital; if (haveBabyHosptial != null) { haveBabyHosptial.CancellableByPlayer = false; haveBabyHosptial.BabyShouldBeBorn = true; Common.DebugNotify(msg); return; } } } msg += " - Checking for Hospitals" + Common.NewLine; List <RabbitHole> rabbitHoles = RabbitHole.GetRabbitHolesOfType(RabbitHoleType.Hospital); float num = mMom.LotHome.GetDistanceToObject(mMom); RabbitHole rabbitHole = null; foreach (RabbitHole current2 in rabbitHoles) { float distanceToObject = current2.RabbitHoleProxy.GetDistanceToObject(mMom); if (distanceToObject < num) { num = distanceToObject; rabbitHole = current2; } } InteractionInstance instance; if (rabbitHole != null) { msg += " - Birthing at Hospital"; instance = HaveAlienBabyHospital.Singleton.CreateInstance(rabbitHole, mMom, new InteractionPriority(InteractionPriorityLevel.Pregnancy), false, false); ((HaveAlienBabyHospital)instance).BabyShouldBeBorn = true; } else { msg += " - Birthing at Home"; instance = HaveAlienBabyHome.Singleton.CreateInstance(mMom.LotHome, mMom, new InteractionPriority(InteractionPriorityLevel.Pregnancy), false, false); } mMom.InteractionQueue.Add(instance); ActiveTopic.AddToSim(mMom, "Recently Had Baby"); Common.DebugNotify(msg); }