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); } }
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); } }
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); }
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); } }