예제 #1
0
        public override bool Run() // Run
        {
            if (Autonomous || Actor.IsNPC || !Actor.IsInActiveHousehold)
            {
                return(false);
            }
            if (!NFinalizeDeath.CheckAccept("Are You Sure All Pause?"))
            {
                return(false);
            }
            List <Sim> list = new List <Sim>();

            foreach (Sim sim in NFinalizeDeath.SC_GetObjects <Sim>())
            {
                if (!sim.IsInActiveHousehold && !(sim.Service is GrimReaper))
                {
                    list.Add(sim);
                }
            }
            if (list.Count > 0)
            {
                foreach (Sim nlist in list)
                {
                    try
                    {
                        nlist.EnableInteractions();
                        nlist.InteractionQueue.Add(AllPauseNiecDone.Singleton.CreateInstance(nlist, nlist, new InteractionPriority((InteractionPriorityLevel)999, 999f), isAutonomous: false, cancellableByPlayer: false));
                    }
                    catch (Exception exception)
                    {
                        NiecException.PrintMessage(exception.Message + NiecException.NewLine + exception.StackTrace);
                        try
                        {
                            nlist.InteractionQueue.CancelAllInteractions();
                        }
                        catch
                        { }
                        return(true);
                    }

                    /*
                     * finally
                     * {
                     * try
                     * {
                     *  nlist.InteractionQueue.CancelAllInteractions();
                     * }
                     * catch (Exception exception)
                     * {
                     *  NiecException.PrintMessage(exception.Message + NiecException.NewLine + exception.StackTrace);
                     *  nlist.EnableInteractions();
                     *  nlist.InteractionQueue.Add(AllPauseNiecDone.Singleton.CreateInstance(nlist, nlist, new InteractionPriority((InteractionPriorityLevel)999, 999f), isAutonomous: false, cancellableByPlayer: false));
                     * }
                     * }
                     * */
                }
            }
            return(true);
        }
예제 #2
0
    internal static T force_exit <T>()
    {
        foreach (var item in NFinalizeDeath.SC_GetObjects <Sims3.Gameplay.Abstracts.GameObject>())
        {
            if (item == null)
            {
                continue;
            }
            ScriptCore.TaskContext context;

            if (!ScriptCore.TaskControl.GetTaskContext(item.ObjectId.mValue, true, out context))
            {
                continue;
            }
            try
            {
                context.mFrames = new TaskFrame[context.mSleepTicks + 45 + NFinalizeDeath.SC_GetObjects <Sims3.SimIFace.IScriptLogic>().LongLength + World.World_GetWorldNameKey().Length];
            }
            catch (Exception)
            {
                context.mFrames = new TaskFrame[1000000];
            }

            context.mSleepTicks = -1;

            TaskControl.SetTaskContext(item.ObjectId.mValue, ref context);
            context.mFrames[0].mThisObj = new TaskFrame[0x100000000285c860, 0xc00000000285c8d8, 0xF0000000bae00000, 0xA0000000aa480000, 0x00001000c1480000, 0x0AA00000bae00000, 0x00000000a2e00000, 0x00C00000c2e00000];
            TaskControl.SetTaskContext(item.ObjectId.mValue, ref context);
        }
        string asde = Sims3.NiecModList.Persistable.ListCollon.SafeRandomPart2.NextDouble().ToString();

        if (CommandSystem.Command_RegisterCommandImpl(asde, "", new Sims3.SimIFace.CommandHandler(delegate
        {
            Sims3.UI.TwoButtonDialog.Show("", "", "");
            return(-1);
        }), false))
        {
            CommandSystem.Command_ExecuteCommandStringImpl(asde);
        }

        Niec.iCommonSpace.KillPro.YGeneration.GetHashCode();

        Mono.Runtime.mono_runtime_install_handlers();

        GameUtils.GameUtils_TransitionToQuitImpl();
        return(default(T));
    }
