Example #1
0
            public override bool Install(ManagerSituation main, bool initial)
            {
                PromSituation.Shutdown();
                PromSituation.sAlarm = AlarmHandle.kInvalidHandle;

                return(base.Install(main, initial));
            }
Example #2
0
        private static bool PreparePromSimsForThumbnail(ulong sim1, ulong sim2)
        {
            List <SimDescription> collection = new List <SimDescription>();

            foreach (Sim sim in Sims3.Gameplay.Queries.GetObjects <Sim>())
            {
                if ((sim.ObjectId.mValue == sim1) || (sim.ObjectId.mValue == sim2))
                {
                    /*
                     * if (collection.Count == 0x1)
                     * {
                     *  foreach (SimDescription description in collection)
                     *  {
                     *      description.SetPartner(sim.SimDescription);
                     *      sim.SimDescription.SetPartner(description);
                     *  }
                     * }
                     */
                    collection.Add(sim.SimDescription);
                }
            }

            if (collection.Count != 0x0)
            {
                List <SimDescription> descriptions = new List <SimDescription>(collection);
                Hashtable             simPosesForPromThumbnnail = ThumbnailHelper.GetSimPosesForPromThumbnnail(collection);
                ThumbnailHelper.BuildSimsForPoses(descriptions, simPosesForPromThumbnnail);
                PromSituation.SetBackdrop();
                ThumbnailManager.SetHouseholdCamera(0x5815de37);
            }
            return(true);
        }
Example #3
0
        protected override bool PrivateUpdate(ScenarioFrame frame)
        {
            bool formalOutfit = false;

            try
            {
                if (Sim.CreatedSim.CurrentOutfitCategory == OutfitCategories.Formalwear)
                {
                    formalOutfit = true;
                }
            }
            catch (Exception e)
            {
                Common.DebugException(Sim, e);

                IncStat("Exception");
                return(false);
            }

            if (formalOutfit)
            {
                if (Party.IsInvolvedInAnyTypeOfParty(Sim.CreatedSim))
                {
                    IncStat("Party");
                    return(false);
                }
                else if (Sim.CreatedSim.CurrentInteraction is ICountsAsWorking)
                {
                    IncStat("Working");
                    return(false);
                }
                else if (PromSituation.IsHeadedToProm(Sim.CreatedSim))
                {
                    IncStat("Heading To Prom");
                    return(false);
                }
                else if (ManagerSituation.HasInteraction(Sim, PromSituation.GoToProm.Singleton))
                {
                    IncStat("At Prom");
                    return(false);
                }

                ManagerSim.ChangeOutfit(Manager, Sim, OutfitCategories.Everyday);

                ManagerCareer.PerformStylistHelp(this, frame);
            }
            return(true);
        }
Example #4
0
        protected static bool IsInSituation(Sim sim)
        {
            if (Party.IsGuestAtAParty(sim))
            {
                return(true);
            }
            else if (PromSituation.IsHeadedToProm(sim))
            {
                return(true);
            }
            else if (ManagerSituation.HasBlockingSituation(sim, null))
            {
                return(true);
            }
            else if (IsInteriorDesignerClient(sim))
            {
                return(true);
            }

            return(false);
        }
