Ejemplo n.º 1
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);
            }
Ejemplo n.º 2
0
        protected static void GetPotentials(Sim actor, Computer target, bool autonomous, bool ignoreGender, List <Sim> unknown, List <Sim> known)
        {
            foreach (Sim sim in LotManager.Actors)
            {
                if (sim == null)
                {
                    continue;
                }

                if (actor.Household == sim.Household)
                {
                    continue;
                }

                //msg += Common.NewLine + sim.FullName;

                string reason;
                GreyedOutTooltipCallback callback = null;
                if (!CommonSocials.CanGetRomantic(sim, actor, autonomous, true, true, ref callback, out reason))
                {
                    //msg += Common.NewLine + " " + callback();
                    continue;
                }

                if (!ignoreGender)
                {
                    if (!CommonSocials.CheckAutonomousGenderPreference(sim.SimDescription, actor.SimDescription))
                    {
                        //msg += Common.NewLine + " Not Gender Preference";
                        continue;
                    }
                }

                if (!target.CanSimBeChattedWith(actor, sim))
                {
                    //msg += Common.NewLine + " Not CanBeChatted";
                    continue;
                }

                if (unknown != null)
                {
                    int score = ScoringLookup.GetScore("LikeCyberWoohoo", sim.SimDescription) + KamaSimtra.Settings.mCyberWoohooBaseChanceScoring;
                    if (score < 0)
                    {
                        //msg += Common.NewLine + " Score Fail " + score;
                        continue;
                    }
                }

                if (Relationship.Get(actor, sim, false) == null)
                {
                    if (unknown != null)
                    {
                        unknown.Add(sim);
                    }
                }
                else
                {
                    known.Add(sim);
                }
            }
        }