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); }
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); }
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); }
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); }
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); }
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); }