diff --git a/1.5/Assemblies/Rimworld-Animations.dll b/1.5/Assemblies/Rimworld-Animations.dll
index 1f8be2a..0b2fedc 100644
Binary files a/1.5/Assemblies/Rimworld-Animations.dll and b/1.5/Assemblies/Rimworld-Animations.dll differ
diff --git a/1.5/Defs/AnimationDefs/Backup.rar b/1.5/Defs/AnimationDefs/Backup.rar
new file mode 100644
index 0000000..756fe55
Binary files /dev/null and b/1.5/Defs/AnimationDefs/Backup.rar differ
diff --git a/1.5/Defs/AnimationDefs/Cowgirl/AnimationPropDef_Cowgirl_Xray.xml b/1.5/Defs/AnimationDefs/Cowgirl/AnimationPropDef_Cowgirl_Xray.xml
index d41bde0..23b5562 100644
--- a/1.5/Defs/AnimationDefs/Cowgirl/AnimationPropDef_Cowgirl_Xray.xml
+++ b/1.5/Defs/AnimationDefs/Cowgirl/AnimationPropDef_Cowgirl_Xray.xml
@@ -19,8 +19,8 @@
Head
95
TexPathVariants_Cowgirl_Xray
-
-
+
+
diff --git a/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage1.xml b/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage1.xml
index 6d49621..0955fd5 100644
--- a/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage1.xml
+++ b/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage1.xml
@@ -14,7 +14,6 @@
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
@@ -22,15 +21,14 @@
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
+ Slimy
110
180
true
(0, 0, -0.75)
- (1, 1, 1)
South
@@ -38,8 +36,8 @@
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
+ Slimy
@@ -53,13 +51,12 @@
0
0
true
- (1, 1, 1)
South
-
+
RimNude_Penis
Rimworld_Animations.AnimationWorker_KeyframesExtended
@@ -69,7 +66,6 @@
190
true
(0, 1, 0)
- (1, 1, 1)
South
@@ -77,7 +73,6 @@
170
true
(0, 1, 0)
- (1, 1, 1)
South
@@ -85,7 +80,6 @@
180
true
(0, 1, 0)
- (1, 1, 1)
South
@@ -107,7 +101,6 @@
15
true
(0.2, 2, 0.5)
- (1, 1, 1)
South
@@ -115,7 +108,6 @@
15
true
(0.1, 2, 0.5)
- (1, 1, 1)
South
@@ -123,7 +115,6 @@
0
true
(0, 2, 0.2)
- (1, 1, 1)
South
@@ -131,7 +122,6 @@
0
true
(0, 2, 0.23)
- (1, 1, 1)
South
@@ -146,7 +136,6 @@
0
-15
true
- (1, 1, 1)
South
@@ -154,14 +143,12 @@
-15
true
(0, 0, -0.05)
- (1, 1, 1)
South
110
0
true
- (1, 1, 1)
South
diff --git a/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage2_1.xml b/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage2_1.xml
index 44b5ca9..0d8fac2 100644
--- a/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage2_1.xml
+++ b/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage2_1.xml
@@ -14,7 +14,6 @@
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
@@ -22,15 +21,14 @@
180
true
(0, 0, -0.65)
- (1, 1, 1)
South
+ Fuck
30
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
@@ -45,13 +43,12 @@
0
0
true
- (1, 1, 1)
South
-
+
RimNude_Penis
Rimworld_Animations.AnimationWorker_KeyframesExtended
@@ -61,7 +58,6 @@
180
true
(0, 1, 0)
- (1, 1, 1)
South
@@ -83,7 +79,6 @@
0
true
(0, 2, 0.23)
- (1, 1, 1)
South
@@ -91,7 +86,6 @@
0
true
(0, 2, 0.43)
- (1, 1, 1)
South
@@ -99,7 +93,6 @@
0
true
(0, 2, 0.23)
- (1, 1, 1)
South
@@ -114,7 +107,6 @@
0
0
true
- (1, 1, 1)
South
@@ -122,14 +114,12 @@
0
true
(0, 0, -0.04)
- (1, 1, 1)
South
30
0
true
- (1, 1, 1)
South
diff --git a/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage2_2.xml b/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage2_2.xml
index 0b1d919..536e518 100644
--- a/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage2_2.xml
+++ b/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage2_2.xml
@@ -14,7 +14,6 @@
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
@@ -22,15 +21,14 @@
180
true
(0, 0, -0.65)
- (1, 1, 1)
South
+ Fuck
30
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
@@ -45,13 +43,12 @@
0
0
true
- (1, 1, 1)
South
-
+
RimNude_Penis
Rimworld_Animations.AnimationWorker_KeyframesExtended
@@ -61,7 +58,6 @@
180
true
(0, 1, 0)
- (1, 1, 1)
South
@@ -83,7 +79,6 @@
0
true
(0, 2, 0.23)
- (1, 1, 1)
South
@@ -91,7 +86,6 @@
7
true
(0, 2, 0.43)
- (1, 1, 1)
South
@@ -99,7 +93,6 @@
0
true
(0, 2, 0.23)
- (1, 1, 1)
South
@@ -114,7 +107,6 @@
0
0
true
- (1, 1, 1)
South
@@ -122,14 +114,12 @@
-7
true
(0, 0, -0.04)
- (1, 1, 1)
South
30
0
true
- (1, 1, 1)
South
diff --git a/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage2_3.xml b/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage2_3.xml
index c70e4fe..72d68ea 100644
--- a/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage2_3.xml
+++ b/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage2_3.xml
@@ -14,7 +14,6 @@
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
@@ -22,15 +21,14 @@
180
true
(0, 0, -0.65)
- (1, 1, 1)
South
+ Fuck
30
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
@@ -45,13 +43,12 @@
0
0
true
- (1, 1, 1)
South
-
+
RimNude_Penis
Rimworld_Animations.AnimationWorker_KeyframesExtended
@@ -61,7 +58,6 @@
180
true
(0, 1, 0)
- (1, 1, 1)
South
@@ -83,7 +79,6 @@
0
true
(0, 2, 0.23)
- (1, 1, 1)
South
@@ -91,7 +86,6 @@
7
true
(0, 2, 0.43)
- (1, 1, 1)
South
@@ -99,7 +93,6 @@
-7
true
(0.03, 2, 0.43)
- (1, 1, 1)
South
@@ -107,7 +100,6 @@
0
true
(0, 2, 0.23)
- (1, 1, 1)
South
@@ -122,7 +114,6 @@
0
0
true
- (1, 1, 1)
South
@@ -130,7 +121,6 @@
-7
true
(0, 0, -0.07)
- (1, 1, 1)
South
@@ -138,14 +128,12 @@
7
true
(0, 0, -0.07)
- (1, 1, 1)
South
30
0
true
- (1, 1, 1)
South
diff --git a/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage3_XRay.xml b/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage3_XRay.xml
index 9474a0e..52b6170 100644
--- a/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage3_XRay.xml
+++ b/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage3_XRay.xml
@@ -14,7 +14,6 @@
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
@@ -22,15 +21,14 @@
180
true
(0, 0, -0.6)
- (1, 1, 1)
South
+ Fuck
25
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
@@ -45,7 +43,6 @@
0
0
true
- (1, 1, 1)
South
@@ -53,20 +50,18 @@
0
true
(0, 0, 0.03)
- (1, 1, 1)
South
25
0
true
- (1, 1, 1)
South
-
+
RimNude_Penis
Rimworld_Animations.AnimationWorker_KeyframesExtended
@@ -76,7 +71,6 @@
180
true
(0, 1, 0)
- (1, 1, 1)
South
@@ -98,7 +92,6 @@
0
true
(0, 2, 0.23)
- (1, 1, 1)
South
@@ -106,7 +99,6 @@
3
true
(0, 2, 0.43)
- (1, 1, 1)
South
@@ -114,7 +106,6 @@
0
true
(0, 2, 0.23)
- (1, 1, 1)
South
@@ -129,7 +120,6 @@
0
0
true
- (1, 1, 1)
South
@@ -137,14 +127,12 @@
0
true
(0, 0, 0.03)
- (1, 1, 1)
South
25
0
true
- (1, 1, 1)
South
diff --git a/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage4.xml b/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage4.xml
index 72dba98..1536330 100644
--- a/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage4.xml
+++ b/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage4.xml
@@ -14,7 +14,6 @@
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
@@ -22,7 +21,6 @@
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
@@ -30,7 +28,6 @@
180
true
(0, 0, -0.67)
- (1, 1, 1)
South
@@ -38,23 +35,22 @@
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
+ Cum
125
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
+ Cum
135
180
true
(0, 0, -0.67)
- (1, 1, 1)
South
@@ -62,15 +58,14 @@
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
+ Cum
200
180
true
(0, 0, -0.72)
- (1, 1, 1)
South
@@ -85,7 +80,6 @@
0
0
true
- (1, 1, 1)
South
@@ -93,20 +87,18 @@
0
true
(0, 0, -0.02)
- (1, 1, 1)
South
200
0
true
- (1, 1, 1)
South
-
+
RimNude_Penis
Rimworld_Animations.AnimationWorker_KeyframesExtended
@@ -115,8 +107,7 @@
0
180
true
- (0, 1, 0)
- (1, 1, 1)
+ (0, 1, 0)
South
@@ -138,7 +129,6 @@
0
true
(0, 2, 0.23)
- (1, 1, 1)
South
@@ -146,7 +136,6 @@
0
true
(0, 2, 0.26)
- (1, 1, 1)
South
@@ -154,7 +143,6 @@
0
true
(0, 2, 0.23)
- (1, 1, 1)
South
@@ -162,7 +150,6 @@
0
true
(0, 2, 0.26)
- (1, 1, 1)
South
@@ -170,7 +157,6 @@
0
true
(0, 2, 0.23)
- (1, 1, 1)
South
@@ -185,7 +171,6 @@
0
0
true
- (1, 1, 1)
South
@@ -193,14 +178,12 @@
0
true
(0, 0, 0.02)
- (1, 1, 1)
South
100
0
true
- (1, 1, 1)
South
@@ -208,14 +191,12 @@
0
true
(0, 0, 0.025)
- (1, 1, 1)
South
200
0
true
- (1, 1, 1)
South
@@ -227,41 +208,41 @@
Rimworld_Animations.AnimationWorker_KeyframesExtended
- 0
- 1
- true
- (1, 0, 0.3)
- (0.5, 1, 0.5)
- North
- 3
+ 0
+ 1
+ true
+ (1, 0, 0.3)
+ (0.5, 1, 0.5)
+ North
+ 3
+
+
+ 40
+ 1
+ true
+ (1, 0, 0.3)
+ (0.5, 1, 0.5)
+ North
+ 4
+
+
+ 105
+ 1
+ true
+ (1, 0, 0.3)
+ (0.5, 1, 0.5)
+ North
+ 5
+
+
+ 150
+ 1
+ true
+ (1, 0, 0.3)
+ (0.5, 1, 0.5)
+ North
+ 5
-
- 40
- 1
- true
- (1, 0, 0.3)
- (0.5, 1, 0.5)
- North
- 4
-
-
- 105
- 1
- true
- (1, 0, 0.3)
- (0.5, 1, 0.5)
- North
- 5
-
-
- 150
- 1
- true
- (1, 0, 0.3)
- (0.5, 1, 0.5)
- North
- 5
-
diff --git a/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage_1_5.xml b/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage_1_5.xml
index 471f674..95591e5 100644
--- a/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage_1_5.xml
+++ b/1.5/Defs/AnimationDefs/Cowgirl/Cowgirl_Stage_1_5.xml
@@ -14,7 +14,6 @@
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
@@ -22,16 +21,16 @@
180
true
(0, 0, -0.65)
- (1, 1, 1)
South
+ Slimy
55
180
true
(0, 0, -0.7)
- (1, 1, 1)
South
+ Fuck
@@ -45,13 +44,12 @@
0
0
true
- (1, 1, 1)
South
-
+
RimNude_Penis
Rimworld_Animations.AnimationWorker_KeyframesExtended
@@ -61,7 +59,6 @@
180
true
(0, 1, 0)
- (1, 1, 1)
South
@@ -83,7 +80,6 @@
0
true
(0, 2, 0.23)
- (1, 1, 1)
South
@@ -91,7 +87,6 @@
0
true
(0, 2, 0.43)
- (1, 1, 1)
South
@@ -99,7 +94,6 @@
0
true
(0, 2, 0.23)
- (1, 1, 1)
South
@@ -114,7 +108,6 @@
0
0
true
- (1, 1, 1)
South
@@ -122,14 +115,12 @@
0
true
(0, 0, -0.04)
- (1, 1, 1)
South
55
0
true
- (1, 1, 1)
South
diff --git a/1.5/Defs/AnimationDefs/Cowgirl/GroupAnimation_Cowgirl.xml b/1.5/Defs/AnimationDefs/Cowgirl/GroupAnimation_Cowgirl.xml
index a4d5f1c..e5ccdec 100644
--- a/1.5/Defs/AnimationDefs/Cowgirl/GroupAnimation_Cowgirl.xml
+++ b/1.5/Defs/AnimationDefs/Cowgirl/GroupAnimation_Cowgirl.xml
@@ -98,6 +98,8 @@
-->
+
+
Offset_Placeholder
Offset_Cowgirl_Top
diff --git a/1.5/Defs/AnimationDefs/DoublePenetration/GroupAnimation_DP.xml b/1.5/Defs/AnimationDefs/DoublePenetration/GroupAnimation_DP.xml
index 97d1b7d..60f898d 100644
--- a/1.5/Defs/AnimationDefs/DoublePenetration/GroupAnimation_DP.xml
+++ b/1.5/Defs/AnimationDefs/DoublePenetration/GroupAnimation_DP.xml
@@ -71,6 +71,11 @@
1
+
+
+
+
+
2
Sex_DoublePenetration
@@ -85,6 +90,11 @@
1
+
+
+
+
+
Sex_Reverse_DoublePenetration
Sex_Reverse_DoublePenetrationM
@@ -115,6 +125,8 @@
+
+
GroupAnimation_DP_Stage2_Branch1
3
@@ -143,7 +155,6 @@
-
GroupAnimation_DP_Stage2_Branch2
3
diff --git a/1.5/Defs/AnimationDefs/DoublePenetration/Stage1.xml b/1.5/Defs/AnimationDefs/DoublePenetration/Stage1.xml
index 304add6..a6d5019 100644
--- a/1.5/Defs/AnimationDefs/DoublePenetration/Stage1.xml
+++ b/1.5/Defs/AnimationDefs/DoublePenetration/Stage1.xml
@@ -22,6 +22,7 @@
true
(-0.6, -1, -0.42)
East
+ Fuck
40
@@ -158,6 +159,7 @@
true
(0.2, -1, 0.2)
West
+ Fuck
80
diff --git a/1.5/Defs/AnimationDefs/DoublePenetration/Stage2a.xml b/1.5/Defs/AnimationDefs/DoublePenetration/Stage2a.xml
index d8e397d..9a8c749 100644
--- a/1.5/Defs/AnimationDefs/DoublePenetration/Stage2a.xml
+++ b/1.5/Defs/AnimationDefs/DoublePenetration/Stage2a.xml
@@ -22,6 +22,7 @@
true
(-0.6, -1, -0.37)
East
+ Fuck
40
@@ -139,6 +140,7 @@
true
(0.2, -1, 0.2)
West
+ Fuck
diff --git a/1.5/Defs/AnimationDefs/DoublePenetration/Stage2b.xml b/1.5/Defs/AnimationDefs/DoublePenetration/Stage2b.xml
index 2c11ef7..8e607f2 100644
--- a/1.5/Defs/AnimationDefs/DoublePenetration/Stage2b.xml
+++ b/1.5/Defs/AnimationDefs/DoublePenetration/Stage2b.xml
@@ -22,6 +22,7 @@
true
(-0.6, -1, -0.37)
East
+ Fuck
40
@@ -139,6 +140,7 @@
true
(0.2, -1, 0.2)
West
+ Fuck
diff --git a/1.5/Defs/AnimationDefs/DoublePenetration/Stage2c.xml b/1.5/Defs/AnimationDefs/DoublePenetration/Stage2c.xml
index 35fa184..d28c52e 100644
--- a/1.5/Defs/AnimationDefs/DoublePenetration/Stage2c.xml
+++ b/1.5/Defs/AnimationDefs/DoublePenetration/Stage2c.xml
@@ -22,6 +22,7 @@
true
(-0.6, -1, -0.37)
East
+ Fuck
20
@@ -146,6 +147,7 @@
true
(0.3, -1, 0.2)
West
+ Fuck
40
diff --git a/1.5/Defs/AnimationDefs/DoublePenetration/Stage2d.xml b/1.5/Defs/AnimationDefs/DoublePenetration/Stage2d.xml
index 59ae660..7995c42 100644
--- a/1.5/Defs/AnimationDefs/DoublePenetration/Stage2d.xml
+++ b/1.5/Defs/AnimationDefs/DoublePenetration/Stage2d.xml
@@ -22,6 +22,7 @@
true
(-0.6, -1, -0.37)
East
+ Fuck
40
@@ -145,6 +146,7 @@
true
(0.2, -1, 0.2)
West
+ Fuck
30
@@ -214,6 +216,7 @@
true
(-0.1, 1, -0.03)
North
+ Slap
15
diff --git a/1.5/Defs/AnimationDefs/DoublePenetration/Stage3.xml b/1.5/Defs/AnimationDefs/DoublePenetration/Stage3.xml
index 3e7cff3..9547341 100644
--- a/1.5/Defs/AnimationDefs/DoublePenetration/Stage3.xml
+++ b/1.5/Defs/AnimationDefs/DoublePenetration/Stage3.xml
@@ -22,6 +22,7 @@
true
(-0.64, -1, -0.3)
East
+ Fuck
25
@@ -144,6 +145,7 @@
true
(0.2, -1, 0.28)
West
+ Fuck
25
diff --git a/1.5/Defs/AnimationDefs/DoublePenetration/Stage4.xml b/1.5/Defs/AnimationDefs/DoublePenetration/Stage4.xml
index a2e6f77..521f72d 100644
--- a/1.5/Defs/AnimationDefs/DoublePenetration/Stage4.xml
+++ b/1.5/Defs/AnimationDefs/DoublePenetration/Stage4.xml
@@ -22,6 +22,7 @@
true
(-0.64, -1, -0.4)
East
+ Fuck
17
@@ -144,6 +145,7 @@
true
(0.23, -1, 0.28)
West
+ Fuck
17
diff --git a/1.5/Defs/AnimationDefs/DoublePenetration/Stage5a.xml b/1.5/Defs/AnimationDefs/DoublePenetration/Stage5a.xml
index d5383bb..bc5e6e0 100644
--- a/1.5/Defs/AnimationDefs/DoublePenetration/Stage5a.xml
+++ b/1.5/Defs/AnimationDefs/DoublePenetration/Stage5a.xml
@@ -29,6 +29,7 @@
true
(-0.6, -1, -0.37)
East
+ Fuck
50
@@ -36,6 +37,7 @@
true
(-0.6, -1, -0.37)
East
+ Cum
55
@@ -50,6 +52,7 @@
true
(-0.6, -1, -0.37)
East
+ Cum
105
@@ -213,6 +216,7 @@
true
(0.16, -1, 0.2)
West
+ Fuck
70
@@ -220,6 +224,7 @@
true
(0.16, -1, 0.2)
West
+ Cum
75
@@ -234,6 +239,7 @@
true
(0.16, -1, 0.2)
West
+ Cum
135
diff --git a/1.5/Defs/AnimationDefs/DoublePenetration/Stage5b.xml b/1.5/Defs/AnimationDefs/DoublePenetration/Stage5b.xml
index 43c1cbb..677eddc 100644
--- a/1.5/Defs/AnimationDefs/DoublePenetration/Stage5b.xml
+++ b/1.5/Defs/AnimationDefs/DoublePenetration/Stage5b.xml
@@ -29,6 +29,7 @@
true
(-0.6, -1, -0.37)
East
+ Fuck
50
@@ -36,6 +37,7 @@
true
(-0.6, -1, -0.37)
East
+ Cum
55
@@ -50,6 +52,7 @@
true
(-0.6, -1, -0.37)
East
+ Cum
105
@@ -193,6 +196,7 @@
true
(0.33, -1, 0.2)
West
+ Fuck
23
@@ -207,6 +211,7 @@
true
(0.16, -1, 0.2)
West
+ Cum
75
@@ -221,6 +226,7 @@
true
(0.16, -1, 0.2)
West
+ Cum
135
diff --git a/1.5/Defs/AnimationDefs/DoublePenetration/Stage5c.xml b/1.5/Defs/AnimationDefs/DoublePenetration/Stage5c.xml
index 7c0d90e..ce1cb0e 100644
--- a/1.5/Defs/AnimationDefs/DoublePenetration/Stage5c.xml
+++ b/1.5/Defs/AnimationDefs/DoublePenetration/Stage5c.xml
@@ -29,6 +29,7 @@
true
(-0.6, -1, -0.37)
East
+ Fuck
50
@@ -36,6 +37,7 @@
true
(-0.6, -1, -0.37)
East
+ Cum
55
@@ -50,6 +52,7 @@
true
(-0.6, -1, -0.37)
East
+ Cum
105
@@ -249,6 +252,7 @@
true
(0.16, -1, 0.2)
West
+ Fuck
70
@@ -256,6 +260,7 @@
true
(0.16, -1, 0.2)
West
+ Cum
75
@@ -270,6 +275,7 @@
true
(0.16, -1, 0.2)
West
+ Cum
135
diff --git a/1.5/Defs/AnimationDefs/Missionary/Stage1.xml b/1.5/Defs/AnimationDefs/Missionary/Stage1.xml
index 830521a..f795658 100644
--- a/1.5/Defs/AnimationDefs/Missionary/Stage1.xml
+++ b/1.5/Defs/AnimationDefs/Missionary/Stage1.xml
@@ -14,7 +14,6 @@
0
true
(-0.85, 0, 0.5)
- (1, 1, 1)
East
@@ -22,7 +21,6 @@
0
true
(-0.79, 0, 0.44)
- (1, 1, 1)
East
@@ -30,15 +28,14 @@
20
true
(-0.75, 0, 0.38)
- (1, 1, 1)
East
+ Fuck
66
-10
true
(-0.6, 0, 0.38)
- (1, 1, 1)
East
@@ -46,7 +43,6 @@
10
true
(-0.75, 0, 0.38)
- (1, 1, 1)
East
@@ -61,27 +57,24 @@
0
0
true
- (1, 1, 1)
East
40
13
true
- (1, 1, 1)
East
100
3
true
- (1, 1, 1)
East
-
+
RimNude_Penis
Rimworld_Animations.AnimationWorker_KeyframesExtended
@@ -91,23 +84,20 @@
0
true
(0, -3, 0)
- (1, 1, 1)
East
20
0
true
- (0, -3, 0)
- (1, 1, 1)
+ (0, -3, 0)
East
60
30
true
- (0, -3, 0)
- (1, 1, 1)
+ (0, -3, 0)
East
@@ -129,7 +119,6 @@
90
true
(0, -1, 0)
- (1, 1, 1)
West
@@ -137,7 +126,6 @@
90
true
(0.03, -1, 0)
- (1, 1, 1)
West
@@ -145,7 +133,6 @@
90
true
(0.1, -1, 0)
- (1, 1, 1)
West
@@ -153,7 +140,6 @@
90
true
(0.03, -1, 0)
- (1, 1, 1)
West
@@ -168,28 +154,24 @@
0
-15
true
- (1, 1, 1)
West
60
-20
true
- (1, 1, 1)
West
66
0
true
- (1, 1, 1)
West
100
-20
true
- (1, 1, 1)
West
diff --git a/1.5/Defs/AnimationDefs/Missionary/Stage2.xml b/1.5/Defs/AnimationDefs/Missionary/Stage2.xml
index 5bb92b4..9362acf 100644
--- a/1.5/Defs/AnimationDefs/Missionary/Stage2.xml
+++ b/1.5/Defs/AnimationDefs/Missionary/Stage2.xml
@@ -14,15 +14,14 @@
10
true
(-0.75, 0, 0.38)
- (1, 1, 1)
East
+ Fuck
5
-25
true
(-0.6, 0, 0.38)
- (1, 1, 1)
East
@@ -30,7 +29,6 @@
10
true
(-0.75, 0, 0.38)
- (1, 1, 1)
East
@@ -45,27 +43,24 @@
0
3
true
- (1, 1, 1)
East
5
20
true
- (1, 1, 1)
East
35
3
true
- (1, 1, 1)
East
-
+
RimNude_Penis
Rimworld_Animations.AnimationWorker_KeyframesExtended
@@ -74,24 +69,21 @@
0
30
true
- (0, -3, 0)
- (1, 1, 1)
+ (0, -3, 0)
East
5
60
true
- (0, -3, 0)
- (1, 1, 1)
+ (0, -3, 0)
East
35
30
true
- (0, -3, 0)
- (1, 1, 1)
+ (0, -3, 0)
East
@@ -113,7 +105,6 @@
90
true
(0.03, -1, 0)
- (1, 1, 1)
West
@@ -121,7 +112,6 @@
90
true
(0.03, -1, 0)
- (1, 1, 1)
West
@@ -129,7 +119,6 @@
88
true
(0.12, -1, 0.03)
- (1, 1, 1)
West
@@ -137,7 +126,6 @@
90
true
(0.03, -1, 0)
- (1, 1, 1)
West
@@ -152,21 +140,18 @@
0
-20
true
- (1, 1, 1)
West
10
-10
true
- (1, 1, 1)
West
35
-20
true
- (1, 1, 1)
West
diff --git a/1.5/Defs/AnimationDefs/Missionary/Stage2b.xml b/1.5/Defs/AnimationDefs/Missionary/Stage2b.xml
index eab8093..96e85d8 100644
--- a/1.5/Defs/AnimationDefs/Missionary/Stage2b.xml
+++ b/1.5/Defs/AnimationDefs/Missionary/Stage2b.xml
@@ -14,15 +14,14 @@
10
true
(-0.75, 0, 0.38)
- (1, 1, 1)
East
+ Fuck
5
-25
true
(-0.6, 0, 0.38)
- (1, 1, 1)
East
@@ -30,7 +29,6 @@
10
true
(-0.75, 0, 0.38)
- (1, 1, 1)
East
@@ -45,27 +43,24 @@
0
3
true
- (1, 1, 1)
East
5
20
true
- (1, 1, 1)
East
35
3
true
- (1, 1, 1)
East
-
+
RimNude_Penis
Rimworld_Animations.AnimationWorker_KeyframesExtended
@@ -74,24 +69,21 @@
0
30
true
- (1, 1, 1)
- (0, -3, 0)
+ (0, -3, 0)
East
5
60
true
- (1, 1, 1)
- (0, -3, 0)
+ (0, -3, 0)
East
35
30
true
- (1, 1, 1)
- (0, -3, 0)
+ (0, -3, 0)
East
@@ -113,7 +105,6 @@
90
true
(0.03, -1, 0)
- (1, 1, 1)
West
@@ -121,7 +112,6 @@
90
true
(0.03, -1, 0)
- (1, 1, 1)
West
@@ -129,7 +119,6 @@
88
true
(0.12, -1, 0.03)
- (1, 1, 1)
West
@@ -137,7 +126,6 @@
90
true
(0.03, -1, 0)
- (1, 1, 1)
West
@@ -152,21 +140,18 @@
0
-20
true
- (1, 1, 1)
South
10
-17
true
- (1, 1, 1)
South
35
-20
true
- (1, 1, 1)
South
diff --git a/1.5/Defs/AnimationDefs/Missionary/Stage2c.xml b/1.5/Defs/AnimationDefs/Missionary/Stage2c.xml
index 574bbc5..ac1f762 100644
--- a/1.5/Defs/AnimationDefs/Missionary/Stage2c.xml
+++ b/1.5/Defs/AnimationDefs/Missionary/Stage2c.xml
@@ -14,15 +14,14 @@
10
true
(-0.75, 0, 0.38)
- (1, 1, 1)
East
+ Fuck
5
-25
true
(-0.6, 0, 0.38)
- (1, 1, 1)
East
@@ -30,7 +29,6 @@
10
true
(-0.75, 0, 0.38)
- (1, 1, 1)
East
@@ -45,27 +43,24 @@
0
3
true
- (1, 1, 1)
East
5
20
true
- (1, 1, 1)
East
35
3
true
- (1, 1, 1)
East
-
+
RimNude_Penis
Rimworld_Animations.AnimationWorker_KeyframesExtended
@@ -74,24 +69,21 @@
0
30
true
- (1, 1, 1)
- (0, -3, 0)
+ (0, -3, 0)
East
5
60
true
- (1, 1, 1)
- (0, -3, 0)
+ (0, -3, 0)
East
35
30
true
- (1, 1, 1)
- (0, -3, 0)
+ (0, -3, 0)
East
@@ -113,7 +105,6 @@
90
true
(0.03, -1, 0)
- (1, 1, 1)
West
@@ -121,7 +112,6 @@
90
true
(0.03, -1, 0)
- (1, 1, 1)
West
@@ -129,7 +119,6 @@
88
true
(0.12, -1, 0.03)
- (1, 1, 1)
West
@@ -137,7 +126,6 @@
90
true
(0.03, -1, 0)
- (1, 1, 1)
West
@@ -152,21 +140,18 @@
0
-20
true
- (1, 1, 1)
North
10
-17
true
- (1, 1, 1)
North
35
-20
true
- (1, 1, 1)
North
diff --git a/1.5/Defs/AnimationDefs/Missionary/Stage4.xml b/1.5/Defs/AnimationDefs/Missionary/Stage4.xml
index 931d915..816af01 100644
--- a/1.5/Defs/AnimationDefs/Missionary/Stage4.xml
+++ b/1.5/Defs/AnimationDefs/Missionary/Stage4.xml
@@ -14,15 +14,14 @@
15
true
(-0.65, 0, 0.42)
- (1, 1, 1)
East
+ Fuck
5
0
true
(-0.42, 0, 0.42)
- (1, 1, 1)
East
@@ -30,7 +29,6 @@
15
true
(-0.65, 0, 0.42)
- (1, 1, 1)
East
@@ -45,27 +43,24 @@
0
20
true
- (1, 1, 1)
East
5
30
true
- (1, 1, 1)
East
20
20
true
- (1, 1, 1)
East
-
+
RimNude_Penis
Rimworld_Animations.AnimationWorker_KeyframesExtended
@@ -74,8 +69,7 @@
35
30
true
- (1, 1, 1)
- (0, -3, 0)
+ (0, -3, 0)
East
@@ -97,7 +91,6 @@
95
true
(0.07, -1, 0)
- (1, 1, 1)
West
@@ -105,7 +98,6 @@
100
true
(0.2, -1, 0)
- (1, 1, 1)
West
@@ -113,7 +105,6 @@
95
true
(0.07, -1, 0)
- (1, 1, 1)
West
@@ -128,21 +119,18 @@
0
-20
true
- (1, 1, 1)
West
13
-26
true
- (1, 1, 1)
West
20
-20
true
- (1, 1, 1)
West
diff --git a/1.5/Defs/AnimationDefs/Missionary/Stage5.xml b/1.5/Defs/AnimationDefs/Missionary/Stage5.xml
index 8f1e8b7..8a88271 100644
--- a/1.5/Defs/AnimationDefs/Missionary/Stage5.xml
+++ b/1.5/Defs/AnimationDefs/Missionary/Stage5.xml
@@ -14,15 +14,14 @@
15
true
(-0.65, 0, 0.42)
- (1, 1, 1)
East
+ Fuck
5
0
true
(-0.45, 0, 0.42)
- (1, 1, 1)
East
@@ -30,7 +29,6 @@
15
true
(-0.65, 0, 0.42)
- (1, 1, 1)
East
@@ -45,27 +43,24 @@
0
20
true
- (1, 1, 1)
East
5
40
true
- (1, 1, 1)
East
20
20
true
- (1, 1, 1)
East
-
+
RimNude_Penis
Rimworld_Animations.AnimationWorker_KeyframesExtended
@@ -74,8 +69,7 @@
35
30
true
- (1, 1, 1)
- (0, -3, 0)
+ (0, -3, 0)
East
@@ -97,7 +91,6 @@
95
true
(0.07, -1, 0)
- (1, 1, 1)
West
@@ -105,7 +98,6 @@
100
true
(0.16, -1, 0)
- (1, 1, 1)
West
@@ -113,7 +105,6 @@
95
true
(0.07, -1, 0)
- (1, 1, 1)
West
@@ -128,21 +119,18 @@
0
-20
true
- (1, 1, 1)
West
3
-34
true
- (1, 1, 1)
West
13
-20
true
- (1, 1, 1)
West
diff --git a/1.5/Defs/AnimationDefs/Missionary/Stage6.xml b/1.5/Defs/AnimationDefs/Missionary/Stage6.xml
index bf4d03a..746ff38 100644
--- a/1.5/Defs/AnimationDefs/Missionary/Stage6.xml
+++ b/1.5/Defs/AnimationDefs/Missionary/Stage6.xml
@@ -14,7 +14,6 @@
15
true
(-0.65, 0, 0.42)
- (1, 1, 1)
East
@@ -22,23 +21,22 @@
-20
true
(-0.43, 0, 0.42)
- (1, 1, 1)
East
+ Fuck
80
-15
true
(-0.49, 0, 0.42)
- (1, 1, 1)
East
+ Cum
85
-20
true
(-0.43, 0, 0.42)
- (1, 1, 1)
East
@@ -46,15 +44,14 @@
-15
true
(-0.49, 0, 0.42)
- (1, 1, 1)
East
+ Cum
155
-20
true
(-0.43, 0, 0.42)
- (1, 1, 1)
East
@@ -62,7 +59,6 @@
-15
true
(-0.49, 0, 0.42)
- (1, 1, 1)
East
@@ -77,27 +73,24 @@
0
20
true
- (1, 1, 1)
East
40
25
true
- (1, 1, 1)
East
200
30
true
- (1, 1, 1)
East
-
+
RimNude_Penis
Rimworld_Animations.AnimationWorker_KeyframesExtended
@@ -106,16 +99,14 @@
0
30
true
- (1, 1, 1)
- (0, -3, 0)
+ (0, -3, 0)
East
13
60
true
- (1, 1, 1)
- (0, -3, 0)
+ (0, -3, 0)
East
@@ -137,7 +128,6 @@
95
true
(0.07, -1, 0)
- (1, 1, 1)
West
@@ -145,7 +135,6 @@
100
true
(0.23, -1, 0)
- (1, 1, 1)
West
@@ -153,7 +142,6 @@
100
true
(0.2, -1, 0)
- (1, 1, 1)
West
@@ -161,7 +149,6 @@
100
true
(0.23, -1, 0)
- (1, 1, 1)
West
@@ -169,7 +156,6 @@
100
true
(0.2, -1, 0)
- (1, 1, 1)
West
@@ -177,7 +163,6 @@
100
true
(0.23, -1, 0)
- (1, 1, 1)
West
@@ -185,7 +170,6 @@
100
true
(0.2, -1, 0)
- (1, 1, 1)
West
@@ -200,21 +184,18 @@
0
-20
true
- (1, 1, 1)
West
100
-10
true
- (1, 1, 1)
West
200
-23
true
- (1, 1, 1)
West
diff --git a/1.5/Defs/SoundDefs/Sounds_Sex.xml b/1.5/Defs/SoundDefs/Sounds_Sex.xml
index f05a1a8..d0b4c12 100644
--- a/1.5/Defs/SoundDefs/Sounds_Sex.xml
+++ b/1.5/Defs/SoundDefs/Sounds_Sex.xml
@@ -5,8 +5,8 @@
Cum
MapOnly
- 1
- 1
+ 5
+ 5
@@ -34,8 +34,8 @@
Sex
MapOnly
- 1
- 1
+ 5
+ 5
@@ -63,8 +63,8 @@
Suck
MapOnly
- 1
- 1
+ 5
+ 5
@@ -120,8 +120,8 @@
Fuck
MapOnly
- 1
- 1
+ 5
+ 5
@@ -171,8 +171,8 @@
Slimy
MapOnly
- 1
- 1
+ 5
+ 5
@@ -209,4 +209,46 @@
+
+ Slap
+ MapOnly
+
+ 5
+ 5
+
+
+
+
+ Sex/Slap/Slap_1
+
+
+ Sex/Slap/Slap_2
+
+
+ Sex/Slap/Slap_3
+
+
+ Sex/Slap/Slap_4
+
+
+ Sex/Slap/Slap_5
+
+
+
+ 75
+ 85
+
+
+ 0.8
+ 1.2
+
+
+ 0
+ 100
+
+ NeverTwice
+ false
+
+
+
\ No newline at end of file
diff --git a/1.5/Sounds/Sex/Slap/Slap_1.wav b/1.5/Sounds/Sex/Slap/Slap_1.wav
new file mode 100644
index 0000000..3387390
Binary files /dev/null and b/1.5/Sounds/Sex/Slap/Slap_1.wav differ
diff --git a/1.5/Sounds/Sex/Slap/Slap_2.wav b/1.5/Sounds/Sex/Slap/Slap_2.wav
new file mode 100644
index 0000000..1486217
Binary files /dev/null and b/1.5/Sounds/Sex/Slap/Slap_2.wav differ
diff --git a/1.5/Sounds/Sex/Slap/Slap_3.wav b/1.5/Sounds/Sex/Slap/Slap_3.wav
new file mode 100644
index 0000000..8d476db
Binary files /dev/null and b/1.5/Sounds/Sex/Slap/Slap_3.wav differ
diff --git a/1.5/Sounds/Sex/Slap/Slap_4.wav b/1.5/Sounds/Sex/Slap/Slap_4.wav
new file mode 100644
index 0000000..c958a4c
Binary files /dev/null and b/1.5/Sounds/Sex/Slap/Slap_4.wav differ
diff --git a/1.5/Sounds/Sex/Slap/Slap_5.wav b/1.5/Sounds/Sex/Slap/Slap_5.wav
new file mode 100644
index 0000000..033b2c4
Binary files /dev/null and b/1.5/Sounds/Sex/Slap/Slap_5.wav differ
diff --git a/1.5/Source/Animations/GroupAnimations/GroupAnimationContexts/BaseGroupAnimationContext.cs b/1.5/Source/Animations/GroupAnimations/GroupAnimationContexts/BaseGroupAnimationContext.cs
index 19f475d..de5ddc3 100644
--- a/1.5/Source/Animations/GroupAnimations/GroupAnimationContexts/BaseGroupAnimationContext.cs
+++ b/1.5/Source/Animations/GroupAnimations/GroupAnimationContexts/BaseGroupAnimationContext.cs
@@ -11,13 +11,46 @@ namespace Rimworld_Animations
{
public int actorShift = 0;
public int priority = 0;
+
+ public List whitelist;
+ public List blacklist;
+
public virtual bool CanAnimationBeUsed(List actors, int numActors)
{
+
if (numActors != actors.Count)
{
return false;
}
+ if (!whitelist.NullOrEmpty())
+ {
+ for (int i = 0; i < whitelist.Count; i++)
+ {
+ // check whitelist to make sure pawn can be in this act
+ //for each whitelist item, pawntest must hold true for that pawn
+ if (!whitelist[i].PawnTest(actors[i]))
+ {
+ return false;
+ }
+
+ }
+ }
+
+ if (!blacklist.NullOrEmpty())
+ {
+ for (int i = 0; i < blacklist.Count; i++)
+ {
+ // check blacklist to make sure pawn can be in this act
+ // for each blacklist item, pawntest must hold false for that pawn
+ if (blacklist[i].PawnTest(actors[i]))
+ {
+ return false;
+ }
+
+ }
+ }
+
return true;
}
public virtual int AnimationReorder()
diff --git a/1.5/Source/Animations/PawnTests/BasePawnTest.cs b/1.5/Source/Animations/PawnTests/BasePawnTest.cs
new file mode 100644
index 0000000..9ada366
--- /dev/null
+++ b/1.5/Source/Animations/PawnTests/BasePawnTest.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Verse;
+
+namespace Rimworld_Animations
+{
+ public abstract class BasePawnTest
+ {
+ public abstract bool PawnTest(Pawn pawn);
+
+ }
+}
diff --git a/1.5/Source/Animations/PawnTests/PawnTest_Always.cs b/1.5/Source/Animations/PawnTests/PawnTest_Always.cs
new file mode 100644
index 0000000..198f71b
--- /dev/null
+++ b/1.5/Source/Animations/PawnTests/PawnTest_Always.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Verse;
+
+namespace Rimworld_Animations
+{
+ public class PawnTest_Always : BasePawnTest
+ {
+ public override bool PawnTest(Pawn pawn)
+ {
+ return true;
+ }
+ }
+}
diff --git a/1.5/Source/Animations/PawnTests/PawnTest_Multi.cs b/1.5/Source/Animations/PawnTests/PawnTest_Multi.cs
new file mode 100644
index 0000000..8c854a2
--- /dev/null
+++ b/1.5/Source/Animations/PawnTests/PawnTest_Multi.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Verse;
+
+namespace Rimworld_Animations
+{
+ public class PawnTest_Multi : BasePawnTest
+ {
+ public List tests = new List();
+ public override bool PawnTest(Pawn pawn)
+ {
+ //check all different pawn tests in list for pawn
+ foreach (BasePawnTest test in tests)
+ {
+ if (!test.PawnTest(pawn))
+ {
+ return false;
+ }
+ }
+
+ return true;
+ }
+ }
+}
diff --git a/1.5/Source/Animations/PawnTests/PawnTest_RJWCanBeFucked.cs b/1.5/Source/Animations/PawnTests/PawnTest_RJWCanBeFucked.cs
new file mode 100644
index 0000000..044b9c9
--- /dev/null
+++ b/1.5/Source/Animations/PawnTests/PawnTest_RJWCanBeFucked.cs
@@ -0,0 +1,18 @@
+using rjw;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Verse;
+
+namespace Rimworld_Animations
+{
+ public class PawnTest_RJWCanBeFucked : BasePawnTest
+ {
+ public override bool PawnTest(Pawn pawn)
+ {
+ return xxx.can_be_fucked(pawn);
+ }
+ }
+}
diff --git a/1.5/Source/Animations/PawnTests/PawnTest_RJWCanFuck.cs b/1.5/Source/Animations/PawnTests/PawnTest_RJWCanFuck.cs
new file mode 100644
index 0000000..7ef9c55
--- /dev/null
+++ b/1.5/Source/Animations/PawnTests/PawnTest_RJWCanFuck.cs
@@ -0,0 +1,18 @@
+using rjw;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Verse;
+
+namespace Rimworld_Animations
+{
+ public class PawnTest_RJWCanFuck : BasePawnTest
+ {
+ public override bool PawnTest(Pawn pawn)
+ {
+ return xxx.can_fuck(pawn);
+ }
+ }
+}
diff --git a/1.5/Source/Comps/ExtendedAnimatorAnchor/ExtendedAnimatorAnchor_Thing.cs b/1.5/Source/Comps/ExtendedAnimatorAnchor/ExtendedAnimatorAnchor_Thing.cs
index 4331046..b7b7f61 100644
--- a/1.5/Source/Comps/ExtendedAnimatorAnchor/ExtendedAnimatorAnchor_Thing.cs
+++ b/1.5/Source/Comps/ExtendedAnimatorAnchor/ExtendedAnimatorAnchor_Thing.cs
@@ -22,8 +22,8 @@ namespace Rimworld_Animations
public override Vector3 getDrawPos()
{
- //vector3.up means stand above the thing
- return thing.DrawPos;
+ //x and z position, regular altitude for pawns
+ return new Vector3(thing.DrawPos.x, AltitudeLayer.Pawn.AltitudeFor(), thing.DrawPos.z);
}
public override void ExposeData()
diff --git a/1.5/Source/Comps/ExtendedAnimatorAnchor/ExtendedAnimatorAnchor_Vector3.cs b/1.5/Source/Comps/ExtendedAnimatorAnchor/ExtendedAnimatorAnchor_Vector3.cs
index ffb84ab..7eb5ed8 100644
--- a/1.5/Source/Comps/ExtendedAnimatorAnchor/ExtendedAnimatorAnchor_Vector3.cs
+++ b/1.5/Source/Comps/ExtendedAnimatorAnchor/ExtendedAnimatorAnchor_Vector3.cs
@@ -16,7 +16,8 @@ namespace Rimworld_Animations
private Vector3 position;
public ExtendedAnimatorAnchor_Vector3(Vector3 position) : base()
{
- this.position = position;
+ //default to altitude for layer for y
+ this.position = new Vector3(position.x, AltitudeLayer.Pawn.AltitudeFor(), position.z);
}
public override Vector3 getDrawPos()
diff --git a/1.5/Source/Patches/RJWPatches/JobDrivers/JobDriver_Sex/HarmonyPatch_Animate.cs b/1.5/Source/Patches/RJWPatches/JobDrivers/JobDriver_Sex/HarmonyPatch_Animate.cs
index eaaf9b1..4de97aa 100644
--- a/1.5/Source/Patches/RJWPatches/JobDrivers/JobDriver_Sex/HarmonyPatch_Animate.cs
+++ b/1.5/Source/Patches/RJWPatches/JobDrivers/JobDriver_Sex/HarmonyPatch_Animate.cs
@@ -15,9 +15,23 @@ namespace Rimworld_Animations
public static bool Prefix(ref JobDriver_Sex __instance, ref Pawn pawn, ref Thing target)
{
//remove all bumping stuff in animations; keep draw nude code
+ __instance.RotatePawns(pawn, __instance.Partner);
if (target != null)
{
Pawn pawn2 = target as Pawn;
+
+ if (pawn2 != null && !__instance.Sexprops.isRapist)
+ {
+ // if not (pawn has root node and rootnode is animating)
+ if (!(pawn2?.Drawer?.renderer?.renderTree?.rootNode is PawnRenderNode rootNode
+ && (rootNode.AnimationWorker is AnimationWorker_KeyframesExtended || rootNode.children.Any(x => x.AnimationWorker is AnimationWorker_KeyframesExtended))))
+ {
+ //play bumpin anim
+ pawn.Drawer.Notify_MeleeAttackOn(target);
+ }
+
+ }
+
if (!__instance.isEndytophile)
{
SexUtility.DrawNude(pawn, false);
diff --git a/1.5/Source/Patches/RJWPatches/RJWAnimationSettings.cs b/1.5/Source/Patches/RJWPatches/RJWAnimationSettings.cs
index fac9115..0716cb8 100644
--- a/1.5/Source/Patches/RJWPatches/RJWAnimationSettings.cs
+++ b/1.5/Source/Patches/RJWPatches/RJWAnimationSettings.cs
@@ -16,6 +16,7 @@ namespace Rimworld_Animations {
//probably move this setting to a different mod menu if moving rjw parts of code
public static bool playHumanlikeVoicesAsDefault = true;
+ public static float floatRangeInRenderTreeMenu = 1f;
public static bool offsetTab = false, debugMode = false;
public static float shiverIntensity = 2f;
@@ -34,6 +35,7 @@ namespace Rimworld_Animations {
Scribe_Values.Look(ref PlayAnimForNonsexualActs, "RJWAnims-PlayAnimForNonsexualActs");
Scribe_Values.Look(ref soundOverride, "RJWAnimations-rjwAnimSoundOverride", true);
Scribe_Values.Look(ref shiverIntensity, "RJWAnimations-shiverIntensity", 2f);
+ Scribe_Values.Look(ref floatRangeInRenderTreeMenu, "RJWAnimations-FloatRangeRenderMenu", 1f);
//todo: save offsetsByDefName
}
@@ -63,6 +65,9 @@ namespace Rimworld_Animations {
listingStandard.Label("RimAnim_ShiverIntensity".Translate() + RJWAnimationSettings.shiverIntensity);
RJWAnimationSettings.shiverIntensity = listingStandard.Slider(RJWAnimationSettings.shiverIntensity, 0.0f, 12f);
+ listingStandard.Label("RimAnim_FloatRangeRenderTree".Translate() + RJWAnimationSettings.floatRangeInRenderTreeMenu);
+ RJWAnimationSettings.floatRangeInRenderTreeMenu = listingStandard.Slider(RJWAnimationSettings.floatRangeInRenderTreeMenu, 0.1f, 12f);
+
listingStandard.CheckboxLabeled("RimAnim_DebugMode".Translate(), ref RJWAnimationSettings.debugMode);
diff --git a/1.5/Source/Patches/RimworldPatches/HarmonyPatch_Dialog_DebugRenderTree.cs b/1.5/Source/Patches/RimworldPatches/HarmonyPatch_Dialog_DebugRenderTree.cs
new file mode 100644
index 0000000..eadccea
--- /dev/null
+++ b/1.5/Source/Patches/RimworldPatches/HarmonyPatch_Dialog_DebugRenderTree.cs
@@ -0,0 +1,47 @@
+using HarmonyLib;
+using RimWorld;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Reflection.Emit;
+using System.Text;
+using System.Threading.Tasks;
+using Verse;
+
+namespace Rimworld_Animations
+{
+ [HarmonyPatch(typeof(Dialog_DebugRenderTree), "RightRect")]
+ public static class HarmonyPatch_Dialog_DebugRenderTree
+ {
+
+ static MethodInfo replaceFloatRangeMethod = SymbolExtensions.GetMethodInfo(() => HarmonyPatch_Dialog_DebugRenderTree.ReplaceFloatValueRange());
+
+ public static IEnumerable Transpiler(IEnumerable instructions)
+ {
+ var codes = new List(instructions);
+
+ for (int i = 0; i < codes.Count; i++)
+ {
+ //increase granularity of x and z sliders to be 0.01 instead
+ if (codes[i].opcode == OpCodes.Ldc_R4 && (float)codes[i].operand == 0.05f)
+ {
+ codes[i].operand = 0.001f;
+ codes[i - 8].opcode = OpCodes.Call;
+ codes[i - 8].operand = replaceFloatRangeMethod;
+
+ }
+
+ }
+
+ return codes.AsEnumerable();
+
+ }
+
+ public static FloatRange ReplaceFloatValueRange()
+ {
+ return new FloatRange(-RJWAnimationSettings.floatRangeInRenderTreeMenu, RJWAnimationSettings.floatRangeInRenderTreeMenu);
+ }
+
+ }
+}
diff --git a/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderNode.cs b/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderNode.cs
index 7e30364..7f78668 100644
--- a/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderNode.cs
+++ b/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderNode.cs
@@ -21,6 +21,8 @@ namespace Rimworld_Animations
if (__instance.AnimationWorker is AnimationWorker_KeyframesExtended extendedAnimWorker)
{
+ if (parms.Portrait) return true;
+
// ADJUST FACING get rotated textures
// compare the previous tick to the current tick; if the current tick rotation is different, recache
parms.facing = extendedAnimWorker.facingAtTick(__instance.tree.AnimationTick);
diff --git a/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderTree.cs b/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderTree.cs
index c3cca54..470b3d3 100644
--- a/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderTree.cs
+++ b/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderTree.cs
@@ -20,6 +20,10 @@ namespace Rimworld_Animations
* Facing offsets fix
*/
//find lowest parent that is animating, or nothing if not animating
+
+ //don't do anything if portrait
+ if (parms.Portrait) return true;
+
PawnRenderNode animatingNode = node;
while (animatingNode != null
&& !(animatingNode.AnimationWorker is AnimationWorker_KeyframesExtended))
diff --git a/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderer.cs b/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderer.cs
index a013ea7..ec61598 100644
--- a/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderer.cs
+++ b/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderer.cs
@@ -4,18 +4,18 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using UnityEngine;
using Verse;
namespace Rimworld_Animations
{
[HarmonyPatch(typeof(PawnRenderer), "BodyAngle")]
-
public class HarmonyPatch_PawnRenderer
{
public static bool Prefix(ref Pawn ___pawn, ref float __result)
{
- //stop using cache when animating, for when downed (downed disables cache)
+ //set body angle to zero, for when downed
if (___pawn?.Drawer?.renderer?.renderTree?.rootNode?.AnimationWorker is AnimationWorker_KeyframesExtended)
{
__result = 0;
@@ -28,5 +28,20 @@ namespace Rimworld_Animations
}
}
+ [HarmonyPatch(typeof(PawnRenderer), "GetBodyPos")]
+ public class HarmonyPatch_PawnRenderer2
+ {
+ //patch so that pawns appear at the same altitude layer, at layer Pawn
+ public static void Postfix(PawnRenderer __instance, ref Vector3 __result)
+ {
+
+ if (__instance.renderTree.rootNode.AnimationWorker is AnimationWorker_KeyframesExtended
+ || __instance.renderTree.rootNode.children.Any(x => x.AnimationWorker is AnimationWorker_KeyframesExtended))
+ {
+ __result.y = AltitudeLayer.Pawn.AltitudeFor();
+ }
+
+ }
+ }
}
diff --git a/1.5/Source/Patches/RimworldPatches/HarmonyPatch_Pawn_DrawTracker.cs b/1.5/Source/Patches/RimworldPatches/HarmonyPatch_Pawn_DrawTracker.cs
index 31c4692..da0f303 100644
--- a/1.5/Source/Patches/RimworldPatches/HarmonyPatch_Pawn_DrawTracker.cs
+++ b/1.5/Source/Patches/RimworldPatches/HarmonyPatch_Pawn_DrawTracker.cs
@@ -12,13 +12,15 @@ namespace Rimworld_Animations {
public static void Postfix(ref Pawn ___pawn, ref Vector3 __result) {
//align pos on top of partner, position, etc., based on animatoranchor
- if (___pawn.TryGetComp() is CompExtendedAnimator animator
- && animator.IsAnchored)
+ if (___pawn.TryGetComp() is CompExtendedAnimator animator)
{
- Vector3 anchor = animator.getAnchor();
- //ignore y so that pawns don't clip through stuff
- __result.x = anchor.x;
- __result.z = anchor.z;
+ if (animator.IsAnchored)
+ {
+ Vector3 anchor = animator.getAnchor();
+ __result.x = anchor.x;
+ __result.z = anchor.z;
+ }
+
}
}
diff --git a/1.5/Source/RenderSubWorkers/PawnRenderSubWorker_HideWhenAnimating.cs b/1.5/Source/RenderSubWorkers/PawnRenderSubWorker_HideWhenAnimating.cs
index 57c174d..74bc599 100644
--- a/1.5/Source/RenderSubWorkers/PawnRenderSubWorker_HideWhenAnimating.cs
+++ b/1.5/Source/RenderSubWorkers/PawnRenderSubWorker_HideWhenAnimating.cs
@@ -14,6 +14,8 @@ namespace Rimworld_Animations
public override void EditMaterial(PawnRenderNode node, PawnDrawParms parms, ref Material material)
{
+ if (node.tree.pawn.def != ThingDefOf.Human) return;
+
if (node.tree.rootNode.AnimationWorker is AnimationWorker_KeyframesExtended
|| node.tree.rootNode.children.Any(x => x.AnimationWorker is AnimationWorker_KeyframesExtended))
{
@@ -24,7 +26,10 @@ namespace Rimworld_Animations
public override void TransformLayer(PawnRenderNode node, PawnDrawParms parms, ref float layer)
{
+
base.TransformLayer(node, parms, ref layer);
+
+ if (node.tree.pawn.def != ThingDefOf.Human) return;
layer -= 1000;
}
diff --git a/Languages/English/Keyed/RJWAnimations-LanguageData.xml b/Languages/English/Keyed/RJWAnimations-LanguageData.xml
index 7227181..418ffef 100644
--- a/Languages/English/Keyed/RJWAnimations-LanguageData.xml
+++ b/Languages/English/Keyed/RJWAnimations-LanguageData.xml
@@ -19,6 +19,7 @@
Warning--You generally don't want to change human offsets, only alien offsets or animals
Copy Offset to Clipboard
Paste offset values in OffsetDef, or share in Discord
+ Float range for Debug Render Tree offset menu:
\ No newline at end of file
diff --git a/Rimworld-Animations.csproj b/Rimworld-Animations.csproj
index e27cfbc..28ac856 100644
--- a/Rimworld-Animations.csproj
+++ b/Rimworld-Animations.csproj
@@ -84,6 +84,11 @@
+
+
+
+
+
@@ -104,6 +109,7 @@
+
@@ -247,6 +253,11 @@
+
+
+
+
+