facial anim patch

This commit is contained in:
c0ffeeeeeeee 2020-09-15 13:52:15 -07:00
parent f293a09f58
commit 2c6732310c
4 changed files with 90 additions and 12 deletions

View File

@ -1,3 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationFindMod">
<mods>
<li>[NL] Facial Animation - WIP</li>
</mods>
<match Class="PatchOperationSequence">
<success>Always</success>
<operations>
<li Class="PatchOperationAdd">
<xpath>/Defs/FacialAnimation.FaceAnimationDef[defName="Lovin" or defName="Lovin2"]/targetJobs</xpath>
<success>Always</success>
<value>
<li>RJW_Masturbate</li>
<li>GettinBred</li>
<li>Bestiality</li>
<li>BestialityForFemale</li>
<li>ViolateCorpse</li>
<li>Quickie</li>
<li>GettingQuickie</li>
<li>GettinRaped</li>
<li>JoinInBed</li>
<li>GettinLoved</li>
<li>GettinLicked</li>
<li>GettinSucked</li>
<li>WhoreIsServingVisitors</li>
<li>JoinInBedAnimation</li>
<li>GettinLovedAnimation</li>
</value>
</li>
<li Class="PatchOperationAdd">
<xpath>/Defs/FacialAnimation.FaceAnimationDef[defName="WaitCombat" or defName="Wait_Combat_Rare"]/targetJobs</xpath>
<success>Always</success>
<value>
<li>RapeComfortPawn</li>
<li>RandomRape</li>
<li>RapeEnemy</li>
</value>
</li>
<li Class="PatchOperationAdd">
<xpath>/Defs/FacialAnimation.FaceAnimationDef[defName="StandAndBeSociallyActive"]/targetJobs</xpath>
<success>Always</success>
<value>
<li>WhoreInvitingVisitors</li>
</value>
</li>
<li Class="PatchOperationAdd">
<xpath>/Defs/FacialAnimation.FaceAnimationDef[defName="Wear" or defName="Wear2" or defName="Wear3"]/targetJobs</xpath>
<success>Always</success>
<value>
<li>CleanSelf</li>
<li>StruggleInBondageGear</li>
</value>
</li>
<li Class="PatchOperationFindMod">
<mods>
<li>Rimworld-Animations</li>
</mods>
<match Class="PatchOperationSequence">
<success>Always</success>
<operations>
<li Class="PatchOperationRemove">
<xpath>/Defs/FacialAnimation.FaceAnimationDef[defName="Lovin" or defName="Lovin2"]/animationFrames/li[1]/headOffset</xpath>
<success>Always</success>
</li>
<li Class="PatchOperationRemove">
<xpath>/Defs/FacialAnimation.FaceAnimationDef[defName="Lovin"]/animationFrames/li[2]/headOffset</xpath>
<success>Always</success>
</li>
<li Class="PatchOperationRemove">
<xpath>/Defs/FacialAnimation.FaceAnimationDef[defName="Lovin"]/animationFrames/li[3]/headOffset</xpath>
<success>Always</success>
</li>
</operations>
</match>
</li>
</operations>
</match>
</Operation>
</Patch>
<!--
OLD PATCH
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<Operation Class="PatchOperationFindMod">
@ -42,4 +126,5 @@
</operations>
</match>
</Operation>
</Patch>
</Patch>
-->

View File

@ -242,7 +242,7 @@ namespace Rimworld_Animations {
if (optionsWithSexTypeAndInitiator.Any()) {
if (AnimationSettings.debugMode)
Log.Message("Selecting animation for rjwSexType " + sexType.ToStringSafe() + " and initiators...");
return optionsWithSexType.RandomElement();
return optionsWithSexTypeAndInitiator.RandomElement();
}
if (optionsWithSexType.Any()) {

View File

@ -20,13 +20,6 @@ namespace Rimworld_Animations {
if (LoadedModManager.RunningModsListForReading.Any(x => x.Name == "[NL] Facial Animation - WIP")) {
(new Harmony("rjw")).Patch(AccessTools.Method(AccessTools.TypeByName("FacialAnimation.DrawFaceGraphicsComp"), "DrawGraphics"),
prefix: new HarmonyMethod(AccessTools.Method(typeof(Patch_FacialAnimation), "Prefix")));
(new Harmony("rjw")).Patch(AccessTools.Method(AccessTools.TypeByName("FacialAnimation.FaceAnimationDef"), "IsSame", new Type[] { typeof(JobDef) }),
prefix: new HarmonyMethod(AccessTools.Method(typeof(Patch_FacialAnimation), "Prefix_IsSameA")));
(new Harmony("rjw")).Patch(AccessTools.Method(AccessTools.TypeByName("FacialAnimation.FaceAnimationDef"), "IsSame", new Type[] { typeof(string) }),
prefix: new HarmonyMethod(AccessTools.Method(typeof(Patch_FacialAnimation), "Prefix_IsSameB")));
}
}))();
}
@ -48,7 +41,7 @@ namespace Rimworld_Animations {
return true;
}
/*
public static List<string> rjwLovinDefNames = new List<string>{
"Lovin",
"Quickie",
@ -78,7 +71,6 @@ namespace Rimworld_Animations {
"RapeEnemy"
};
public static bool Prefix_IsSameA(JobDef job, string ___jobDef, ref bool __result) {
if(___jobDef != null && ___jobDef == "Lovin" && job?.defName != null && rjwLovinDefNames.Contains(job?.defName)) {
@ -107,5 +99,6 @@ namespace Rimworld_Animations {
return true;
}
*/
}
}
}