public bool IsValid() { SimDescription description = SimDescription.Find(mMom); SimDescription description2 = SimDescription.Find(mDad); return(((mHouseholdId != 0x0L) && (mSim != null)) && ((description != null) && (description2 != null))); }
public static void SkinnyDippersReactToTeenOrBelow(List <ulong> skinnyDipperIDList) { new InteractionPriority(InteractionPriorityLevel.High); foreach (ulong num in skinnyDipperIDList) { SimDescription description = SimDescription.Find(num); if (description == null) { continue; } // Custom Sim createdSim = description.CreatedSim; if (createdSim == null) { continue; } // Custom if (createdSim.Posture == null) { continue; } if (!createdSim.Posture.HasBeenCanceled) { createdSim.Posture.CancelPosture(createdSim); } } }
public override bool InRabbitHole() { base.Target.ClearAmbientSounds(base.Target); if (GameUtils.IsFutureWorld()) { base.Target.AddAmbientSound("rhole_hospital_future_lp"); } else { base.Target.AddAmbientSound("rhole_hospital_loop"); } base.Target.AddAmbientSound("rhole_hospital_future_oneshot"); base.Target.StartAmbientSounds(base.Actor, base.Target); if (SimDescription.Find(this.mTargetDescription) != null) { Sim createdSim = SimDescription.Find(this.mTargetDescription).CreatedSim; if (base.SelectedObjects.Count >= 1) { while (!base.Actor.WaitForExitReason(Sim.kWaitForExitReasonDefaultTime, ExitReason.CancelExternal)) { if (((createdSim != null) && (createdSim.CurrentInteraction is Hospital.BeForcedToMakeBabyWith)) && ((createdSim.SimInRabbitHolePosture && (base.SimFollowers != null)) && base.SimFollowers.Contains(createdSim))) { break; } if (((createdSim != null) && (createdSim.InteractionQueue != null)) && (createdSim.InteractionQueue.GetNumVisibleInteractions() == 0)) { return(false); } } if (base.Actor.HasExitReason(ExitReason.CancelExternal)) { createdSim.AddExitReason(~(ExitReason.Replan | ExitReason.MidRoutePushRequested | ExitReason.ObjectStateChanged | ExitReason.PlayIdle | ExitReason.MaxSkillPointsReached)); return(false); } base.BeginCommodityUpdates(); base.StartStages(); Definition interactionDefinition = base.InteractionDefinition as Definition; Common.Notify("Customize: " + interactionDefinition.customize.ToString()); if (interactionDefinition.customize && (!CustomizeBabyDNAModel.ShowCreateCustomizeBabyDNAUIDialog(base.Actor) || base.Actor.HasExitReason(ExitReason.CancelExternal))) { base.Actor.AddExitReason(~(ExitReason.Replan | ExitReason.MidRoutePushRequested | ExitReason.ObjectStateChanged | ExitReason.PlayIdle | ExitReason.MaxSkillPointsReached)); createdSim.AddExitReason(~(ExitReason.Replan | ExitReason.MidRoutePushRequested | ExitReason.ObjectStateChanged | ExitReason.PlayIdle | ExitReason.MaxSkillPointsReached)); return(false); } bool succeeded = base.DoLoop(~(ExitReason.Replan | ExitReason.MidRoutePushRequested | ExitReason.ObjectStateChanged | ExitReason.PlayIdle | ExitReason.MaxSkillPointsReached)); base.EndCommodityUpdates(succeeded); if (base.Actor.HasExitReason(ExitReason.CancelExternal)) { createdSim.AddExitReason(~(ExitReason.Replan | ExitReason.MidRoutePushRequested | ExitReason.ObjectStateChanged | ExitReason.PlayIdle | ExitReason.MaxSkillPointsReached)); return(false); } this.MakeBaby(base.Actor.SimDescription, SimDescription.Find(this.mTargetDescription), interactionDefinition.customize); this.mBabyIsMade = true; base.Actor.Household.ModifyFamilyFunds(-kCostOfBabyMaking); return(succeeded); } } return(false); }
public static void ReactToSkinnyDippers(Sim sim, GameObject objectSkinnyDippedIn, InteractionDefinition skinnyDipInteraction, List <ulong> skinnyDipperList) { if (!sim.SimDescription.TeenOrBelow && ((skinnyDipperList != null) && (skinnyDipperList.Count != 0x0))) { List <ulong> skinnyDippers = new List <ulong>(skinnyDipperList); skinnyDippers.Remove(sim.SimDescription.SimDescriptionId); if (skinnyDippers.Count != 0x0) { bool flag = Pool.ShouldReactPositiveToSkinnyDipper(sim, skinnyDippers); bool flag2 = false; if (flag && !sim.HasTrait(TraitNames.Hydrophobic)) { flag2 = RandomUtil.RandomChance(Pool.kChancePositiveReactionSimsJoin); } SimDescription simDesc = SimDescription.Find(RandomUtil.GetRandomObjectFromList(skinnyDippers)); if (simDesc != null) { Sim createdSim = simDesc.CreatedSim; Pool.ReactToSkinnyDipper instance = Pool.ReactToSkinnyDipper.Singleton.CreateInstance(createdSim, sim, new InteractionPriority(InteractionPriorityLevel.UserDirected), false, true) as Pool.ReactToSkinnyDipper; instance.IsPositive = flag; instance.ShouldJoin = flag2; instance.DippingObject = objectSkinnyDippedIn; instance.SkinnyDipInteraction = skinnyDipInteraction; sim.InteractionQueue.AddNextIfPossible(instance); } } } }
public void Dispose() { if (this.mPush != null && this.mPush.Valid) { this.mPush.Dispose(); } if (this.mLotPush != null && this.mLotPush.Valid) { this.mLotPush.Dispose(); } if (this.mProfessional != 0) { SimDescription desc = SimDescription.Find(this.mProfessional); if (desc != null && desc.CreatedSim != null && desc.CreatedSim.Autonomy != null) { if (!this.autonomyWasDisabled && desc.CreatedSim.Autonomy.mAutonomyDisabledCount > 0) { desc.CreatedSim.Autonomy.mAutonomyDisabledCount = 0; } SetupDisposeAlarm(); } } }
public static List <IMiniSimDescription> GetSimsMatchingFilterAsMinis(string name, ulong sim) { List <IMiniSimDescription> results = new List <IMiniSimDescription>(); SavedFilter filter = GetFilter(name); if (sim == 0 && PlumbBob.SelectedActor != null) { sim = PlumbBob.SelectedActor.SimDescription.SimDescriptionId; } if (filter != null && sim != 0) { bool okayed; IMiniSimDescription mini = SimDescription.Find(sim); if (mini != null) { List <SimSelection.ICriteria> crit = new List <SimSelection.ICriteria>(); crit.Add(new SavedFilter.Item(filter)); SimSelection selection = SimSelection.Create("", mini, null, crit, true, false, out okayed); if (selection.All != null && selection.All.Count > 0) { results.AddRange(selection.All); } } } return(results); }
private static void UpdateInWorldRelationships(MiniSimDescription ths, SimDescription myDesc) { foreach (MiniRelationship relationship in ths.mMiniRelationships) { MiniSimDescription description = Find(relationship.SimDescriptionId); if ((description != null) && description.Instantiated) { SimDescription y = SimDescription.Find(relationship.SimDescriptionId); if (y == null) { description.Instantiated = false; } else { Relationship unsafely; MiniRelationship mrB = description.FindMiniRelationship(ths, false); // Custom if (mrB != null) { if (GameStates.IsTravelling) { unsafely = Relationship.GetUnsafely(myDesc, y); } else { unsafely = Relationship.Get(myDesc, y, true); } unsafely.UpdateFromMiniRelationship(relationship, mrB); } } } } }
public static SimDescription ImportWithCheck(MiniSimDescription miniSim) { // Custom // Importing a sim that already exists in town causes issues with the long-term relationship system, don't do it SimDescription simDescription = SimDescription.Find(miniSim.SimDescriptionId); if (simDescription == null) { simDescription = UnpackSimAndUpdateRel(miniSim); if (simDescription != null) { Household.CreateTouristHousehold(); Household.TouristHousehold.AddTemporary(simDescription); miniSim.Instantiated = true; (Sims3.UI.Responder.Instance.HudModel as Sims3.Gameplay.UI.HudModel).OnSimCurrentWorldChanged(true, miniSim); if (simDescription.AgingState == null) { simDescription.AgingState = new AgingState(simDescription); } simDescription.AgingState.MergeTravelInformation(miniSim); simDescription.PushAgingEnabledToAgingManager(); } } return(simDescription); }
public override void Perform(Sim sim, DiseaseVector vector) { if (sim.SimDescription.IsPregnant) { return; } if (mClone) { Pregnancies.Start(sim, sim.SimDescription, mHandlePlantSim); } else if (vector.Infector != 0) { SimDescription other = SimDescription.Find(vector.Infector); if (other != null) { if (!mAllowCloseRelations) { if (Relationships.IsCloselyRelated(sim.SimDescription, other, false)) { return; } } Pregnancies.Start(sim, other, mHandlePlantSim); } } }
public void CheckArrival() { if (this.mLotPushAttempts >= 5) { this.Dispose(); return; } if (this.mProfessional != 0) { SimDescription desc = SimDescription.Find(this.mProfessional); if (desc != null) { if (desc.CreatedSim == null) { Instantiation.Perform(desc, null); } if (desc.CreatedSim != null) { SimDescription descClient = SimDescription.Find(this.mRequester); if (descClient != null && descClient.LotHome != null && desc.CreatedSim.LotCurrent != descClient.LotHome) { SimEx.GetSimToSimHome(desc, descClient.CreatedSim, new Callback(GoToLotSuccessEx)); this.mLotPushAttempts++; } } } else { this.Dispose(); return; } } }
public static List <IDescendantHouseholdUiData> GetTimeAlamanacDescendantHouseholdData(FutureDescendantService instance) { // custom BuildDescendantHouseholdSpecs(instance); List <IDescendantHouseholdUiData> list = new List <IDescendantHouseholdUiData>(); List <ulong> remove = new List <ulong>(); foreach (ulong num in FutureDescendantService.sPersistableData.DescendantHouseholdsMap.Keys) { // Overwatch does this too but no harm in doing it here too if (SimDescription.Find(num) == null && MiniSims.Find(num) == null) { remove.Add(num); } FutureDescendantService.DescendantHouseholdUiData item = new FutureDescendantService.DescendantHouseholdUiData { mAncestorSimId = num }; int householdWealthScore = 0; int numberOfMembers = 0; bool flag = false; foreach (FutureDescendantService.FutureDescendantHouseholdInfo info in FutureDescendantService.sPersistableData.DescendantHouseholdsMap[num]) { if (remove.Contains(num) && info.IsSimAnAncestor(num)) { FutureDescendantService.sPersistableData.InvalidDescendantHouseholdsInfo.Add(info); flag = true; continue; } if (!info.HasAncestorFromHousehold(Household.ActiveHousehold)) { flag = true; continue; } foreach (ulong num4 in info.mHouseholdMembers) { IMiniSimDescription iMiniSimDescription = SimDescription.GetIMiniSimDescription(num4); if ((iMiniSimDescription != null) && !item.mHouseholdMembers.Contains(iMiniSimDescription)) { item.mHouseholdMembers.Add(iMiniSimDescription); } } householdWealthScore += info.mCurrentHouseholdWealthScore; numberOfMembers += info.mCurrentDesiredHouseholdSize; } householdWealthScore /= Math.Max(1, FutureDescendantService.sPersistableData.DescendantHouseholdsMap[num].Count); numberOfMembers /= Math.Max(1, FutureDescendantService.sPersistableData.DescendantHouseholdsMap[num].Count); item.mHouseholdWorth = FutureDescendantService.GetWealthTypeString(householdWealthScore); item.mHouseholdSize = FutureDescendantService.GetHouseholdSizeString(numberOfMembers); if (item != null && !flag) { list.Add(item); } } return(list); }
public static void PackUpToMiniSimDescription(SimDescription ths) { if (ths.CreatedSim != null) { ths.CreatedSim.Destroy(); Common.Sleep(); } if (Find(ths.SimDescriptionId) != null) { SimDescription father = null; if (ths.Pregnancy != null) { if ((ths.Pregnancy.mDad == null) || ths.Pregnancy.mDad.HasBeenDestroyed) { if (SimDescription.Find(ths.Pregnancy.DadDescriptionId) == null) { MiniSimDescription description = Find(ths.Pregnancy.DadDescriptionId); if (description != null) { father = UnpackSim(description); father.Genealogy.SetSimDescription(father); Household.TouristHousehold.AddTemporary(father); } } } } PackSim(ths); if (father != null) { father.Dispose(true, true); } } else { MiniSimDescription.AddMiniSim(ths); ths.Household.RemoveTemporary(ths); MiniSimDescription miniSim; if (MiniSimDescription.sMiniSims.TryGetValue(ths.SimDescriptionId, out miniSim)) { GenerateCrossWorldThumbnail(miniSim, ths, true); } ths.Dispose(true, true); } ths.mPackingDescriptionTask = null; if (!GameStates.IsTravelling) { (Sims3.Gameplay.UI.Responder.Instance.HudModel as Sims3.Gameplay.UI.HudModel).OnSimCurrentWorldChanged(false, ths); } ths.ClearOutfits(true); }
public override void OnAddition(BuffManager bm, BuffInstance bi, bool travelReaddition) { BuffInstanceXenogenesis instance = bi as BuffInstanceXenogenesis; instance.Abductee = bm.Actor; instance.Pregnancy = bm.Actor.SimDescription.Pregnancy; instance.Alien = SimDescription.Find(instance.Pregnancy.DadDescriptionId); instance.StartPregnancy(); }
public new void CheckForDad() { SimDescription description = SimDescription.Find(DadDescriptionId); if (description != null && description.TeenOrAbove) { mDad = description.CreatedSim; } }
public override void GetNewBorns() { mNewborns = new List <Sim>(); Sims3.Gameplay.Gameflow.Singleton.DisableSave(this, "Gameplay/ActorSystems/Pregnancy:DisableSave"); bool keepBaby = false; //if (Actor.Household.NumActorMembersCountingPregnancy < 0x8) { // Custom if (SimTypes.IsSelectable(Actor)) { keepBaby = TwoButtonDialog.Show(AlienUtils.LocalizeString("MalePregnancyConfirmationDialog", new object[] { Actor }), AlienUtils.LocalizeString("MalePregnancyConfirmationDialogAccept", new object[0x0]), AlienUtils.LocalizeString("MalePregnancyConfirmationDialogReject", new object[0x0])); } else { keepBaby = true; } } /*else * { * Actor.ShowTNSIfSelectable(AlienUtils.LocalizeString("MalePregnancyHouseholdFullTNS", new object[] { Actor }), StyledNotification.NotificationStyle.kGameMessagePositive, ObjectGuid.InvalidObjectGuid, Actor.ObjectId); * }*/ CASAgeGenderFlags gender = RandomUtil.CoinFlip() ? CASAgeGenderFlags.Male : CASAgeGenderFlags.Female; SimDescription description2 = SimDescription.Find(this.AlienParentID); SimDescription newSim = Genetics.MakeAlien(CASAgeGenderFlags.Baby, gender, GameUtils.GetCurrentWorld(), 1f, false); newSim.LastName = Actor.LastName; if ((keepBaby) && (SimTypes.IsSelectable(Actor))) { newSim.FirstName = string.Empty; } Genetics.AssignTraits(newSim, null, Actor.SimDescription, (keepBaby) && (SimTypes.IsSelectable(Actor)), (float)Actor.MoodManager.MoodValue, new Random()); Actor.Genealogy.AddChild(newSim.Genealogy); if (description2 != null) { description2.Genealogy.AddChild(newSim.Genealogy); } if (keepBaby) { Actor.Household.Add(newSim); } else { Household.AlienHousehold.Add(newSim); } Sim babyToHide = newSim.Instantiate(Vector3.Empty); babyToHide.GreetSimOnLot(Actor.LotCurrent); babyToHide.SetPosition(Actor.Position); Pregnancy.TotallyHideBaby(babyToHide); mNewborns.Add(babyToHide); }
public new List <SimDescription> CreateNewbornsBeforePacking(float bonusMoodPoints, bool bAddToFamily, int householdSimMembers, int householdPetMembers) { MiniSimDescription miniDescription = null; SimDescription description; if (mDad == null || mDad.HasBeenDestroyed) { description = SimDescription.Find(DadDescriptionId); if (description == null) { miniDescription = MiniSimDescription.Find(DadDescriptionId); if (miniDescription != null) { description = miniDescription.UnpackSim(); description.Genealogy.SetSimDescription(description); } } } else { description = mDad.SimDescription; } float averageMoodForBirth = GetAverageMoodForBirth(description, bonusMoodPoints); Random pregoRandom = new Random(mRandomGenSeed); int numForBirth = GetNumForBirth(description, pregoRandom, householdSimMembers, householdPetMembers); Random gen = new Random(mRandomGenSeed); List <SimDescription> list = new List <SimDescription>(); for (int i = 0; i < numForBirth; i++) { DetermineGenderOfBaby(gen); CASAgeGenderFlags gender = mGender; mGender = CASAgeGenderFlags.None; SimDescription description2 = AlienUtilsEx.MakeAlienBaby(description, mMom.SimDescription, gender, averageMoodForBirth, pregoRandom, false); description2.WasCasCreated = false; if (bAddToFamily) { mMom.Household.Add(description2); Sim sim = description2.Instantiate(mMom.Position); CheckForGhostBaby(sim); } list.Add(description2); } if (miniDescription != null) { description.Dispose(true, true); } return(list); }
public static void GoToLotSuccessEx(Sim sim, float f) { if (sim.LotCurrent == null) { return; } ServiceData data = KamaSimtra.Settings.FindServiceDataInvolvingProfessionalAndLot(sim.SimDescription.SimDescriptionId, sim.LotCurrent.LotId); bool proceed = false; if (data != null) { SimDescription client = SimDescription.Find(data.mRequester); if (client != null && client.CreatedSim != null) { Relationship relationship = Relationship.Get(client, sim.SimDescription, true); if (relationship != null) { data.DisableAutonomy(); relationship.STC.Set(client.CreatedSim, sim, CommodityTypes.Amorous, 500f); client.CreatedSim.InteractionQueue.CancelAllInteractions(); while (client.CreatedSim.CurrentInteraction != null) { Common.Sleep(0); } data.SetupAlarm(); client.CreatedSim.GreetSimOnMyLotIfPossible(sim); CommonWoohoo.WoohooStyle style = CommonWoohoo.WoohooStyle.Safe; if (!Woohooer.Settings.ReplaceWithRisky && client.CreatedSim.IsSelectable && TwoButtonDialog.Show(Woohooer.Localize("FriskyConfirm:Prompt", sim.IsFemale, new object[] { sim, client.CreatedSim }), Woohooer.Localize("FriskyConfirm:Yes", sim.IsFemale, new object[] { sim, client.CreatedSim }), Woohooer.Localize("FriskyConfirm:No", sim.IsFemale, new object[] { sim, client.CreatedSim }))) { style = CommonWoohoo.WoohooStyle.Risky; } data.mStyle = style; KamaSimtra.Settings.SetServiceData(data.mRequester, data); new CommonWoohoo.PushWoohoo(sim, client.CreatedSim, false, style); proceed = true; if (client.CreatedSim.IsSelectable) { StyledNotification.Format format = new StyledNotification.Format(Common.Localize("OrderServices:Arrived", sim.IsFemale), sim.ObjectId, client.CreatedSim.ObjectId, StyledNotification.NotificationStyle.kSimTalking); StyledNotification.Show(format); } } } } if (!proceed && data != null) { data.Dispose(); } }
public static void EnsureForeignFather(Pregnancy pregnancy) { if (SimDescription.Find(pregnancy.DadDescriptionId) == null) { SimDescription dad = MiniSims.UnpackSim(MiniSimDescription.Find(pregnancy.DadDescriptionId)); if (dad != null) { Household.CreateTouristHousehold(); Household.TouristHousehold.AddTemporary(dad); } } }
public override void OnAddition(BuffManager bm, BuffInstance bi, bool travelReaddition) { Sim abductee = bm.Actor; if (abductee.TraitManager.HasElement(AlienUtilsEx.sAlienPregnancy)) { BuffInstanceAbductedEx instance = bi as BuffInstanceAbductedEx; instance.Abductee = abductee; instance.Alien = SimDescription.Find(abductee.SimDescription.Pregnancy.DadDescriptionId); instance.IsAlienPregnancy = true; EventTracker.SendEvent(EventTypeId.kGotPregnant, abductee); abductee.TraitManager.RemoveElement(AlienUtilsEx.sAlienPregnancy); } }
public static void MergeTravelInformation(SimDescription ths, MiniSimDescription msd, Dictionary <ulong, SimDescription> allSims) { Common.StringBuilder msg = new Common.StringBuilder("MergeTravelInformation " + ths.FullName + Common.NewLine); msg += "A"; Traveler.InsanityWriteLog(msg); foreach (MiniRelationship relationship in msd.MiniRelationships) { SimDescription y = null; if (!allSims.TryGetValue(relationship.SimDescriptionId, out y)) { y = SimDescription.Find(relationship.SimDescriptionId); } if (y != null) { Relationship unsafely = null; try { unsafely = Relationship.GetUnsafely(ths, y); } catch (Exception e) { Common.Exception(ths, e); } if (unsafely != null) { float change = relationship.Value - unsafely.LTR.Liking; if (change != 0f) { unsafely.LTR.UpdateLiking(change); } RomanceVisibilityState.MergeTravelInformationOnTravelBackHome(relationship, unsafely); } } } msg += "B"; Traveler.InsanityWriteLog(msg); ths.CASGenealogy = msd.CASGenealogy; AgingCheckTask.Add(ths, msd); msg += "C"; Traveler.InsanityWriteLog(msg); }
public static SimDescription CreateProgenitor(ulong id, out bool unpacked) { unpacked = false; if (id == 0) { return(null); } if (FutureDescendantServiceEx.UnpackedSims.ContainsKey(id)) { return(FutureDescendantServiceEx.UnpackedSims[id]); } SimDescription sim = SimDescription.Find(id); if (sim == null) { MiniSimDescription msd = MiniSimDescription.Find(id); if (msd == null) { return(null); } // Custom sim = MiniSims.UnpackSimAndUpdateRel(msd); if (sim == null) { return(null); } Household.CreateTouristHousehold(); Household.TouristHousehold.AddTemporary(sim); msd.Instantiated = true; if (sim.AgingState != null) { sim.AgingState.MergeTravelInformation(msd); } FutureDescendantServiceEx.UnpackedSims.Add(id, sim); SpeedTrap.Sleep(); unpacked = true; } sim.Fixup(); return(sim); }
public static SimDescription ReturnCreaotrSimDescription(GameObject craftedObject) { Type t = craftedObject.GetType(); // StyledNotification.Show(new StyledNotification.Format("Type: " + t.BaseType.ToString(), StyledNotification.NotificationStyle.kGameMessagePositive)); if (t == typeof(PreparedFood)) { return(SimDescription.Find(((PreparedFood)craftedObject).CookingProcess.Preparer.SimDescriptionId)); } if (t == typeof(Fish)) { return(((Fish)craftedObject).FishingSim); } if (t == typeof(NectarBottle)) { return(((NectarBottle)craftedObject).Creator); } if (t == typeof(Photograph)) { return(((Photograph)craftedObject).Artist); } if (t == typeof(Sculpture)) { return(((Sculpture)craftedObject).SculptureComponent.Artist); } //If an invention Widget wid = craftedObject as Widget; if (wid != null) { return(wid.Inventor); } Invention inv = craftedObject as Invention; if (inv != null) { return(inv.Inventor); } return(null); }
public ServiceData FindServiceDataInvolvingProfessionalAndLot(ulong professionalID, ulong lotID) { foreach (KeyValuePair <ulong, ServiceData> data in sRequests) { if (data.Value.mProfessional == professionalID) { SimDescription desc = SimDescription.Find(data.Key); if (desc != null && desc.LotHomeId == lotID) { return(data.Value); } } } return(null); }
public static void OnWorldLoadFinished(object sender, EventArgs e) { if (alreadyParsed) { Ferry <PersistedData> .UnloadCargo(); } alreadyParsed = false; ObjectLoader.FindAndSortAllExistingSewables(); for (int i = 0; i < Sims3.Gameplay.Queries.GetObjects <PhoneSmart>().Length; i++) { if (Sims3.Gameplay.Queries.GetObjects <PhoneSmart>()[i] != null) { AddInteractionsPhone(Sims3.Gameplay.Queries.GetObjects <PhoneSmart>()[i]); } } foreach (Computer computer in Sims3.Gameplay.Queries.GetObjects <Computer>()) { if (computer != null) { AddInteractionsComputer(computer); } } // Save/cache our loaded key to make discovery quicker. Rather than always looping through it. for (int i = 0; i < ObjectLoader.sewableSettings.Count; i++) { Pattern.mStoredPatternsKeySettingsList.Add(ObjectLoader.sewableSettings[i].key); } foreach (KeyValuePair <ulong, bool> keyvalues in GlobalOptionsSewingTable.retrieveData.whoIsInPatternClub) { print("Re-assigned the mailbox alarm!"); SimDescription description = SimDescription.Find(keyvalues.Key); Mailbox mailbox = Mailbox.GetMailboxOnLot(description.LotHome); mailbox.AddAlarmDay(1f, DaysOfTheWeek.Thursday, GlobalOptionsSewingTable.SendPatterns, "Mailbox: Pattern club " + description.mSimDescriptionId.ToString(), AlarmType.AlwaysPersisted); } //mPatternClubAlarm = AlarmManager.Global.AddAlarmDay(1f, DaysOfTheWeek.Thursday, GlobalOptionsSewingTable.SendPatterns, "Mailbox: Pattern club", AlarmType.NeverPersisted, null); //mWearClothing = AlarmManager.Global.AddAlarmRepeating(24f, TimeUnit.Hours, WearGiftedClothing, 1f, TimeUnit.Days, "Wear gifted clothing", AlarmType.AlwaysPersisted, null); EventTracker.AddListener(EventTypeId.kBoughtObject, new ProcessEventDelegate(OnObjectChanged)); EventTracker.AddListener(EventTypeId.kInventoryObjectAdded, new ProcessEventDelegate(OnObjectChanged)); EventTracker.AddListener(EventTypeId.kObjectStateChanged, new ProcessEventDelegate(OnObjectChanged)); }
public void Execute() { Household household = Household.Find(mHouseholdId); SimDescription mom = SimDescription.Find(mMom); SimDescription dad = SimDescription.Find(mDad); SimDescription simDescription = mSim.Instantiate(dad, mom); if (simDescription != null) { household.Add(simDescription); simDescription.SendSimHome(); if (((mom != null) && (dad != null)) && (mom.Partner != dad)) { SimUtils.HouseholdCreationSpec.InitializeRomance(mom, dad, simDescription, simDescription.LastName); } } }
public void Cleanup() { if (this.mProfessional != 0) { SimDescription desc = SimDescription.Find(this.mProfessional); if (desc != null && desc.CreatedSim != null) { VisitSituation.MakeSimExitToYard(desc.CreatedSim.LotCurrent, desc.CreatedSim); Sim.MakeSimGoHome(desc.CreatedSim, false, new InteractionPriority(InteractionPriorityLevel.UserDirected)); } } if (this.mRequester != 0) { KamaSimtra.Settings.sRequests.Remove(this.mRequester); } }
public static void OnWorldQuit(object sender, EventArgs e) { Ferry <PersistedData> .LoadCargo(); foreach (KeyValuePair <ulong, bool> keyvalues in GlobalOptionsSewingTable.retrieveData.whoIsInPatternClub) { print("Re-assigned the mailbox alarm!"); SimDescription description = SimDescription.Find(keyvalues.Key); Mailbox mailbox = Mailbox.GetMailboxOnLot(description.LotHome); mailbox.RemoveAlarm(1f, DaysOfTheWeek.Thursday, GlobalOptionsSewingTable.SendPatterns, "Mailbox: Pattern club " + description.mSimDescriptionId.ToString(), AlarmType.AlwaysPersisted); } //AlarmManager.Global.RemoveAlarm(mPatternClubAlarm); //mPatternClubAlarm = AlarmHandle.kInvalidHandle; //AlarmManager.Global.RemoveAlarm(mWearClothing); //mWearClothing = AlarmHandle.kInvalidHandle; }
public new void CheckForDad() { SimDescription simDescription; if (RobotDadDescriptionID != 0uL) { simDescription = SimDescription.Find(RobotDadDescriptionID); } else { simDescription = SimDescription.Find(DadDescriptionId); } if (simDescription != null && simDescription.IsMale && simDescription.TeenOrAbove) { mDad = simDescription.CreatedSim; } }
// externalized to Register and MasterController public static WorldName GetSimHomeworld(ulong sim) { MiniSimDescription desc = MiniSims.Find(sim); if (desc != null) { return(Traveler.Settings.GetHomeWorld(desc)); } SimDescription desc2 = SimDescription.Find(sim); if (desc2 != null) { return(Traveler.Settings.GetHomeWorld(desc2 as IMiniSimDescription)); } return(WorldName.Undefined); }
public void DisableAutonomy() { if (this.mProfessional != 0) { SimDescription desc = SimDescription.Find(this.mProfessional); if (desc != null && desc.CreatedSim != null && desc.CreatedSim.Autonomy != null) { if (desc.CreatedSim.Autonomy.mAutonomyDisabledCount > 0) { // already disabled by the user this.autonomyWasDisabled = true; return; } desc.CreatedSim.Autonomy.mAutonomyDisabledCount = int.MaxValue / 2; } } }