public override float Calculate(Pawn observer, Pawn assessed) { float affairReluctance = 1f; float affairReluctance2 = 1f; if (observerCuckold != null) { affairReluctance = RelationshipUtility.AffairReluctance(RelationshipUtility.MostAdvancedRelationshipBetween(observer, observerCuckold)); affairReluctance *= Mathf.Pow(Mathf.InverseLerp(-100f, 5f, observer.relations.OpinionOf(observerCuckold)), -0.33f); } if (assessedCuckold != null) { affairReluctance2 = RelationshipUtility.AffairReluctance(RelationshipUtility.MostAdvancedRelationshipBetween(assessed, assessedCuckold)); affairReluctance2 *= Mathf.Pow(Mathf.InverseLerp(-100f, 5f, observer.relations.OpinionOf(assessedCuckold)), -0.33f); } return(Mathf.Min(affairReluctance, affairReluctance2)); }