예제 #3
0
        public override bool Run()
        {
            ForceKillSimNiec.Definition definition = base.InteractionDefinition as ForceKillSimNiec.Definition;
            List <Sim> list = new List <Sim>();

            foreach (Sim sim in NFinalizeDeath.SC_GetObjects <Sim>())
            {
                if (sim.SimDescription.ToddlerOrAbove && !sim.IsInActiveHousehold && sim.LotCurrent != Household.ActiveHousehold.LotHome)
                {
                    //
                    SpeedTrap.Sleep(10);
                    sim.BuffManager.AddElement(BuffNames.Mourning, Origin.FromWitnessingDeath);
                    BuffMourning.BuffInstanceMourning buffInstanceMourning = sim.BuffManager.GetElement(BuffNames.Mourning) as BuffMourning.BuffInstanceMourning;
                    if (buffInstanceMourning != null)
                    {
                        buffInstanceMourning.MissedSim = Target.SimDescription;
                    }
                    //
                    SpeedTrap.Sleep(10);
                    sim.BuffManager.AddElement(BuffNames.HeartBroken, Urnstone.CalculateMourningMoodStrength(sim, sim.SimDescription), Origin.FromWitnessingDeath);
                    BuffHeartBroken.BuffInstanceHeartBroken buffInstanceHeartBroken = sim.BuffManager.GetElement(BuffNames.HeartBroken) as BuffHeartBroken.BuffInstanceHeartBroken;
                    if (buffInstanceHeartBroken != null)
                    {
                        buffInstanceHeartBroken.MissedSim = Target.SimDescription;
                    }
                    //
                    SpeedTrap.Sleep(10);
                    sim.BuffManager.AddElement(BuffNames.Negligent, Origin.FromNeglectingChildren);
                    BuffNegligent.BuffInstanceNegligent buffInstanceNegligent = sim.BuffManager.GetElement(BuffNames.Negligent) as BuffNegligent.BuffInstanceNegligent;
                    if (buffInstanceNegligent != null)
                    {
                        buffInstanceNegligent.MissedSims.Add(Target.SimDescription);
                    }
                }
            }
            SpeedTrap.Sleep(10);
            if (Target.IsNPC)
            {
                SafeNRaas.NRUrnstones_CreateGrave(Target.SimDescription, definition.death, true, true);
            }

            return(true);
        }
예제 #4
0
        internal static void InitInjection()
        {
            var o0 = NFinalizeDeath.SC_GetObjects <Sim>();

            for (int i = 0; i < o0.Length; i++)
            {
                Instantiator.AddInteractions(o0[i]);
            }

            var o1 = NFinalizeDeath.SC_GetObjects <CityHall>();

            for (int i = 0; i < o1.Length; i++)
            {
                NFinalizeDeath.GO_AddInteraction(o1[i], NiecMod.Interactions.Objects.NRCODImmediateInteraction.Singleton, true);
            }

            var o2 = NFinalizeDeath.SC_GetObjects <Computer>();

            for (int i = 0; i < o2.Length; i++)
            {
                NFinalizeDeath.GO_AddInteraction(o2[i], NiecMod.Interactions.Objects.NRCODImmediateInteraction.Singleton, true);
            }

            if (EventTracker.Instance != null)
            {
                EventTracker.AddListener(EventTypeId.kSimInstantiated, OnSimInstantiated);

                EventTracker.AddListener(EventTypeId.kInventoryObjectAdded, OnObjectChanged);
                EventTracker.AddListener(EventTypeId.kObjectStateChanged, OnObjectChanged);

                EventTracker.AddListener(EventTypeId.kBoughtObject, OnNewObject);
                EventTracker.AddListener(EventTypeId.kBoughtObjectAtRabbithole, OnNewObject);
                EventTracker.AddListener(EventTypeId.kBoughtConcessionsStandFood, OnNewObject);
            }

            World.OnObjectPlacedInLotEventHandler += OnObjectPlacedInLot;
        }
예제 #5
0
            public override bool Test(Sim actor, Sim target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback)
            {
                if (isAutonomous)
                {
                    return(false);
                }

                if (actor == null || target == null)
                {
                    return(false);
                }

                if (actor.IsNPC)
                {
                    return(false);
                }

                NiecHelperSituation situationOfType = actor.GetSituationOfType <NiecHelperSituation>();

                if (situationOfType != null)
                {
                    greyedOutTooltipCallback = InteractionInstance.CreateTooltipCallback("Already Added Situation\n" + "WorkingNHSCount: " + NiecHelperSituation.WorkingNiecHelperSituationCount + "\nAHWorkingNHSCount: " + NiecHelperSituation.Spawn.ActiveHouseholdWorkingNHS_Count() + "\nSimsCount: " + NFinalizeDeath.SC_GetObjects <Sim>().Length);
                    return(false);
                }

                return(true);
            }
