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