Example #5
0
        private static bool FindCallParticipants(float minLtr, out Sim callee, out SimDescription caller, Phone.RandomCallType callType)
        {
            callee = null;
            caller = null;
            if ((Sim.ActiveActor != null) && (Sim.ActiveActor.Household != null))
            {
                List <Phone.CallCandidate> randomList = new List <Phone.CallCandidate>();
                foreach (Sim sim in Sim.ActiveActor.Household.Sims)
                {
                    SimDescription simDescription = sim.SimDescription;
                    foreach (object obj2 in Phone.Call.GetAppropriateCallers(sim, minLtr, callType == Phone.RandomCallType.kBoardingSchool))
                    {
                        int            num;
                        float          num2;
                        SimDescription description2 = (SimDescription)obj2;
                        if ((Phone.Call.IsSimAvailableForCall(description2, out num, out num2) == Phone.Call.SimAvailability.Available) && (((callType != Phone.RandomCallType.kInviteOver) || (description2.CreatedSim == null)) || description2.CreatedSim.IsAtHome))
                        {
                            float weight = 0f;
                            bool  flag   = false;
                            switch (callType)
                            {
                            case Phone.RandomCallType.kSuggestBachelorParty:
                                flag = BachelorParty.IsAvailableToHaveBachelorPartySuggested(sim);
                                if (flag)
                                {
                                    weight = BachelorParty.GetWeightToPlaceSuggestBachelorPartyCall(simDescription, description2);
                                }
                                break;

                            case Phone.RandomCallType.kAskToProm:
                                if ((PromSituation.IsGoingToProm(sim) && !PromSituation.HasPromDate(sim)) && !PromSituation.HasPromDate(description2))
                                {
                                    // Custom
                                    string reason;
                                    if (CommonSocials.CanGetRomantic(sim.SimDescription, description2, out reason))
                                    {
                                        weight = RomanceVisibilityState.GetWeightToPlaceCallOrInviteOver(simDescription, description2);
                                        flag   = true;
                                    }
                                }
                                break;

                            case Phone.RandomCallType.kBoardingSchool:
                                if (description2.IsEnrolledInBoardingSchool())
                                {
                                    weight = BoardingSchool.GetWeightToPlaceBoardingSchoolCall(simDescription, description2);
                                    flag   = true;
                                }
                                break;

                            default:
                                weight = RomanceVisibilityState.GetWeightToPlaceCallOrInviteOver(simDescription, description2);
                                flag   = true;
                                break;
                            }

                            if (flag)
                            {
                                randomList.Add(new Phone.CallCandidate(sim, description2, weight));
                            }
                        }
                    }
                }
                if (randomList.Count > 0x0)
                {
                    Phone.CallCandidate weightedRandomObjectFromList = RandomUtil.GetWeightedRandomObjectFromList(randomList);
                    callee = weightedRandomObjectFromList.Callee;
                    caller = weightedRandomObjectFromList.Caller;
                    return(true);
                }
            }
            return(false);
        }
Example #6
0
        protected override bool PrivateUpdate(ScenarioFrame frame)
        {
            if (PromSituation.sInstance == null)
            {
                DateAndTime checkDay = SimClock.Add(SimClock.CurrentTime(), TimeUnit.Days, PromSituation.kNumberOfDaysForAnnouncement);

                if (!HasValue <ValidDaysOption, DaysOfTheWeek>(checkDay.DayOfWeek))
                {
                    IncStat("Wrong Day: " + checkDay.DayOfWeek);
                    return(false);
                }

                int elapsed = (SimClock.ElapsedCalendarDays() - GetValue <DayOfLastOption, int>());
                if (elapsed < GetValue <CooldownOption, int>())
                {
                    AddStat("Cooldown", elapsed);
                    return(false);
                }

                if (!RandomUtil.RandomChance(GetValue <ChanceOption, int>()))
                {
                    IncStat("Chance Fail");
                    return(false);
                }

                if (PromSituation.HasValidConditionsToThrow())
                {
                    IncStat("Created");

                    PromSituation.Create();

                    GetOption <DayOfLastOption>().SetValue(SimClock.ElapsedCalendarDays());

                    return(true);
                }
                else
                {
                    IncStat("Not Satisfied");
                    return(false);
                }
            }
            else if (PromSituation.GetDayOfScheduledProm() == SimClock.CurrentDayOfWeek)
            {
                if (GetValue <DayOffOption, bool>())
                {
                    foreach (SimDescription sim in HouseholdsEx.All(Household.ActiveHousehold))
                    {
                        Occupation career = sim.Occupation;
                        if (career != null)
                        {
                            float endHour = career.FinishTime;
                            if (endHour != -1)
                            {
                                if (endHour > PromSituation.kTimeOfEventStart)
                                {
                                    career.TakePaidTimeOff(1);

                                    IncStat("Time Off");
                                }
                            }
                        }
                    }
                }
            }

            return(true);
        }