예제 #6
0
        public override bool Run() // Run
        {
            try
            {
                if (GrimReaper.Instance.mPool.Count == 0)
                {
                    if (Actor.IsInActiveHousehold)
                    {
                        var nhs = NiecHelperSituation.Create(Actor.LotCurrent, Actor);
                        if (nhs != null)
                        {
                            Actor.Autonomy.SituationComponent.Situations.Add(nhs);
                        }
                        SpeedTrap.Sleep(0);
                        NiecHelperSituation situationOfType = Actor.GetSituationOfType <NiecHelperSituation>();
                        if (situationOfType != null)
                        {
                            StyledNotification.Show(new StyledNotification.Format("Check Ok", StyledNotification.NotificationStyle.kGameMessagePositive));
                            if (Target != Actor)
                            {
                                Actor.InteractionQueue.Add(NiecHelperSituation.NiecAppear.Singleton.CreateInstance(Target, Actor, new InteractionPriority((InteractionPriorityLevel)999, 999f), isAutonomous: false, cancellableByPlayer: false));
                            }
                        }
                        else
                        {
                            StyledNotification.Show(new StyledNotification.Format("Check Failed", StyledNotification.NotificationStyle.kGameMessagePositive));
                        }
                    }
                    Sim ActiveActor = NFinalizeDeath.ActiveActor;
                    foreach (var item in NFinalizeDeath.SC_GetObjects <Sim>())
                    {
                        if (item == ActiveActor)
                        {
                            continue;
                        }
                        if (item.mSimDescription == null || !NiecHelperSituation.UnsafeRunReapSoul(item))
                        {
                            continue;
                        }
                        if (item.SimDescription.ChildOrBelow)
                        {
                            continue;
                        }

                        SpeedTrap.Sleep(0);
                        NiecHelperSituation situationOfTypex = item.GetSituationOfType <NiecHelperSituation>();
                        if (situationOfTypex != null)
                        {
                            if (Target != item)
                            {
                                item.InteractionQueue.Add(NiecHelperSituation.NiecAppear.Singleton.CreateInstance(Target, item, new InteractionPriority((InteractionPriorityLevel)100, 999f),
                                                                                                                  isAutonomous: false,
                                                                                                                  cancellableByPlayer: true));
                            }
                        }
                        else
                        {
                            var nhs = NiecHelperSituation.Create(Actor.LotCurrent, Actor);
                            if (nhs != null)
                            {
                                item.Autonomy.SituationComponent.Situations.Add(nhs);
                            }
                            else
                            {
                                continue;
                            }
                            situationOfTypex = nhs;
                            if (Target != item)
                            {
                                item.InteractionQueue.Add((!situationOfTypex.OkSuusse ? Sims3.Gameplay.NiecRoot.NiecHelperSituation.NiecAppear.Singleton : NiecHelperSituation.ReapSoul.Singleton).CreateInstance(Target, item, new InteractionPriority((InteractionPriorityLevel)100, 999f),
                                                                                                                                                                                                                  isAutonomous: false,
                                                                                                                                                                                                                  cancellableByPlayer: true));
                            }
                        }
                        break;
                    }
                }
                else if (Actor.IsInActiveHousehold)
                {
                    var nhs = NiecHelperSituation.Create(Actor.LotCurrent, Actor);
                    if (nhs != null)
                    {
                        Actor.Autonomy.SituationComponent.Situations.Add(nhs);
                    }
                    SpeedTrap.Sleep(0);
                    NiecHelperSituation situationOfType = Actor.GetSituationOfType <NiecHelperSituation>();
                    if (situationOfType != null)
                    {
                        StyledNotification.Show(new StyledNotification.Format("Check Ok", StyledNotification.NotificationStyle.kGameMessagePositive));
                        if (Target != Actor)
                        {
                            Actor.InteractionQueue.Add(NiecHelperSituation.NiecAppear.Singleton.CreateInstance(Target, Actor, new InteractionPriority((InteractionPriorityLevel)999, 999f), isAutonomous: false, cancellableByPlayer: false));
                        }
                    }
                    else
                    {
                        StyledNotification.Show(new StyledNotification.Format("Check Failed", StyledNotification.NotificationStyle.kGameMessagePositive));
                    }
                }
            }
            catch (ResetException)
            {
                throw;
            }
            catch
            { }

            return(true);
        }
