From 1cfbc2c83e1a81c1e3ae71c7ae25dd109d040bef Mon Sep 17 00:00:00 2001 From: c0ffee Date: Mon, 12 Apr 2021 10:43:58 -0700 Subject: [PATCH] Various fixes --- Assemblies/RJW-Events.dll | Bin 17920 -> 18432 bytes RJW-Events.csproj | 2 ++ Source/JobDrivers/JobDriver_OrgySex.cs | 9 ++++--- .../JobDrivers/JobDriver_OrgySexReceiver.cs | 3 ++- Source/JobGivers/JobGiver_FindOrgyPartner.cs | 1 + .../HarmonyPatch_ReclotheOnRemovePawn.cs | 23 +++++++++++++++++ .../Patches/HarmonyPatch_StayNudeForOrgy.cs | 24 ++++++++++++++++++ 7 files changed, 57 insertions(+), 5 deletions(-) create mode 100644 Source/Patches/HarmonyPatch_ReclotheOnRemovePawn.cs create mode 100644 Source/Patches/HarmonyPatch_StayNudeForOrgy.cs diff --git a/Assemblies/RJW-Events.dll b/Assemblies/RJW-Events.dll index 4c12f274577236e53e431663d96920a714f0b175..260ac6a4e5b27c238bc398d8971e335d52e7b5b3 100644 GIT binary patch delta 7780 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 delta 7310 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 hoX=TiHPt + + diff --git a/Source/JobDrivers/JobDriver_OrgySex.cs b/Source/JobDrivers/JobDriver_OrgySex.cs index d9f0340..500f69a 100644 --- a/Source/JobDrivers/JobDriver_OrgySex.cs +++ b/Source/JobDrivers/JobDriver_OrgySex.cs @@ -23,12 +23,13 @@ namespace RJW_Events { base.setup_ticks(); JobDef PartnerJob = DefDatabase.GetNamed("GettinOrgySex", true); - this.FailOnDespawnedNullOrForbidden(this.iTarget); + this.FailOnDespawnedOrNull(this.iTarget); this.FailOn(() => !this.Partner.health.capacities.CanBeAwake); this.FailOn(() => this.pawn.IsFighting()); this.FailOn(() => this.Partner.IsFighting()); this.FailOn(() => this.pawn.Drafted); - yield return Toils_Goto.GotoThing(this.iTarget, PathEndMode.OnCell); + this.FailOn(() => this.Partner.Drafted); + yield return Toils_Goto.GotoThing(this.iTarget, PathEndMode.ClosestTouch); yield return new Toil { defaultCompleteMode = ToilCompleteMode.Delay, @@ -39,7 +40,7 @@ namespace RJW_Events tickAction = delegate () { this.pawn.GainComfortFromCellIfPossible(false); - if (this.pawn.Position.DistanceTo(this.Partner.Position) <= 1f) + if (this.pawn.Position.DistanceTo(this.Partner.Position) <= 3f) { this.ReadyForNextToil(); } @@ -91,7 +92,7 @@ namespace RJW_Events toil.AddFinishAction(delegate { this.End(); - if(LordUtility.GetLord(pawn)?.CurLordToil != null && !(LordUtility.GetLord(pawn).CurLordToil is LordToil_End)) + if(LordUtility.GetLord(pawn)?.LordJob != null && LordUtility.GetLord(pawn).LordJob is LordJob_Joinable_Orgy && !(LordUtility.GetLord(pawn).CurLordToil is LordToil_End)) SexUtility.DrawNude(pawn); }); yield return toil; diff --git a/Source/JobDrivers/JobDriver_OrgySexReceiver.cs b/Source/JobDrivers/JobDriver_OrgySexReceiver.cs index 4596cd1..112957e 100644 --- a/Source/JobDrivers/JobDriver_OrgySexReceiver.cs +++ b/Source/JobDrivers/JobDriver_OrgySexReceiver.cs @@ -35,6 +35,7 @@ namespace RJW_Events this.ticks_between_hearts -= 25; } this.FailOnDespawnedOrNull(this.iTarget); + this.FailOn(() => !(Partner.jobs.curDriver is JobDriver_Sex)); this.FailOn(() => !base.Partner.health.capacities.CanBeAwake); this.FailOn(() => this.pawn.Drafted); this.FailOn(() => base.Partner.Drafted); @@ -69,7 +70,7 @@ namespace RJW_Events return JobCondition.Succeeded; } return JobCondition.Ongoing; - }); + }); toil.socialMode = RandomSocialMode.Off; return toil; } diff --git a/Source/JobGivers/JobGiver_FindOrgyPartner.cs b/Source/JobGivers/JobGiver_FindOrgyPartner.cs index 2f08b90..d8ae726 100644 --- a/Source/JobGivers/JobGiver_FindOrgyPartner.cs +++ b/Source/JobGivers/JobGiver_FindOrgyPartner.cs @@ -79,6 +79,7 @@ namespace RJW_Events { if(targets.TryRandomElementByWeight((Pawn p) => { + if (p == pawn1) return 0; float chance = pawn1.relations.SecondaryRomanceChanceFactor(p); if(!(p.jobs.curDriver is JobDriver_Sex)) { diff --git a/Source/Patches/HarmonyPatch_ReclotheOnRemovePawn.cs b/Source/Patches/HarmonyPatch_ReclotheOnRemovePawn.cs new file mode 100644 index 0000000..832dc2e --- /dev/null +++ b/Source/Patches/HarmonyPatch_ReclotheOnRemovePawn.cs @@ -0,0 +1,23 @@ +using HarmonyLib; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using Verse.AI.Group; + +namespace RJW_Events +{ + [HarmonyPatch(typeof(Lord), "RemovePawn")] + public static class HarmonyPatch_ReclotheOnRemovePawn + { + public static void Postfix(Lord __instance, Pawn p) + { + if(__instance?.LordJob != null && __instance.LordJob is LordJob_Joinable_Orgy) + { + p.Drawer.renderer.graphics.ResolveApparelGraphics(); + } + } + } +} diff --git a/Source/Patches/HarmonyPatch_StayNudeForOrgy.cs b/Source/Patches/HarmonyPatch_StayNudeForOrgy.cs new file mode 100644 index 0000000..10c8196 --- /dev/null +++ b/Source/Patches/HarmonyPatch_StayNudeForOrgy.cs @@ -0,0 +1,24 @@ +using HarmonyLib; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using Verse.AI.Group; + +namespace RJW_Events +{ + [HarmonyPatch(typeof(PawnGraphicSet), "ResolveApparelGraphics")] + public static class HarmonyPatch_StayNudeForOrgy + { + public static bool Prefix(PawnGraphicSet __instance) + { + if(LordUtility.GetLord(__instance.pawn)?.LordJob != null && LordUtility.GetLord(__instance.pawn).LordJob is LordJob_Joinable_Orgy) + { + return false; + } + return true; + } + } +}