diff --git a/1.3/Assemblies/0MultiplayerAPI.dll b/1.3/Assemblies/0MultiplayerAPI.dll new file mode 100644 index 0000000..38b8a0e Binary files /dev/null and b/1.3/Assemblies/0MultiplayerAPI.dll differ diff --git a/1.3/Assemblies/RJW.dll b/1.3/Assemblies/RJW.dll new file mode 100644 index 0000000..ac6daf7 Binary files /dev/null and b/1.3/Assemblies/RJW.dll differ diff --git a/1.3/Assemblies/Rimworld-Animations.dll b/1.3/Assemblies/Rimworld-Animations.dll index ab1a9ab..f4e29c9 100644 Binary files a/1.3/Assemblies/Rimworld-Animations.dll and b/1.3/Assemblies/Rimworld-Animations.dll differ diff --git a/1.3/Source/AnimationUtility.cs b/1.3/Source/AnimationUtility.cs index bc75c1f..06e8389 100644 --- a/1.3/Source/AnimationUtility.cs +++ b/1.3/Source/AnimationUtility.cs @@ -4,6 +4,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using RimWorld; +using rjw.Modules.Interactions.Helpers; +using rjw.Modules.Interactions.Objects; using UnityEngine; using Verse; using Verse.AI; @@ -16,9 +18,11 @@ namespace Rimworld_Animations { */ public static AnimationDef tryFindAnimation(ref List participants, rjw.xxx.rjwSextype sexType = 0, rjw.SexProps sexProps = null) { + + InteractionWithExtension interaction = InteractionHelper.GetWithExtension(sexProps.dictionaryKey); + participants = participants.OrderBy(p => p.jobs.curDriver is rjw.JobDriver_SexBaseInitiator) - .OrderBy(p => p == sexProps.giver) .OrderBy(p => rjw.xxx.can_fuck(p)) .ToList(); diff --git a/1.3/Source/Comps/CompBodyAnimator.cs b/1.3/Source/Comps/CompBodyAnimator.cs index 52d60f0..3d0b8e8 100644 --- a/1.3/Source/Comps/CompBodyAnimator.cs +++ b/1.3/Source/Comps/CompBodyAnimator.cs @@ -113,7 +113,10 @@ namespace Rimworld_Animations { } public void StartAnimation(AnimationDef anim, List actors, int actor, bool mirror = false, bool shiver = false, bool fastAnimForQuickie = false) { - actorsInCurrentAnimation = actors; + if (anim.actors.Count <= actor) + { + return; + } AlienRaceOffset raceOffset = anim?.actors[actor]?.raceOffsets?.Find(x => x.defName == pawn.def.defName); if (raceOffset != null) { diff --git a/1.3/Source/Patches/RJWPatches/JobDrivers/HarmonyPatch_JobDriver_SexBaseInitiator.cs b/1.3/Source/Patches/RJWPatches/JobDrivers/HarmonyPatch_JobDriver_SexBaseInitiator.cs index 9ebf355..59ac574 100644 --- a/1.3/Source/Patches/RJWPatches/JobDrivers/HarmonyPatch_JobDriver_SexBaseInitiator.cs +++ b/1.3/Source/Patches/RJWPatches/JobDrivers/HarmonyPatch_JobDriver_SexBaseInitiator.cs @@ -83,7 +83,7 @@ namespace Rimworld_Animations { bool mirror = GenTicks.TicksGame % 2 == 0; IntVec3 pos = pawn.Position; - + for (int i = 0; i < anim.actors.Count; i++) { pawnsToAnimate[i].TryGetComp().isAnimating = false; diff --git a/Rimworld-Animations.csproj b/Rimworld-Animations.csproj index 1d6c58a..6eb4190 100644 --- a/Rimworld-Animations.csproj +++ b/Rimworld-Animations.csproj @@ -45,7 +45,6 @@ ..\rjw\1.3\Assemblies\RJW.dll - False