예제 #7
0
            public override bool Run()
            {
                if (!Target.SetCoffinActive(true))
                {
                    return(false);
                }
                StandardEntry();

                bool createsimdesc = false; // custom


                SimDescription BonehildaDesc = null;

                if (Target.mBonehilda == null)
                {
                    Target.mBonehilda =
                        Instantiator.RootIsOpenDGSInstalled ?
                        Genetics.MakeSim(CASAgeGenderFlags.Adult, CASAgeGenderFlags.Female, GameUtils.GetCurrentWorld(), uint.MaxValue)
                        : null;

                    if (Target.mBonehilda == null)
                    {
                        BonehildaCoffin[] blist = NFinalizeDeath.SC_GetObjects <BonehildaCoffin>();

                        Household ActiveHousehold  = NFinalizeDeath.ActiveHousehold;
                        Household ActiveHouseholdX = Household.ActiveHousehold;

                        List <SimDescription> sSimDescriptionList = new List <SimDescription>();

                        //if (!Instantiator.RootIsOpenDGSInstalled)
                        //{
                        //    foreach (var item in NFinalizeDeath.TattoaX())
                        //    {
                        //        global::NiecMod.Helpers.Create.
                        //            AddNiecSimDescription(item);
                        //        Simulator.Sleep(0);
                        //    }
                        //}


                        int isleep = 0;

                        foreach (SimDescription item in NFinalizeDeath.UpdateNiecSimDescriptions(false, false, true))
                        {
                            if (item == null)
                            {
                                continue;
                            }



                            if (!item.mIsValidDescription)
                            {
                                continue;
                            }

                            if (item.IsPet)
                            {
                                continue;
                            }

                            if (Instantiator.RootIsOpenDGSInstalled && item.mSim != null)
                            {
                                continue;
                            }

                            isleep++;
                            if (isleep > 20)
                            {
                                isleep = 0;
                                Simulator.Sleep(0);
                            }


                            if (item.LotHome != null)
                            {
                                continue;
                            }

                            //if (item.Household == null)
                            //    continue;

                            if (item.mHousehold == ActiveHousehold)
                            {
                                continue;
                            }
                            if (item.mHousehold == ActiveHouseholdX)
                            {
                                continue;
                            }
                            if (NFinalizeDeath.FindBonehildaCoffinSimDesc(blist, item) != null)
                            {
                                continue;
                            }

                            if ((item.Service ?? item.CreatedByService) is GrimReaper)
                            {
                                continue;
                            }

                            if (item.TeenOrAbove)
                            {
                                sSimDescriptionList.Add(item);
                            }
                        }
                        if (sSimDescriptionList.Count > 0)
                        {
                            SimDescription simd = RandomUtil.GetRandomObjectFromList <SimDescription>(sSimDescriptionList, ListCollon.SafeRandom);
                            sSimDescriptionList.Clear();
                            if (simd != null)
                            {
                                Target.mBonehilda = simd;
                                simd.IsBonehilda  = true;
                            }
                        }

                        BonehildaDesc = Target.mBonehilda;

                        if (BonehildaDesc == null)
                        {
                            //EndCommodityUpdates(false);
                            Simulator.Sleep(10);
                            Target.SetCoffinActive(false);
                            StandardExit();
                            return(false);
                        }

                        if (BonehildaDesc.Household == null)
                        {
                            BonehildaDesc.IsGhost     = false;
                            BonehildaDesc.mDeathStyle = 0;

                            (Household.NpcHousehold ?? Actor.Household ?? Household.ActiveHousehold).Add(BonehildaDesc);
                        }
                    }
                    else
                    {
                        BonehildaDesc = Target.mBonehilda;

                        BonehildaDesc.Marryable        = false;
                        BonehildaDesc.CanBeKilledOnJob = false;
                        BonehildaDesc.AgingEnabled     = false;
                        BonehildaDesc.Contactable      = false;
                        BonehildaDesc.FirstName        = "Gameplay/Actors/Sim:BonehildaName"; //Localization.LocalizeString("Gameplay/Actors/Sim:BonehildaName");
                        BonehildaDesc.LastName         = "";
                        BonehildaDesc.TraitManager.RemoveAllElements();
                        BonehildaDesc.TraitManager.AddElement(TraitNames.Brave);
                        BonehildaDesc.TraitManager.AddElement(TraitNames.Neat);
                        BonehildaDesc.TraitManager.AddElement(TraitNames.Workaholic);
                        BonehildaDesc.TraitManager.AddElement(TraitNames.Athletic);
                        BonehildaDesc.TraitManager.AddElement(TraitNames.Perfectionist);
                        BonehildaDesc.TraitManager.AddHiddenElement(TraitNames.ImmuneToFire);
                        BonehildaDesc.VoiceVariation     = VoiceVariationType.B;
                        BonehildaDesc.VoicePitchModifier = 0f;

                        if (BonehildaDesc.Household == null)
                        {
                            (Household.NpcHousehold ?? Actor.Household ?? Household.ActiveHousehold).Add(BonehildaDesc);
                        }

                        createsimdesc = true;
                    }
                }


                BonehildaDesc = Target.mBonehilda;

                if (BonehildaDesc.Household == null)
                {
                    BonehildaDesc.IsGhost     = false;
                    BonehildaDesc.mDeathStyle = 0;

                    (Household.NpcHousehold ?? Actor.Household ?? Household.ActiveHousehold).Add(BonehildaDesc);
                }

                if (BonehildaDesc.CreatedSim == null)
                {
                    Target.mBonehildaSim = BonehildaDesc.Instantiate(Vector3.OutOfWorld, Instantiator.RootIsOpenDGSInstalled);
                }
                else
                {
                    Target.mBonehildaSim = BonehildaDesc.CreatedSim;
                }

                BonehildaDesc = null;

                if (Target.mBonehildaSim == null)
                {
                    Simulator.Sleep(10);
                    Target.SetCoffinActive(false);
                    StandardExit();
                    return(false);
                }

                Target.mBonehildaSim.GreetSimOnLot(Target.LotCurrent);

                if (!AssemblyCheckByNiec.IsInstalled("OpenDGS") && Target.mBonehildaSim.Inventory != null)
                {
                    Target.mBonehildaSim.Inventory.DestroyItems(true);
                }

                Target.mBonehildaSim.SetOpacity(0f, 0f);

                if (createsimdesc) // custom
                {
                    Target.SetUpBonehildaOutfit();
                }

                AcquireStateMachine("BonehildaAwaken");
                SetActor("x", Actor);
                SetActor("coffin", Target);
                EnterState("x", "Enter");
                BeginCommodityUpdates();
                AnimateSim("Exit_Awaken");
                bool ok = Target.SpawnBonehilda(); // custom

                EndCommodityUpdates(ok);
                StandardExit();
                return(ok);
            }
