public override float RandomSelectionWeight(Pawn initiator, Pawn recipient)
        {
            ReligionSettings_ReligionTalks settings = initiator.GetReligionComponent().Religion.GetSettings <ReligionSettings_ReligionTalks>(SettingsTagDefOf.TalksTag);

            if (settings != null && settings.Interaction == this.interaction)
            {
                return(settings.BaseChanceOfConversation);
            }
            return(0f);
        }
        private float ChanceToConvert(Pawn initiator, Pawn recipient)
        {
            CompReligion initiatorComp = initiator.GetReligionComponent();
            CompReligion recipientComp = recipient.GetReligionComponent();
            ReligionSettings_ReligionTalks settings = initiatorComp.Religion.GetSettings <ReligionSettings_ReligionTalks>(SettingsTagDefOf.TalksTag);

            if (recipientComp.ReligionRestrictions.MayConvertByTalking)
            {
                float opinionFactor = settings.OpinionFactorCurve.Curve != null?settings.OpinionFactorCurve.Curve.Evaluate((float)recipient.relations.OpinionOf(initiator)) : 1f;

                float moodFactor = settings.MoodFactorCurve.Curve != null?settings.MoodFactorCurve.Curve.Evaluate((float)recipient.needs.mood.CurLevel) : 1f;

                float compabilityFactor = recipientComp.ReligionCompability.CompabilityFor(initiatorComp.Religion);

                return(1f * opinionFactor * moodFactor * compabilityFactor);
            }
            else
            {
                return(0f);
            }
        }