diff --git a/.gitignore b/.gitignore index 4ce6fdd..1c79e0c 100644 --- a/.gitignore +++ b/.gitignore @@ -337,4 +337,14 @@ ASALocalRun/ .localhistory/ # BeatPulse healthcheck temp database -healthchecksdb \ No newline at end of file +healthchecksdb +/Source/Patches/PawnAnimationPatches/HarmonyPatch_Pawn_DrawTracker.cs +/Source/Patches/PawnAnimationPatches/HarmonyPatch_PawnRotation.cs +/Source/Patches/PawnAnimationPatches/HarmonyPatch_PawnRenderer.cs +/Source/Patches/OtherModPatches/HarmonyPatch_ShowHairWithHats.cs +/Source/Patches/OtherModPatches/HarmonyPatch_FacialAnimation.cs +/Source/Patches/OtherModPatches/HarmonyPatch_DontShaveYourHead.cs +/Source/Patches/OtherModPatches/HarmonyPatch_CSL.cs +/Source/Patches/OtherModPatches/HarmonyPatch_AlienRace.cs +/Source/Patches/ThingAnimationPatches/HarmonyPatch_ThingDrawAt.cs +/Defs/AnimationDefs/Animations_SexToys.xml diff --git a/1.2/Assemblies/Rimworld-Animations.dll b/1.2/Assemblies/Rimworld-Animations.dll index f202842..6b5f9a8 100644 Binary files a/1.2/Assemblies/Rimworld-Animations.dll and b/1.2/Assemblies/Rimworld-Animations.dll differ diff --git a/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs b/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs index c4813f0..f5cb52d 100644 --- a/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs +++ b/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs @@ -121,8 +121,6 @@ namespace Rimworld_Animations { //they'll just do the thrusting anim } } - - } } diff --git a/Source/Patches/rjwPatches/HarmonyPatch_JoinInBedGiveJob.cs b/Source/Patches/rjwPatches/HarmonyPatch_JoinInBedGiveJob.cs index 7a8b573..f46f401 100644 --- a/Source/Patches/rjwPatches/HarmonyPatch_JoinInBedGiveJob.cs +++ b/Source/Patches/rjwPatches/HarmonyPatch_JoinInBedGiveJob.cs @@ -37,30 +37,27 @@ namespace Rimworld_Animations { if (pawn.mindState?.duty?.def == DutyDefOf.TravelOrLeave) { // TODO: Some guest pawns keep the TravelOrLeave duty the whole time, I think the ones assigned to guard the pack animals. // That's probably ok, though it wasn't the intention. - if (RJWSettings.DebugLogJoinInBed) Log.Message($"[RJW] JoinInBed.TryGiveJob:({xxx.get_pawnname(pawn)}): has TravelOrLeave, no time for lovin!"); + if (RJWSettings.DebugLogJoinInBed) ModLog.Message($"JoinInBed.TryGiveJob:({xxx.get_pawnname(pawn)}): has TravelOrLeave, no time for lovin [ANIM JOBGIVER]!"); return false; } - if (pawn.CurJob == null || pawn.CurJob.def == JobDefOf.LayDown) { - //--Log.Message(" checking pawn and abilities"); - if (xxx.can_fuck(pawn) || xxx.can_be_fucked(pawn)) { - //--Log.Message(" finding partner"); - Pawn partner = JobGiver_JoinInBed.find_pawn_to_fuck(pawn, pawn.Map); + if ((pawn.CurJob == null || pawn.CurJob.def == JobDefOf.LayDown) && CasualSex_Helper.CanHaveSex(pawn)) { + //--Log.Message(" finding partner"); + Pawn partner = CasualSex_Helper.find_partner(pawn, pawn.Map, bedsex: true); - //--Log.Message(" checking partner"); - if (partner == null) - return false; - - // Can never be null, since find checks for bed. - Building_Bed bed = partner.CurrentBed(); - - // Interrupt current job. - if (pawn.CurJob != null && pawn.jobs.curDriver != null) - pawn.jobs.curDriver.EndJobWith(JobCondition.InterruptForced); - - __result = JobMaker.MakeJob(DefDatabase.GetNamed("JoinInBedAnimation", true), partner, bed); + //--Log.Message(" checking partner"); + if (partner == null) return false; - } + + // Can never be null, since find checks for bed. + Building_Bed bed = partner.CurrentBed(); + + // Interrupt current job. + if (pawn.CurJob != null && pawn.jobs.curDriver != null) + pawn.jobs.curDriver.EndJobWith(JobCondition.InterruptForced); + + __result = JobMaker.MakeJob(DefDatabase.GetNamed("JoinInBedAnimation", true), partner, bed); + return false; } return false;