Example #1
0
        public static void OnAccept(Sim actor, Sim target, string interaction, ActiveTopic topic, InteractionInstance i)
        {
            try
            {
                // Reset the attraction so it is recalculated now
                RelationshipEx.CalculateAttractionScore(Relationship.Get(target.SimDescription, actor.SimDescription, false), true);

                int score = (int)RelationshipEx.GetAttractionScore(target.SimDescription, actor.SimDescription, true);

                int index = score / 10;
                if (index >= 10)
                {
                    index = 9;
                }
                else if (index < 0)
                {
                    index = 0;
                }

                Common.Notify(Common.Localize("CheckAttraction:Result" + index, actor.IsFemale, target.IsFemale, new object[] { actor, target }), actor.ObjectId, target.ObjectId, StyledNotification.NotificationStyle.kSimTalking);
            }
            catch (Exception e)
            {
                Common.Exception(actor, target, e);
            }
        }
Example #2
0
        protected override bool AllowRow(SimDescription item)
        {
            if (item == Me)
            {
                return(false);
            }

            switch (mType)
            {
            case Type.Matchmaker:
                if (item.Partner != null)
                {
                    return(false);
                }
                break;

            default:
                if (SimTypes.IsDead(item))
                {
                    return(false);
                }
                break;
            }

            string reason;
            GreyedOutTooltipCallback greyedOutTooltipCallback = null;

            if (!CommonSocials.CanGetRomantic(Me, item, false, false, true, ref greyedOutTooltipCallback, out reason))
            {
                if (greyedOutTooltipCallback != null)
                {
                    Common.DebugNotify(item.FullName + Common.NewLine + greyedOutTooltipCallback());
                }
                return(false);
            }

            switch (mType)
            {
            case Type.Matchmaker:
            case Type.ScanRoom:
                if (Woohooer.Settings.mOnlyResidentMatchmaker)
                {
                    if (item.LotHome == null)
                    {
                        return(false);
                    }
                }

                int score = (int)RelationshipEx.GetAttractionScore(item, Me, true);

                mScores.Add(item, score);

                return(score >= mMinimum);

            default:
                return(true);
            }
        }
Example #3
0
        public static int GetScoring(Sim actor, Sim target, string scoringName, bool checkAffair, bool absolute)
        {
            if (actor == target)
            {
                return(0);
            }

            int score = 0;

            if (scoringName == "Attraction")
            {
                score = (int)RelationshipEx.GetAttractionScore(actor.SimDescription, target.SimDescription, false);
            }
            else
            {
                IListedScoringMethod scoring = null;

                if (checkAffair)
                {
                    if ((actor.Partner != null) && ((target == null) || (actor.Partner != target.SimDescription)))
                    {
                        scoring = ScoringLookup.GetScoring(scoringName + "Affair");
                    }
                    else
                    {
                        scoring = ScoringLookup.GetScoring(scoringName + "Single");
                    }
                }
                else
                {
                    scoring = ScoringLookup.GetScoring(scoringName);
                }

                if (scoring == null)
                {
                    return(1);
                }

                if (scoring is DualSimListedScoringMethod)
                {
                    score = scoring.IScore(new DualSimScoringParameters(target.SimDescription, actor.SimDescription, absolute));
                }
                else
                {
                    score = scoring.IScore(new SimScoringParameters(actor.SimDescription, absolute));
                }
            }

            return(score);
        }
Example #4
0
        public static void OnAccept(Sim actor, Sim target, string interaction, ActiveTopic topic, InteractionInstance i)
        {
            try
            {
                int score = (int)RelationshipEx.GetAttractionScore(actor.SimDescription, target.SimDescription, true);

                int index = score / 25;
                if (index >= 4)
                {
                    index = 3;
                }
                else if (index < 0)
                {
                    index = 0;
                }

                Common.Notify(Common.Localize("GaugeAttraction:Result" + index, target.IsFemale, actor.IsFemale, new object[] { target, actor }), actor.ObjectId, target.ObjectId, StyledNotification.NotificationStyle.kSimTalking);
            }
            catch (Exception e)
            {
                Common.Exception(actor, target, e);
            }
        }