public override bool Test(Sim a, Computer target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback) { if (!SimClock.IsNightTime()) { greyedOutTooltipCallback = Common.DebugTooltip("Not Night Time"); return(false); } if (isAutonomous) { if (!mRandom) { greyedOutTooltipCallback = Common.DebugTooltip("Not Random"); return(false); } if (!Woohooer.Settings.mAutonomousComputer) { greyedOutTooltipCallback = Common.DebugTooltip("No Autonomous"); return(false); } if (ScoringLookup.GetScore("LikeProfessional", a.SimDescription) < 0) { greyedOutTooltipCallback = Common.DebugTooltip("Score Fail"); return(false); } if (!CommonWoohoo.SatisfiesCooldown(a, RandomUtil.GetRandomObjectFromList <Sim>(LotManager.Actors), isAutonomous, ref greyedOutTooltipCallback)) { greyedOutTooltipCallback = Common.DebugTooltip("Cooldown Fail"); return(false); } if (!CommonWoohoo.HasWoohooableObject(a.LotHome, a, RandomUtil.GetRandomObjectFromList <Sim>(LotManager.Actors))) { greyedOutTooltipCallback = Common.DebugTooltip("No Woohooable Objects Fail"); return(false); } if (GetPotentials(a).Count == 0) { greyedOutTooltipCallback = Common.DebugTooltip("No Choices"); return(false); } } else { if (!KamaSimtra.Settings.mShowRegisterInteraction) { greyedOutTooltipCallback = Common.DebugTooltip("User Hidden"); return(false); } } return(true); }
public override bool Test(Sim actor, Phone target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback) { if (base.Test(actor, target, isAutonomous, ref greyedOutTooltipCallback)) { if (isAutonomous) { if (!Woohooer.Settings.mWoohootyTextAutonomous[PersistedSettings.GetSpeciesIndex(actor)]) { return(false); } } if (!actor.IsAtHome) { greyedOutTooltipCallback = InteractionInstance.CreateTooltipCallback(TravelUtil.LocalizeString(actor.IsFemale, "NotAtHome", new object[] { actor })); return(false); } if (!base.CanSimInviteOver(actor, isAutonomous) || !base.CanInviteOverToLot(actor.LotCurrent, isAutonomous)) { greyedOutTooltipCallback = InteractionInstance.CreateTooltipCallback(TravelUtil.LocalizeString(actor.IsFemale, "CannotInviteOver", new object[] { actor })); return(false); } if (actor.SimDescription.IsEP11Bot) { if ((actor.TraitManager == null) || !actor.TraitManager.HasElement(TraitNames.CapacityToLoveChip)) { return(false); } } bool flag = false; bool flag2 = false; if (actor.SimDescription.Teen && Woohooer.Settings.AllowTeen(true)) { flag = true; } if (actor.SimDescription.Teen && Woohooer.Settings.AllowTeenAdult(true)) { flag2 = true; } bool locationTest = false; foreach (IMiniRelationship relationship in Relationship.GetMiniRelationships(actor.SimDescription)) { SimDescription description = SimDescription.Find(relationship.GetOtherSimDescriptionId(actor.SimDescription)); if (description != null && description.CreatedSim != null && description.CreatedSim.LotCurrent != actor.LotCurrent && !description.ChildOrBelow && description.IsHuman) { if (!flag && actor.SimDescription.Teen && description.Teen) { continue; } if (!flag2 && actor.SimDescription.Teen && description.YoungAdultOrAbove) { continue; } if (isAutonomous && !CommonSocials.CheckAutonomousGenderPreference(actor.SimDescription, description)) { continue; } if (isAutonomous && !CommonWoohoo.SatisfiesCooldown(actor, description.CreatedSim, isAutonomous, ref greyedOutTooltipCallback)) { continue; } if (!locationTest) { // only humans can use this so we don't need to keep scanning the lot each loop if (!CommonWoohoo.HasWoohooableObject(actor.LotHome, actor, description.CreatedSim)) { return(false); } else { locationTest = true; } } return(true); } } } return(false); }