Esempio n. 1
0
        public static void StoreAllDreams()
        {
            sDreamStore = new Dictionary <ulong, DreamStore>();

            foreach (Sim sim in Sims3.Gameplay.Queries.GetObjects <Sim>())
            {
                if (sim.Household != Household.ActiveHousehold)
                {
                    try
                    {
                        DreamStore store = new DreamStore(sim, true, true);
                        if (!store.IsNeeded)
                        {
                            continue;
                        }

                        sDreamStore[sim.SimDescription.SimDescriptionId] = store;
                    }
                    catch (Exception e)
                    {
                        Common.Exception(sim, e);
                    }
                }
            }
        }
Esempio n. 2
0
        public static void AdjustSelectable(SimDescription sim, bool active, bool dreamCatcher)
        {
            try
            {
                SafeStore.Flag flags = SafeStore.Flag.StoreOpportunities;
                if (active)
                {
                    flags |= SafeStore.Flag.Selectable;
                }
                else
                {
                    flags |= SafeStore.Flag.Unselectable;
                }

                using (SafeStore store = new SafeStore(sim, flags))
                {
                    if (active)
                    {
                        if (!Household.RoommateManager.IsNPCRoommate(sim))
                        {
                            sim.CreatedSim.OnBecameSelectable();
                        }
                    }
                    else
                    {
                        DreamStore dreamStore = null;

                        if (dreamCatcher)
                        {
                            dreamStore = new DreamStore(sim.CreatedSim, false, true);
                        }

                        try
                        {
                            sim.CreatedSim.OnBecameUnselectable();
                        }
                        finally
                        {
                            if (dreamStore != null)
                            {
                                dreamStore.Restore(sim.CreatedSim);
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Common.Exception(sim, e);
            }
        }
Esempio n. 3
0
            public HouseholdStore(IEnumerable <SimDescription> newSims, bool catchDreams)
            {
                if (newSims != null)
                {
                    mNewSims = new List <SimDescription>(newSims);
                }

                mOldHouse = PlumbBob.sCurrentNonNullHousehold;

                if ((mOldHouse != null) && (catchDreams))
                {
                    foreach (Sim member in Households.AllSims(mOldHouse))
                    {
                        DreamStore element = new DreamStore(member, false, true);

                        mDreamStore.Add(member, element);
                    }
                }

                if (mNewSims != null)
                {
                    foreach (SimDescription member in mNewSims)
                    {
                        Corrections.CleanupBrokenSkills(member, null);

                        mSafeStore.Add(member, new SafeStore(member, SafeStore.Flag.Selectable | SafeStore.Flag.Unselectable | SafeStore.Flag.StoreOpportunities));

                        if ((member.CreatedSim != null) &&
                            (member.CreatedSim.Autonomy != null))
                        {
                            Motives motives = member.CreatedSim.Autonomy.Motives;
                            if ((motives == null) || (motives.GetMotive(CommodityKind.Hunger) == null))
                            {
                                member.CreatedSim.Autonomy.RecreateAllMotives();
                            }
                        }
                    }
                }
            }