Example #1
0
            public override bool Test(Sim a, RabbitHole target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback)
            {
                OmniCareer job = a.Occupation as OmniCareer;

                if ((job != null) && (job.HasMetric <MetricMeetingsHeld>()))
                {
                    float num = SimClock.Hours24;
                    if ((num >= Business.kEarliestTimeToHoldMeeting) && (num <= Business.kLatestTimeToHoldMeeting))
                    {
                        if (a.MoodManager.MoodValue >= Business.kMinMoodToHoldMeeting)
                        {
                            return(true);
                        }

                        greyedOutTooltipCallback = delegate
                        {
                            return(HoldMeetingInAtRabbitHole.LocalizeString(a.SimDescription, "MoodConstraintOnMeetings", new object[] { a.SimDescription }));
                        };
                    }
                    else
                    {
                        greyedOutTooltipCallback = delegate {
                            return(HoldMeetingInAtRabbitHole.LocalizeString(a.SimDescription, "NoTimeToHoldMeeting", new object[] { a.SimDescription }));
                        };
                    }
                }

                return(false);
            }
Example #2
0
        public override bool Test(InteractionInstance ii, out StringDelegate reason)
        {
            if (!base.Test(ii, out reason))
            {
                return(false);
            }

            Business career = OmniCareer.Career <Business>(Career);

            if ((career != null) && (career.CurLevel != null))
            {
                return(OmniCareer.HasMetric <MetricMeetingsHeld>(Career));
            }
            return(false);
        }
Example #3
0
        public override bool Test(InteractionInstance ii, out StringDelegate reason)
        {
            if (!base.Test(ii, out reason))
            {
                return(false);
            }

            Education career = OmniCareer.Career <Education>(Career);

            if ((career != null) && (career.CurLevel != null))
            {
                return(OmniCareer.HasMetric <MetricLecturesGiven>(Career));
            }
            return(false);
        }
Example #4
0
        public static bool CanReviewRabbitHole(Sim sim, RabbitHole rabbitHole)
        {
            Journalism journalism = OmniCareer.Career <Journalism>(sim.Occupation);

            if (!OmniCareer.HasMetric <MetricStoriesAndReviews>(sim.Occupation))
            {
                return(false);
            }
            foreach (Journalism.ReviewedRabbitHole hole in journalism.RabbitHolesReviewed)
            {
                if (hole.EventLocation == rabbitHole)
                {
                    return(false);
                }
            }
            return(true);
        }
Example #5
0
            public override bool Test(Sim a, ShowVenue target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback)
            {
                bool success = false;

                SkillBasedCareer career = SkillBasedCareerBooter.GetSkillBasedCareer(a, SkillNames.Guitar);

                if (career != null)
                {
                    success = true;

                    if (career.CareerLevel < NRaas.Careers.Settings.mBuskerLevelToGetPaidForConcerts)
                    {
                        greyedOutTooltipCallback = delegate
                        {
                            return(Common.Localize("Busker:ConcertLevelTooLow", a.IsFemale, new object[] { Music.LevelToGetPaidForConcerts - 3 }));
                        };
                        return(false);
                    }
                }
                else
                {
                    success = OmniCareer.HasMetric <MetricConcertsPerformed>(a.Occupation);
                }

                if (success)
                {
                    if (!target.PerformConcertAllowed(ref greyedOutTooltipCallback))
                    {
                        return(false);
                    }
                    if ((SimClock.Hours24 >= ShowVenue.kPerformConcertAvailableStartingAtHour) && (SimClock.Hours24 < ShowVenue.kPerformConcertAvailableEndingAtHour))
                    {
                        return(true);
                    }

                    greyedOutTooltipCallback = delegate
                    {
                        return(PerformConcert.LocalizeString(a.SimDescription, "CannotPerformConcert", new object[] { SimClockUtils.GetText(ShowVenue.kPerformConcertAvailableStartingAtHour), SimClockUtils.GetText(ShowVenue.kPerformConcertAvailableEndingAtHour) }));
                    };
                }
                return(false);
            }
Example #6
0
        public override bool ShouldAddTone(Career career)
        {
            try
            {
                if (!GameUtils.IsInstalled(mVersion))
                {
                    return(false);
                }

                if (!base.ShouldAddTone(career))
                {
                    return(false);
                }

                if (!string.IsNullOrEmpty(mBranch))
                {
                    if (career.CurLevelBranchName != mBranch)
                    {
                        return(false);
                    }
                }

                if (mMinLevel > career.CareerLevel)
                {
                    return(false);
                }

                if (mMaxLevel < career.CareerLevel)
                {
                    return(false);
                }

                if (career.OwnerDescription == null)
                {
                    return(false);
                }

                if (career.OwnerDescription.SkillManager == null)
                {
                    return(false);
                }

                if (mMetrics.Count > 0)
                {
                    foreach (MetricRate rate in mMetrics)
                    {
                        switch (rate.mMetric)
                        {
                        case MetricRate.MetricType.Reports:
                            LawEnforcement law = OmniCareer.Career <LawEnforcement>(career);
                            if (law != null)
                            {
                                if (!OmniCareer.HasMetric <LawEnforcement.MetricReportsWritten>(career))
                                {
                                    return(false);
                                }
                            }
                            break;

                        case MetricRate.MetricType.StoriesAndReviews:
                            Journalism journalism = OmniCareer.Career <Journalism>(career);
                            if (journalism != null)
                            {
                                if (!OmniCareer.HasMetric <Journalism.MetricStoriesAndReviews>(career))
                                {
                                    return(false);
                                }
                            }
                            break;
                        }
                    }
                }

                if (mSkills.Count > 0)
                {
                    bool needed = false;

                    foreach (SkillRate skill in mSkills)
                    {
                        if (mMustHaveVisibleSkill)
                        {
                            if (!career.OwnerDescription.SkillManager.IsPlayerVisible(skill.mSkill))
                            {
                                return(false);
                            }
                        }

                        if (skill.mSkill == SkillNames.Athletic)
                        {
                            if ((career.OwnerDescription.CreatedSim != null) &&
                                (career.OwnerDescription.CreatedSim.BuffManager != null) &&
                                (career.OwnerDescription.CreatedSim.BuffManager.HasElement(BuffNames.Fatigued)))
                            {
                                return(false);
                            }
                        }

                        if (mOnlyMetric)
                        {
                            bool found = false;
                            foreach (PerfMetric metric in career.CurLevel.Metrics)
                            {
                                MetricSkillX skillMetric = metric as MetricSkillX;
                                if (skillMetric == null)
                                {
                                    continue;
                                }

                                if (skillMetric.SkillGuid == skill.mSkill)
                                {
                                    found = true;
                                    break;
                                }
                            }

                            if (!found)
                            {
                                return(false);
                            }
                        }

                        Skill simSkill = career.OwnerDescription.SkillManager.GetSkill <Skill>(skill.mSkill);
                        if ((simSkill == null) || (simSkill.SkillLevel < simSkill.MaxSkillLevel))
                        {
                            needed = true;
                        }
                    }

                    if ((!needed) && (mOnlySkill))
                    {
                        return(false);
                    }
                }

                return(true);
            }
            catch (Exception exception)
            {
                Common.Exception(career.OwnerDescription, exception);
            }

            return(false);
        }