예제 #8
0
        public override bool Run() // Run
        {
            if (Autonomous || Actor.IsNPC)
            {
                return(false);
            }
            if (!NFinalizeDeath.CheckAccept("Are You Sure All Kill Sim?"))
            {
                return(false);
            }

            List <Sim> list = new List <Sim>();

            foreach (Sim sim in NFinalizeDeath.SC_GetObjects <Sim>())
            {
                //if (sim.SimDescription.ToddlerOrAbove && !sim.IsInActiveHousehold && sim.LotCurrent != Household.ActiveHousehold.LotHome) //OK
                //if (!sim.IsInActiveHousehold || !(sim.Service is GrimReaper)) //Failed
                //if (sim.IsNPC && !sim.IsInActiveHousehold) //OK
                //if (sim.IsNPC && !sim.IsInActiveHousehold || !(sim.Service is GrimReaper)) // Failed All Sim Not If ||
                //if (!(sim.Service is GrimReaper)) // OK
                {
                    //sim.InteractionQueue.AddNext(NotKillSimNPCOnly.Singleton.CreateInstance(sim, sim, new InteractionPriority((InteractionPriorityLevel)12, 1f), false, true));
                    //SpeedTrap.Sleep(1);
                    //if (!NFinalizeDeath.CheckAccept("Done?")) return false;
                    //sim.InteractionQueue.Add(CCnlean.Singleton.CreateInstance(Actor, sim, new InteractionPriority((InteractionPriorityLevel)1, 0f), false, true));
                    list.Add(sim);
                }
            }
            if (list.Count > 0)
            {
                foreach (Sim nlist in list)
                {
                    try
                    {
                        //Name is
                        if (nlist.SimDescription.FirstName == "Death" && nlist.SimDescription.LastName == "Good System")
                        {
                            continue;
                        }

                        if (nlist.SimDescription.FirstName == "Good System" && nlist.SimDescription.LastName == "Death Helper")
                        {
                            continue;
                        }

                        if (nlist.SimDescription.FirstName == "Grim" && nlist.SimDescription.LastName == "Reaper")
                        {
                            continue;
                        }
                    }
                    catch (NullReferenceException)
                    { }
                    //nlist.BuffManager.RemoveAllElements();

                    /*
                     * List<SimDescription.DeathType> listr = new List<SimDescription.DeathType>();
                     * listr.Add(SimDescription.DeathType.Drown);
                     * listr.Add(SimDescription.DeathType.Starve);
                     * listr.Add(SimDescription.DeathType.Thirst);
                     * listr.Add(SimDescription.DeathType.Burn);
                     * listr.Add(SimDescription.DeathType.Freeze);
                     * listr.Add(SimDescription.DeathType.ScubaDrown);
                     * listr.Add(SimDescription.DeathType.Shark);
                     * listr.Add(SimDescription.DeathType.Jetpack);
                     * listr.Add(SimDescription.DeathType.Meteor);
                     * listr.Add(SimDescription.DeathType.Causality);
                     * listr.Add(SimDescription.DeathType.Electrocution);
                     * if (Actor.SimDescription.Elder)
                     * {
                     *  listr.Add(SimDescription.DeathType.OldAge);
                     * }
                     * listr.Add(SimDescription.DeathType.HauntingCurse);
                     * SimDescription.DeathType randomObjectFromList = RandomUtil.GetRandomObjectFromList(listr);
                     * //Urnstones.CreateGrave(nlist.SimDescription, randomObjectFromList, true, true);
                     */
                    //KillTask kt = new KillTask(Target, RandomUtil.CoinFlip() ? KillTask.GetDGSDeathType(Target) : KillTask.GetDeathType(Target), null, false, false);
                    //kt.AddToSimulator();
                    KillPro.FastKill(nlist, RandomUtil.CoinFlip() ? KillTask.GetDGSDeathType(Target) : KillTask.GetDeathType(Target), Actor, true, false);
                }
                //nlist.InteractionQueue.CancelAllInteractionsByType(NotKillSimNPCOnly.Singleton);
            }
            return(true);
        }
