From 8c3b1903024287650f6cd1f654d5732c789520ef Mon Sep 17 00:00:00 2001
From: eggsalad <17915-eggsalad@users.noreply.gitgud.io>
Date: Wed, 7 Oct 2020 10:12:36 -0700
Subject: [PATCH] Make Word of Love psycast check RJW sexuality

---
 Source/Harmony/patch_wordoflove.cs | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 Source/Harmony/patch_wordoflove.cs

diff --git a/Source/Harmony/patch_wordoflove.cs b/Source/Harmony/patch_wordoflove.cs
new file mode 100644
index 000000000..612a08547
--- /dev/null
+++ b/Source/Harmony/patch_wordoflove.cs
@@ -0,0 +1,26 @@
+using System;
+using RimWorld;
+using Verse;
+using HarmonyLib;
+
+namespace rjw
+{
+	[HarmonyPatch(typeof(CompAbilityEffect_WordOfLove), "ValidateTarget")]
+	internal static class PATCH_CompAbilityEffect_WordOfLove_ValidateTarget
+	{
+		[HarmonyPrefix]
+		static bool Prefix(ref LocalTargetInfo target, LocalTargetInfo ___selectedTarget, ref bool __result)
+		{
+			Pawn pawn = ___selectedTarget.Pawn;
+			Pawn pawn2 = target.Pawn;
+			if (pawn != pawn2 && pawn != null && pawn2 != null)
+			{
+				__result = !xxx.is_asexual(pawn) && (xxx.is_bisexual(pawn) || xxx.is_pansexual(pawn) || (xxx.is_heterosexual(pawn) && pawn.gender != pawn2.gender) || (xxx.is_homosexual(pawn) && pawn.gender == pawn2.gender));
+				if (__result == false)
+				{ Messages.Message("AbilityCantApplyWrongAttractionGender".Translate(pawn, pawn2), pawn, MessageTypeDefOf.RejectInput, false); }
+				return false;
+			}
+			return true;
+		}
+	}
+}
-- 
GitLab