示例#1
0
            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);
            }
示例#2
0
            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);
            }