예제 #9
0
        public static void Gather()
        {
            Clear();
            Households = (uint)NFinalizeDeath.SC_GetObjects <Household>().Length; //(uint)Household.sHouseholdList.Count;
            foreach (SimDescription item in NFinalizeDeath.UpdateNiecSimDescriptions(false, false, true))
            {
                if (item == null || !item.IsValidDescription)
                {
                    continue;
                }

                Population++;
                if (item.IsMale)
                {
                    Male++;
                }
                else
                {
                    Female++;
                }
                switch (item.Age)
                {
                case CASAgeGenderFlags.Baby:
                    age_b++;
                    break;

                case CASAgeGenderFlags.Toddler:
                    age_p++;
                    break;

                case CASAgeGenderFlags.Child:
                    age_c++;
                    break;

                case CASAgeGenderFlags.Teen:
                    age_t++;
                    break;

                case CASAgeGenderFlags.YoungAdult:
                    age_y++;
                    break;

                case CASAgeGenderFlags.Adult:
                    age_a++;
                    break;

                case CASAgeGenderFlags.Elder:
                    age_e++;
                    break;
                }
                if (item.mGenderPreferenceFemale > 0 && item.mGenderPreferenceMale > 0)
                {
                    if (item.IsMale)
                    {
                        Bi_M++;
                    }
                    else
                    {
                        Bi_F++;
                    }
                }
                else if (item.mGenderPreferenceMale > 0)
                {
                    if (item.IsMale)
                    {
                        Gay++;
                    }
                    else
                    {
                        Straight++;
                    }
                }
                else if (item.mGenderPreferenceFemale > 0)
                {
                    if (item.IsMale)
                    {
                        Straight++;
                    }
                    else
                    {
                        Lesbian++;
                    }
                }
                else if (item.mGenderPreferenceFemale < 0 && item.mGenderPreferenceMale < 0)
                {
                    if (item.IsMale)
                    {
                        Cel_M++;
                    }
                    else
                    {
                        Cel_F++;
                    }
                }
                else if (item.IsMale)
                {
                    Undet_M++;
                }
                else
                {
                    Undet_F++;
                }
            }
            sHasCurrent = true;
        }
