public override bool Install(ManagerSituation main, bool initial) { PromSituation.Shutdown(); PromSituation.sAlarm = AlarmHandle.kInvalidHandle; return(base.Install(main, initial)); }
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); }
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); }
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); }
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); }
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); }