diff --git a/1.1/Assemblies/Rimworld-Animations.dll b/1.1/Assemblies/Rimworld-Animations.dll
index c87398b..1fce4e7 100644
Binary files a/1.1/Assemblies/Rimworld-Animations.dll and b/1.1/Assemblies/Rimworld-Animations.dll differ
diff --git a/Rimworld-Animations.csproj b/Rimworld-Animations.csproj
index d2eea40..f56b6d4 100644
--- a/Rimworld-Animations.csproj
+++ b/Rimworld-Animations.csproj
@@ -96,7 +96,7 @@
-
+
diff --git a/Source/Comps/CompBodyAnimator.cs b/Source/Comps/CompBodyAnimator.cs
index 96270d8..e3277f3 100644
--- a/Source/Comps/CompBodyAnimator.cs
+++ b/Source/Comps/CompBodyAnimator.cs
@@ -35,7 +35,7 @@ namespace Rimworld_Animations {
}
}
private bool Animating;
- private bool mirror = false, quiver = false;
+ private bool mirror = false, quiver = false, shiver = false;
private int actor;
private int animTicks = 0, stageTicks = 0, clipTicks = 0;
@@ -92,7 +92,7 @@ namespace Rimworld_Animations {
anchor = thing.Position.ToVector3Shifted();
}
}
- public void StartAnimation(AnimationDef anim, int actor, bool mirror = false) {
+ public void StartAnimation(AnimationDef anim, int actor, bool mirror = false, bool shiver = false) {
isAnimating = true;
@@ -115,6 +115,7 @@ namespace Rimworld_Animations {
clipTicks = 0;
quiver = false;
+ this.shiver = shiver && AnimationSettings.rapeShiver;
//tick once for initialization
tickAnim();
@@ -202,7 +203,7 @@ namespace Rimworld_Animations {
public void calculateDrawValues() {
deltaPos = new Vector3(clip.BodyOffsetX.Evaluate(clipPercent) * (mirror ? -1 : 1), clip.layer.AltitudeFor(), clip.BodyOffsetZ.Evaluate(clipPercent));
- bodyAngle = (clip.BodyAngle.Evaluate(clipPercent) + (quiver ? (Rand.Value * 2f) - 1f : 0f)) * (mirror ? -1 : 1);
+ bodyAngle = (clip.BodyAngle.Evaluate(clipPercent) + (quiver || shiver ? ((Rand.Value * AnimationSettings.shiverIntensity) - (AnimationSettings.shiverIntensity / 2f)) : 0f)) * (mirror ? -1 : 1);
headAngle = clip.HeadAngle.Evaluate(clipPercent) * (mirror ? -1 : 1);
bodyFacing = mirror ? new Rot4((int)clip.BodyFacing.Evaluate(clipPercent)).Opposite : new Rot4((int)clip.BodyFacing.Evaluate(clipPercent));
diff --git a/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs b/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs
index 5f19afb..bac41d5 100644
--- a/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs
+++ b/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs
@@ -94,9 +94,9 @@ namespace Rimworld_Animations {
pawnsToAnimate[i].TryGetComp().setAnchor(pos);
}
-
- pawnsToAnimate[i].TryGetComp().StartAnimation(anim, i, mirror);
+ bool shiver = pawnsToAnimate[i].jobs.curDriver is JobDriver_SexBaseRecieverRaped;
+ pawnsToAnimate[i].TryGetComp().StartAnimation(anim, i, mirror, shiver);
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).ticks_left = anim.animationTimeTicks;
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).ticksLeftThisToil = anim.animationTimeTicks;
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).duration = anim.animationTimeTicks;
diff --git a/Source/Settings/Animation_Settings.cs b/Source/Settings/AnimationSettings.cs
similarity index 64%
rename from Source/Settings/Animation_Settings.cs
rename to Source/Settings/AnimationSettings.cs
index 6a8defe..2e783fb 100644
--- a/Source/Settings/Animation_Settings.cs
+++ b/Source/Settings/AnimationSettings.cs
@@ -9,10 +9,13 @@ using UnityEngine;
namespace Rimworld_Animations {
public class AnimationSettings : ModSettings {
- public static bool orgasmQuiver;
+ public static bool orgasmQuiver, rapeShiver;
+ public static float shiverIntensity = 2f;
public override void ExposeData() {
Scribe_Values.Look(ref orgasmQuiver, "orgasmQuiver");
+ Scribe_Values.Look(ref rapeShiver, "rapeShiver");
+ Scribe_Values.Look(ref shiverIntensity, "shiverIntensity", 2f);
base.ExposeData();
}
@@ -29,6 +32,11 @@ namespace Rimworld_Animations {
listingStandard.Begin(inRect);
listingStandard.CheckboxLabeled("Enable Orgasm Quiver", ref AnimationSettings.orgasmQuiver);
+ listingStandard.CheckboxLabeled("Enable Rape Shiver", ref AnimationSettings.rapeShiver);
+
+ listingStandard.Label("Shiver/Quiver Intensity (default 2): " + AnimationSettings.shiverIntensity);
+ AnimationSettings.shiverIntensity = listingStandard.Slider(AnimationSettings.shiverIntensity, 0.0f, 12f);
+
listingStandard.End();
base.DoSettingsWindowContents(inRect);
}