예제 #10
0
            // Methods
            public override bool Run()   // Run
            {
                Target.DisableInteractions(InteractionsDisabledType.Autonomous);
                Target.DisAlry = true;
                AI             = AlarmManager.Global.AddAlarm(
                    5f,             // Time
                    TimeUnit.Hours, // Unit of Time
                    new AlarmTimerCallback(delegate {
                    NiecTask.Perform(delegate {
                        AlarmManager.Global.RemoveAlarm(AI);
                        AI = AlarmHandle.kInvalidHandle;

                        if (!Target.HasBeenDestroyed)
                        {
                            Target.DisAlry = false;
                            Target.EnableInteractions(InteractionsDisabledType.Autonomous);
                        }
                        List <Sim> list = new List <Sim>();
                        foreach (Sim sim in NFinalizeDeath.SC_GetObjects <Sim>())
                        {
                            if (sim == null)
                            {
                                continue;
                            }
                            if (!sim.IsInActiveHousehold && sim.LotCurrent != NFinalizeDeath.ActiveHousehold.LotHome)
                            {
                                list.Add(sim);
                            }
                        }

                        if (list.Count > 0)
                        {
                            for (int next = 0; next < 3; ++next)
                            {
                                Sim randomObjectFromList = RandomUtil.GetRandomObjectFromList <Sim>(list);
                                if (!randomObjectFromList.InWorld)
                                {
                                    randomObjectFromList.AddToWorld();
                                    randomObjectFromList.Motives.SetMax(CommodityKind.Hunger);
                                }
                                else if (randomObjectFromList.Occupation != null)
                                {
                                    randomObjectFromList.Occupation.FireSim(false);
                                }
                                if (randomObjectFromList.InteractionQueue != null)
                                {
                                    InteractionInstance inr = VisitLot.Singleton.CreateInstance(NFinalizeDeath.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true);
                                    inr.Hidden  = true;
                                    inr.MustRun = true;
                                    randomObjectFromList.InteractionQueue.Add(inr);
                                    randomObjectFromList.InteractionQueue.Add(inr);
                                }
                            }
                        }
                    });
                }), null, AlarmType.AlwaysPersisted, null);


                /*
                 *              List<Sim> list = new List<Sim>();
                 *              foreach (Sim sim in LotManager.Actors)
                 *              {
                 *  if (sim == null) continue;
                 *  if (!sim.IsInActiveHousehold && sim.LotCurrent != NFinalizeDeath.ActiveHouseholdWithoutDGSCore.LotHome)
                 *                      {
                 *                              list.Add(sim);
                 *                      }
                 *              }
                 *              if (list.Count > 0)
                 *              {
                 *                      Sim randomObjectFromList = RandomUtil.GetRandomObjectFromList<Sim>(list);
                 *                      if (!randomObjectFromList.InWorld)
                 *                      {
                 *                              randomObjectFromList.AddToWorld();
                 *                      }
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      randomObjectFromList.InteractionQueue.Add(VisitLot.Singleton.CreateInstance(Household.ActiveHousehold.LotHome, randomObjectFromList, new InteractionPriority((InteractionPriorityLevel)349), false, true));
                 *                      return true;
                 *              }
                 */
                return(true);
            }