From 150e567a1d56d35363e3f59bd8d2b17a1c1b6eb6 Mon Sep 17 00:00:00 2001 From: Platinum Date: Sun, 26 Apr 2020 08:03:57 -0700 Subject: [PATCH] 4.1.1 compatibility --- 1.1/Assemblies/Rimworld-Animations.dll | Bin 41984 -> 41472 bytes Source/AnimationUtility.cs | 2 +- Source/Comps/CompBodyAnimator.cs | 2 +- ...Driver_SexBaseRecieverLovedForAnimation.cs | 3 +- .../JobDriver_SexCasualForAnimation.cs | 18 +++----- ...HarmonyPatch_JobDriver_SexBaseInitiator.cs | 4 +- .../rjwPatches/HarmonyPatch_SexTick.cs | 43 ++++++++++-------- 7 files changed, 34 insertions(+), 38 deletions(-) diff --git a/1.1/Assemblies/Rimworld-Animations.dll b/1.1/Assemblies/Rimworld-Animations.dll index 282998bbab200efbd101ee260e6dbdedf97a4195..49e0e8f8cae71e35d3b5561e51ad8490c93eb75c 100644 GIT binary patch delta 14637 zcmb_j34Bvk)<5sQm-mu1Ns}~9x-Ybp&;?p3ST<=DghGKLC_AM<6)F;1K*3VdS~nDz z`hXD?MMOnKXSBi$t|*RLXLMi&7t~R3N5!#@`niGM|J)Z!opHXI@AsQX{_kw}oO91z z-hD5%69+p`l~ zhlyO^KmHw2nwc#M%^6A`=j_c8W#N0Xd9_lY+-mMt`Y2n?x0PPWW$?hCvG@wI(T15s zQ|A&Xrf9o3?*u1qm6v1ckX&719o$}IDF`!I8}JE;~f$nsXf?bDYD|(dNh%$~bdJT&^;%Bs4UbpHQq&A+tn25>4wl)CO}-Qu^GDAPIVd@_()u;Z1DyD}ZRa3Ah%W zcLoD$7}aw+3rNpDJ@dr!I;7ZJG^3|l{!9^S9s@!oHKPog2;X8}8_G=EB*IsrN%&Sk zQP5&yIczZ}B^S<>F~Ya84U^&90Zz-VsRne@R)FqTP9&xfr5cetz)}x=YA6)h#V;)M*8Ga`OMQ%$FW~M+1HE+jNgzo~%&L3&>9(@tRc0cqVUD#8y+ic*VJ`X6K&k1Ut}8nWJv?Shs?e#7eCjaz!q6+P(l zd(aQ{pgVie@AaUM_n;G1igpJmQBMV%)Prv5L0{Q}-qM5qeGj^;2c4;%^x0C0i9@t@ z0WK%>2+#kA(6LC`!`wZ3+s1&=QoJYuy+$crWGgdAq&=Z@n8VYP%!Kr?r254_f(BSg z4y+`X9@%BCPM@GOn9rwQ64%u2^O8VX+z#*ow12tNk;)XbgC%Sodz6rzBfN!2T(h)|R$s#mr!;R4YL zB5*>*EOglmbt?NktRcSC61yFRerg|$DE=%!ixntt!%RzBxpXZ z&>!P1Wf`UqySyxBVe{Dv11ANR36))CZq7_Akg5*=GK)1^5%9`t8PhkNQr!L@pPIig%jCp-_wX)AV zoE?nrV>OSvPmctpFWqNESZeJi^Fgh=GS*T1Nu6wgZu@LLdnAdQoz(Pb#eFuK&cNhs z<^}$X7SV2#XaAK+w*~k67oBul{2mr-CmFy4oAr^+n*Ic(wMcwT`@3md(*e+H{|vyW^2#ixwSNJ}U5_hFZ#<~eGPpiyzTG<` z@Cp=#iE4F(iKbTpYhN?Hd5O-~K^8e+cgXCYm(uGEun7*IBLJUqzPLgy7*}wf&mp&` z1ShvQFUTv1z6moDJ+?8J@NL)Ea}PsP8v)43CrZFA2X`OBs_>CkEz1gjsNh>@7j6gO zCRd4)s?~bruk3#~08F9eJCDT=V;|!^Enagn9SP{%&v(ZD4)Ad}Zv~GK$Bp+v z5;|#vnW{A&grpbzln28uZkgXpgx@vq31=(snVsSE=m*HbsjHC>xkGy6S1^yVt3c!< zOOj=WWL!_lIF^j>DOtu6PN}=q4wi5N;g8`ad=!8zTAm6-J^`7huVo!1X+*&CipZxB zx3Ex;drCmD%OS^Yam6l;Ys<5qhsIixWmTl{uWI45Cuc*xrhR>41lx`ur{sIuj zR)JQjjpNuL+-2ULpS!Rgv<%GiVhB!Qm|-$Sc;hy_neeuWMb$GazPJ6Cv$`mjRb9b= zbAO>QoP^zHAA+TKvNTwyL$J4F0RHppod0jDbEB09`kjE?s;L6QWsmRyq6yoP7WtAD zaRsUVxbWYZbm123b2V;9t1xW25maB9^@S7k`($y=Ckm5>%3^*EJ@>=o^AukE|H=B_ zkLmAX)tgXMG(yJWjSaDQKaKar|F^@v8w>Y!QK1#?(5Y}jcLSac$&m19K6qGE}Y){micCJPQK)lXEgKGvX%G#rXRX_`M?+X zk<4&OvHusu^(B+U2{IomNgZ&4qa4o*82N7lBduI!{PqNhWNF89<9>DC%%!=PUMWQOx)h89{G4n1ks z?34jm7iw0`rw0{agpLg=Ea8&N5#qWEIYM=4#3RHm2%` z6X6!tUv)~l+zV9zCO%yAdiaQL>UQ!vsL-_q@_xA=RZ*muZU5xAJJ6LRZTS8%K}D_3$r|A?kr15Ndmopc(;$6xLGn}P#-Q!NlRgMTzA6TtPrV| zL2yVxKX%@f23X6U!aUguGepx8&ai1IFk*$r1mN(IAz4bmykSV#d#YiEY-qkPBps>` zhvWl&L#JYfoj0@~+C9T$pPdCpaCt*)hAoE6=0yNG!!EXF*d@5ML?GmYpWL^x7uabf zrjd=0q+vPvFx#xj$CfAbHK!&YYhshH@GNSacxvjs&83l3Z@8;_*aCt5q3-HboswI_ zX-&OTgE`-vJ1j-{)?7Vo_AiawN5ckYS=G9Tvq(f;;*25J^AZqiPY&A9;s58LEgk-E z25tLrF7Tg*SEImLBl@1&WKmXL!YD9Km~siDXj=0MfGlvExqL+55o6a!#`4bfRZnkexGyMvW)(LY6b;oXSzSP6bcqp%Hyb?gA0UcNM;Tc%6hV z7BFQha){_`(7o}+a1jpwC|bWcu@1u1{c#~lwI*2I^Y}W^wYeIgXtI09=r(A>1^p@iKoWlq*5w?M$B)_f*hNpQEvdwrQWK9vbLod_BEE_t19;uhTXk zr}BpEOq=Y?RUQr;Kvz9)_#f_cxZwgltPJy|F^Ii7ho)p${g=TULJZ=()R#$ zYDV!rRAp!ReDvEx_ey-k#R0}9Fkb0oc^~OCoXO!6L=a@-4 zm0)Nvpc!1zA2Xs{I=?L4pFCW;K2F9dQWCT?{cSSi1rF}bElJ#ORcFaSR1Q6Ja)7I3 z_&#zTJS9`SU*a&CN*d~?)1PFQavkj9+XPPK-qc-D^m3)_&E{k|>EvX2JA-?0h0ML5 z!2zbA$e5&ZTAk)+NiQkyC+EcLNjziT(|N`ySgt`j28m8-a`yBM)urnA!J#gd7dl>E zCHn=TRPPvjx z09OHyw=gdi$GAM{RCkvq-vM18$zAU)O}+~+OZrO7N5Q>BW2jhiXQ167s-$5EPc+LL zWv7)iTxMegm>UO2oZB@C7I%g;%}KGiGbOhu-r`0}%i$i2JBwP-Ze_Z~jgj0Xy2VvW z%ZO%i<0SW}r!*=9j+d-E!%|ksUSubgCJ#}@(FDo$PA*Lzp-iG`QW0VR`ci=nehR7C zUb;_XZZb`mx>CX1IW$LdPfBhU)%CDkKo?3~e^ek^0aZf}WrS9DD=VOB#AOH;wu+7UJzvZy3n5?e>U(2aA?Zg!0mw#fxGOV1MiSHO=J2y zmC+~Zp>C#YBwiQ#67*5&`6>JNpzoKMu0@%#X^b@z>)nc7r_mB$N#P{62kek^c-ZEF z;98vN{T>5PV;=<=w@X|jk<(SE9X(U1PU3cnuNo}5K9y^5IKZ{pnao(DJsHL2DLX6f zmpIxTk6`scg?=9&06i|01nf%A0xpw9`*VcPqAg#cV1?g8v zD@Y9z-3HT}Qy3$1IHsf|+M+r=!IT3iv_82GeZ3Nh z392k*xw0I1i&zCrRJrW6>T#7FwVrhJANlc150{JMYIPQt5M7ZJorV*OLRZCDi`!vw zwAIDBtZd8F(lJf+oUIcF4uy)P?y@9HS1!5d$kIK|I~77$x?y>;T}*encYVdBbtJEpEE9`Ik4yq1%HO9S`e5c((@5i_w z-MmTv7~@=?Xd>8Z-YKco{*JN3?xaOAuHF9txXUGX1-%-07~D=HZDrD|Cy3eCygANo~x)*(&b}!Y(xM=VVdw^ENxX0u5!IVgUjImE(EhN$gyuM(k zll{!?>~C?qQ0_#U${Qba*O@98kmRhQ2k8$#;|`wW%t@80 z>D)R<7vQA=4%hUDq>nI@nk0wT=9QHrqG^LI&!1v-25G9~o}(GbU9h}ba#p(#-7GmP zYKR_+wOc{i6rw-GxYs22Rg8O6(V?4zR}Gx|GQpNt$2goX!2K>7W2+>4c9~_`BDvWy zZl~m~mfXqk8zk4Bv^e;UJw!Y3^vzRba>n=I!g%$-+{>!lkw$A`++Wp@Ba8WZth0MNGcu8 zy63122c8PLM{-szD(E+ovl6YK7rJ%(Y!&oYtX*Tuo3=A({aKcmhcZ5~ok@3sLww84 znY2?X+vpx~o8wG6%#U2uM#buFj#2bgj9UzDG%c#KbQ{5)MQ=#X3O|NEl$_;r4E-%; z>7?y=AkrpS?QRA)mR!t55#j-5yQ7iTnQ}ap#<+dy+2C+Kz~_i# zN!opm@np9+#ew7Bc#4ndj;9R-mlV@&O#BTjXT`YuU?p@5Bp0;;j;FOTB?qjcmKetY ztLOwjRmK8Vkv>IoGGGoaDq0{pt4>uEk=zwgxpP+0D#^Ct z1j*rdOyv-5)IpEI&7+dD5}iP=NY1LvM0!2OaiSCH;%PE9$Af9lI3`lm;$)%|>57<+ z6P-vm#B|X^i7&wPFEN%gok(v=&dPKmeIz++L?_Z0lCu(>NDb3ZB|4GXBxfZ$iEfje zm1s3>jd7f4HI>YaB^pJh)ilInWv10s9#e9r)igGy<3y|Jni$84@)+R^lH&CW+~1jQ zzzJK>0UQ-o8tKKm2TG6UcLCL@{9ygAk8Lh+G48@ELWQ=tG5`4t!p#;0yGNEkAh%$-AOv;+ZcGBBUj@P`;!HvAV)+#3h|+K=~obPg=}FmWmgD}W{8 z9*bB=_OHkq2pm7Tt9RPG-l!HUou%f+B339XA$FmXfLtRJE^KtGbYxk+n9fcINqjkl zX{###jQ#}HT4-s{b3&4WBh9I1KcmeHtEb@PqTsz7-^P-GPCV{R3wo(U;t+`y5-TN6 zmN-LVEijQ5OS(bgYKe-%-fDp<)SzTyxvy4uQo1NDy&vc>_L0>}TKYh|SE`H#N76c_ z5|gc6Hrpey3pk0s1I{8vF#3SC_6Ew~C?J!T6c0T|RT|l+7NIJ$RfR)?Y`kOM>qUMg7ik z6iM(|O;N86{2lg-eBUD22zc|UlkkcpS$zplbF=B<3@31ByjRUukK00OiBjp$P)nlf zv|z3}M4ge^U#(E*rkANpr0EiAx`!H^6V*!f#lRGGvO3i@L(RshE0nEV;^aj0;&- zPI*FYP;E9mr^(6kteh;*%E?k8O)DkViuV!@s-4v8Ii#*uXNKNZTh(ukZ1Sn^`rd=Q zSkI-pqfEB+@X zO}hg%=%xA8yR`zSUracz-m9*66>FPi;63VcTM+V1wllO^QD&Q_J*}Rv&CwKfylaWp zsqRi+4f-bSO6`#P3S8HU7vl|ev$6#*h-$^?)Z<9ydCv`6m$)f+LrN-Rw0(ff1q`#m)XA5_NZt0+r%Dqwe36YfOyUA7M03J$%(c#(!(0|97U%5 ztllo}*9X~3v}5)$Q1e{%sUzY!>j&J&)irWL)r!gZm2VA2T~4(^dlJ*COYHXtk@PzV zbAWp3T%q?JEJ^YPwN9GtTxzS-+B28iCTsoOt8BGegKL#7Sv?t^cxg>hWNYZI-5_u$a9meR&2#sqL|M6LGMEW8?+kx5(IX} zKVoYTd~$3+C9t~z_t{p9(Md1b)>#tmoA@_Dzh!&Z)~fy8{fUj2{pYrIQE^)QS5Ran z9Jj63cvMykK1%MCJx*35c;4=$AMCw#Zcw7XC8y{6a(ccmr)Rs?R|{&N$&wx*k3Fbu z)?U%ZAjJohbUHvUXH3;Q$w;25-=TH7YV>=xP4RX5S8_4mt3}_9U!(8QKJs0yKdr5I zZO|9Xv0to=G5O?E)UsxR*yX)BOS@MZSZ2m$uUVj{c)`%DdZ_ z`gdA}!)bh{eS*K}Q*6_MIYxyz&y#N)Qhu<1g85LVk2N%9XOu_Uwk$Z$$hNJcdLtR- zih#aAuSerKFv_;Aj%WHH93_i3qu%IidnV&z$Pb8mqg_l-Z#C?=UGFdi4WS2sBY=K- z1rj?Q0`|iz#2*~}D1kI*KT4$>U=9@m@uy3paT!RA!z7+572|0teZ22UiK?v%hpE6obx2zB5|w4y%G;g%+lLvRNOqB z?OP;nmAF^pVTok0Hku_bgF+x>_K~b#0B?hX#8kl8fmq ziRBXKNo~KC;$De|B~m=wY?ZiIB6+1#iRBXK zNoKt{s`iweGdqjIqdr3Q_eWoe4blZ4abe8RQ+hev@ zY?^M@N9k4i9{nl(kUr8_Z`^2XHu!BbKQZLuRG5d;U>K(u!tw1dI48cD{5sI<`77`} z;|Or0|3l#8shgH{v;wat z1YLv&c|k2Wp$WQ_ConyZZw@_)*Vs9<7cZ=H=oy^ca_|bG0QekUe&^5&)E{~O5mYX{ z49i^F56fKoGc0rIAS`p~RaoZoGfsbW?|qo&(T6b2qmQwQ^5_$o=HUfg0q}Dg3H$<< zVfqo4VLAazyaG~20EN;Qs3`?NT^R|qo9E0LG^Rm&R69){p|8}B>eCIag^!{=KRz6+ zaU$>j+-^+l$;RZbng?bjD0|EgX7x$jfkXR0wt3Oao?SblOft;}oNMN$u(>b*s#a7L;{#ELbc8<0A7%H7>rWuCeCq+GTaLcsVX+%6ZS} z6-yUiSi7R*?elD^eNpYwg-h_$t@+mCVP<~)x%%Se(-uV<%{BFh&4m|qnuC{&>)5y? zUol_4@WqaYm)@mxtXVcx?|9~-35vd=w(Gxn>9tg`E^%>lR<@W(S98Z3koidHp5IE_1@QS3m?sOx#(>xVwR!`_y_=2xpdt zS|J>=lV!83y6-|a87!?sJ%sN<8<>_OX4Q4MBeU_S>~H;A$Kc>%L&5xYIGMApflF&& ze_ev%2HV<~+wzCK7_mV$pS^BElvPOW(%uYx8H!K$M z@=_eOe}A1FPJI{hA1Xq2z>AqcHju3)AR*c86Ly`^9vJ0{_rdr({+szxXMR%OGakuWCsnCSR`iuL?&D9)#>nLGNF$dq; uXx?>eg1>N&-0LNr#dKDCc2Jbmw*ETrBu&#KO_Qc+(-zti`hb>)QYcCV1QbdUa6}L&SdfPVT12swB!G^f z2+UCwd<-fmDn6j24h|~#U_`;8ijF8M_(mOvIx-`U;QiJ-WzRjb_1aqF0r5 z`RUH1L{9K`Ly>Lf%cbT7shh)n7esk1Hdjd{(!J)>Qa9;-^Fygi@EaKN-*9|n(&)O0 zLQ?05mAUrQjCa- zi+)D`70U-g9z74>v_W*4IoTeNCbTTFSIANyb8AY0)TiY@O12`^wS48e!6r>H=LcpR z8cjnQHuG4Z{{?c>Eodz_-Npgd0aA?8jHEDf6L^0h5V;*!Dke%Vm#7p?H6jmLMv?Vq zMP^Ry4q?$CH{A(BZW>0UMmKO}qNBwfO4OjUvJWfSx4|Jg`<5dZ3_XIX!X-Oi ziji^neM;mWTpcB(7oV4Vrg0{bxh^xS>Rt$`c!t%gX(hO(ReHYy)-8| z%F$8an`%(#D+&y2u&Ma^q|!=5ZsKnE@fX>~j*7d;k;epq2qARoAGoHWOO201TG+5o zruoq)*r2fCo=$XiCwgWldV2>QD{R=;!4x)p(uqFZiOx{Y2B_#nkM2Y-=tTdz6Mau7 z`jt*}8`H(ftaH`&0Pzu+(nL$A<8nq{zzg$9^enpFTouZaD$OmS=cFCx^z1>v&DlND zTA;*2wqqeX_2}=+W7(smMzd$m_2tcH+j42>LybX93(1WFl0;b{(keml)Q_2mbHb@l z!PKEgp5~Cxm}#t^H?h+sQ%2vSV)F;tvhuF_8ukxxvz z+H2y7P?jOrUXx(L31S%t-x&oH)@du%sb4FsAzp5YQ|+Z*Y8Z-=_#=Oq#9{kw7Y1S` zI^^2uE(np+H7l$J>8eL9^(J{s*$-*6%Nvpwnnx@3wF@j0>UWzd!ZmUcvcuR0$%BqJ zvC7w>GDqc2c5%yy3=@Yg!`aTf3h5Q|>%7|7URLnDP@@5MQW7BDV?;Z|9zE(8&fBG( z@>^+jFx}R!6OK?8kLIyOGr3v2rc*1fgVA&WW^VIVsz>LN;r_MBACcd`x8UCXdy7}i z+%EoN?$UpYk@xe@KgXKaLV-zW1TNzt)ua2&DP4vJUlUTEr!wuv#6lHt3#t`E7BN5T zQXoBVI=be@xUx=vYRP1>*+tnp#psQ$mKObMd6Y*TgT!~kGq`yN#QaQ88jDK$qv@jb z_P}MSc3X5GTdL`pq-7>20ybhV!q6q{k}@%q#D1Etd-T!)R?=^D4d;k^<}a+qz=v1@ z=oUH?;?5*kA5`{pPBIBI$s+y}%cGgFPsk@ z6HXAV=Fx)e^WFq&&3aGMTOG94bO`j)w*hA)?onwuEqw=^NI9qBkWTaA;?HLP!f@|* zAur8PYNJdv9R@6Y4`3AyBUbrabb)htAJQ^Ah$H6Bg;`xb0Gn?2*nJ3*;z=o0{V63g zJa(}ar90T4`NzVN*oQD9xzm;f6TUHfI`3C#su6&UVm>*jWW$ue4EK;a47aUfuG2?o z1g}SNi5_F8iX}tE&&p`&45&&&*eiL}MZGZ$aj9eJNUR6kE-?>EBtLGNCDbt0p!tzm zu!e*2)@3#>{>C}L$Xtf20lb5W+oe*w5VJvwe#}C37&c9Rr?l8Z^b=vP4J-A?wGCIX z|4)ZQBm(=fqo$yNKZ0D~)unbe>#!2jGzEQYxAUiKCFIeH&7(yb(zE8@iwa|0KI<4| z?e>0W3E5CMQ8}ERtUo#O83&48gswMq!yN;6@>JA>Vi&U{j`TVtI1Z={>pM%hU=2GU z3ADGuX+do`0*R*!0u1s;oa~H`1)rObcFUK(Fb{Ogi5*8whpt4w;@En_Pq2@%FJJU) zOA@g`!Z~$FE@27h)FHW!C7e@-O=xJ6i&26K>&- z=nep8PO7~Uw>z8+{svwQ)dI?1eVJL^-RCa0)BO7jGc7N+=w7p}*dM78!mJJ<`}!Ub z!PZl9e_^QM5;lmOG#}_*FsK2vh{Q{_5{Ep@J&_ZN4JxUI6cji z_8{=|i;DlzrTDIag+4OS$ic-}58FZccn@x1cUvMiY|l!y3oq&&;7N}N^F z+fd{g@cSZ~>8vP;@KH93?%`Q9qQR{BQmExj(WyXt@8m|^oKg`QAj2Ty$MP+bn=Xf4 zsM&zTqW#UdaV2Rh(iy!6?m*V#gWcRy5zwFHU=H)cic%@XOzBlz%*E}UBKt)+*-?`2 zZ=8ZQI7*6gHgiq&;xHcb%qhJxJYp=afDB{712MzAq1T`gpWge0+DBs|)EI%uxI|8y zM|%w_=*wA%)Nxxy>XuSG*e9RDQHvqHi^5LsKjN!0pR|DN)0OG2LFj&W$S1`WE%FD<3V z3OArb>o8aM>4IFJ?BfqqwM&~*g}-Tt8)!Dn5Bii~5bS+RD>?>&OJ@xN?xbQ6*l{z1 z7=)`K#VVO^&gh$$<$|}RS3*@-7AQ(SE;ewiG;>qmK&$`@vGFMkZ$l}lhzHgUi$M8& z5ijV2K5X!jIP2G*l{ThB<%5Y2*P@2AKJM-CaTHWwbqP)*h5m!6ha{Zb|KGjF8ovF% zyTz>gf4FUMrgU`Sm&sD`g-SGodsz&Vi22kxe(5K3|2ff8EELOI!?d%Fn`d*a4|eU) z-Ndc@=FD^ZPYl3|+{6ZvOhKaV>Xa0t@;7|Xk(UM`^fhJyn`f|>Kyy7VVzDwIFAYI; zaA1e)P3$@wvc@d)r*pHib6Aa2K(hXiSXqTFgI@hgdT;_wxd7oQk_W0ZEH}+%=S}l~ zQ7gqcAS0RP&HeK5AiAwzq*KFuv=I$)^y@`f;M@nSyv{yMxw04y%PPlVA}*^e5nHX; z4MaB_C5FGT(cDv+VOwlXyd~y`m3c8S@#e#wn0QeTXY{3F;vr^XoHdak7CH{k7gDD= z^f{M7%)=qhjzRSK4hA|ZG48C~8eD50o*mlRFfg0@2Qad?_n+kbpCfB31A33MinECG z;PJ!2t@$4Vhn2zuw*VJ0a7_H$fm=1;|1)sA2XHaJ9#D&7R#kOByR{0}qL?vMiMQ5k z5UhD2K&#Dvc!rZ7g{wV^2`0H3+Ozg^lUL6lcIo12U?@ zE-KL$=`Olo{YG(-HIwaoX}3urRAbabuJEH=VM%G6gm7c>gO7)`sq14 z<0>Cxqo5@rpWzvdz?EJuej(6BpTV`Ct`at$+`*`s?p~yOX^>VG_EHV1<)V?99N<;G z$l;*wp-FZZ9S5C7y=+zKSu|CuO83%bnN{J@QfxNnor|uKxWQ#8xQp7-IQKVFIrr0| zXnn#ge>I`{aHo#}(VZxk<0LU^PC*DiVu{f1{T9ODG`^zMS?9X`g@ zVjv!kAukt2M84lcq|@~%yNgEHSiTB)ggXN=z)3v#r#CIat?p)T+ z6!!T}mM`;gT9@W>LJvUerTw6FIv+!$(?7y7F6os*;S~jZ(#1V+IT*(ZNxF^cFJB&dX>O?L|P|NQJwaSPUhP&|GhL6^H3*G zwwS%5f1d|=0uB;W=0ee@deNH_g9Fr}_&U8PCf5`%OLB$$QUvf*VUXw0`#R5?FYOn4 z{L~*3orZ`xv?y>Oq*JDGAjFIQ6$M)o?o;BQn;!8eg4G?|st|KH=R9TL!lYypoRP zvS}HnBX4o9WF&$s!SQD2ria1ZLxZS5a8tomgX8VYP0dNJNI3n>nF!toT{pqq>P`f= z&`|0wEO&xCK*Ok9aBI*m_5qEcfe24@Ih57l&J)Ru^D%c3T_Cu3(=Bd@uw0U5aYF?+ zBF*B43Cj$Z#SN!8y7WPg#f=bLOt-j;g=JI)7ek1Vf;E#3M+xqluw_~!dND6E5$r2n zge{%R)(}htE2Yuc&=rK}g}zinGoF-u457;07`j~O`pC?UrzwJaTw!h^&Fo|un@&-o z?1>6gbas`k8(|@OQ{P z8E1fImTc3h&F28_uz7*^3jCGI^eKhWBj{i%(>(>gAMk_zQh45Fi-o~#wK3+XjGDkH z0{f>HLQ){GM~IVX^OZt!i;FFP^e>eq`Wi_~)Cawnpk>@AkkgguLv&1{9Rk|~zGblF zA0e(mS;ogP^y5^JOEg7g++}0MR)Gbny%DBAP@*T&`hmV9PzAgwYY6Z;QM23t7x}Zm zNLvwA`Njbs(iqRue%gZp^3$hC%TLb>bQny3mt`n1KmA#Z$F{79rqiAFa_t=2qfD^* zG1Vpm*9qJ#O-2$!9i02xoU1^eP*E#hk3m%kON-G|^topUJv%p<9vkGDvWH$3vseombQ@k^u+zm}=C<{;I2q;6pmDtML3g*AGCWktLkIglEK6XA|A#Gu zwhPXxtDj!~1$U^OGp7s><#201&B2QbqL(Q%cp5XQNpNUw-Z6Y&Y&c#*u;+KNI{g$E z+>N$!-yy7{dy-r~Eui^nm*Do&gF(ZNH6}RAXMkk9xM-gS0SXE(K?^CL0@ORn{aJ96 zlHB`}4&5uUBs*Vb)9;epUyw|I^7>h+Rbo8`Xm^skT5uBHW^mdY1eYf`s~`a?72LYa zr~OWQfCk}No~O^wup8X&B=?5W)t*hh0pggjo<2~@?71`!FFGvKzV=Zg+T&y_`;TaEt7{=!f%g=iz|22bbD= zQ*AXnT~E8ii|pr8_F#+K8D3@YN3ZfDk?6(k_WpEaXgjyXem<37$lPA)hr>`cJs>!% z7S*&(a8{z#^m2#p3$2>o1&8>1>GiCiwF~H`VV0XnRRg6YMAJtkf29|7f9!C3(>rg=#n2OLTBlN<*eNgt0r z8*n6jWpN_lNNP*!IN(V7DXHUlBkBBcqFqb`97)3jYZYoFjTM|#sF5^DaLaMJd7?4*)2t)YcU zWs(1Vm_C!_xH2{Lg5az~Yv^^sS&7!rA;DRR*3kF~XA`ZVnS!$t9ZkywheTs2X)Uct zvYcrxWlTJqX)WbgoG5866(n_>Xf2f{b)0A|MUxyS%0n&D^I2}UjC()R7rF2{hFWoq zROmc6-cisQNMago3-J>;9#`1N$>_>rjHfa_fj0^=&S-A8g2Ry8t>PHO@_le5(_S09 z>kms6$0?R80mj$x@QGuS#(2iVmaJ9ipYW!N@K#(YMh^-{yAfESPmv0qS&*+xoh3i( zEa8xf2&vK`1kglaKF1NBP;N#mo9K+4{*2Bz2;Tw1+u`8ZBrN}yggY!#%o1?`yipRO zlWy+oR*m~=mCn+#rJSsjWjPR)P$&icQ)#Wi32gvMq8l>x5;eFdhb7%a$E>RS0?!df z{nOdVLQ6f=!4eBQOOmu%H+pQ0cLNXcEiMSe3jv^;Dg;&vtQI&z;241u1l9pFXqKQC z2wW^slGs}vFpCyQI-X}2OFSo?v?8Ym=oMHjK+HWKt&jQ7rJr1laJbuBMCmowaM@K z{s#L+o*xiw3%p56ISy?e4O`?y&4&eGUw-QujJ)l%b3%p^adraBvFHkC!r$RlI zN@Z_OKV_~kohwXtQmvy#sa66RW0es~Z|4LhAEPc&zBIwXi5hA7bX-acO;g&4a%U?Z zsSj@7W0cQbP09q|3P^ZPR7kGWhm>lGA2j#K#kr3wl|nv2irr%S9hio!=agBBhG!fU z3e)FhF9_)xcxE_WSP7AOw|K2#PfCyjiP6o>Z{$ouN~w2yW;zfktm z&)VM=yYgw)X=SH8-$iOdc{ArBWu;Q+wyAdI6y&Y6HRkfGt@LGDz8aJcBU4FvQ0=BZ zEKLlRsvDF&p}xSULg&FI;5)6{r_6BYZw<@&Y{DmEWZq$_7cpdnCJZU+A=QSeay-i+Ph0j@<`$59vA`Q`UsHsyl`2 zBN%C&j$r1$s2;}v4VR89Dju|sP({$81SRfkP`U(t9f4)(rZ(m4@G*6SJSOc6^^~$w z`(E9y%=Rvqw<}Avf2#ZBXH!#UyTS)xyRulz0oI1PXd|RSS&^8wL^xd{g4q>*rnf8n zpt(|hQXi>Rt6$kB!-nUrq=eI0yEgT-vP4WVyHbO%+Lq8{r$ZT|zJ!T(O!>i^uO3s3 z^yTPZH=Qf=x}7BfcfPuh1~_g&y-ww>(&|)K>KZM!K&^GI(LBmbG;Sq)-K*`R)#^s= zVN97#+F~`wyGer!7dv_i1)m@va&6HhWwh%FSnf!FL93ADto3q2{ZW5etCaVry{0A9 zYtvfM>TB1#+ANt*l(SGLofZJU&=$zQ$^2GJ2+7KrdNS>2Fvm1qU#IR*b?Lkxc=d#w znU)D0o}RC-RC$0F$b7=wCi?AB=HeM0E8aFj*pJtbh-v$&n6{saX?vgAUCmd&5!J;= z+w#?i)wk8jDE>e3gw#ssfei1zEeGxwn^Worg2cP$ua4 z`mJa@4K@|pZAyXx_0tW)U^fn|m zIt=WA7mhwh4@#$44lW_80(QlnvIl-RG#S`i-~fSxh5TZ=67sP^GEv}kS^~)&dJx!1 zEso{#>m;Q-AiqURoiE9XG|2slkSGevyDBNtGw#8_a?f<&de3s;k1@{!xLo0V3HZ3T ztJ(z9!2+iWoGx&=zy}1rB=8e~ipKVN+H(9xb*iA_0yhcVE%2zosrqudB4v}#_PYfh z6&NE!xDYr<;8cNeOJaMU9!{BRTTUl{p9uPE>f_uE$w24Pl$YR+oQ#76P8ApzxJlq{ zfky>Ws<0F|RbV_OE}I1IwiGTliVNH=@TfpaV|kvyK?08oB)4!XaH_z#z)b>o3pD9z z%94uZtK_@nUGlfsNiI;XP#TpNl~|qnwEC+0C-r^xTUF8eXw$R??P={J?UWYLOZBVt z`T7U?C;Dl9y78p(wDFw5@20&t>UPCBu>j}8BAja?;-$31`#DaJeX_m=9#1_1JZgLo ze9n7{vMWrUy9(+bK(h~4;fr5Eu+yesZ(-GF;>&g)9AVzzgs z*YFy>EA6MA=+8k=1@tB?3+NCm3+NqK7SOv>VOl`%!L$Ikfu890moP1&uV7k)*LMSf z-@>$rPQbE=zN7Pj-@_8`kEE_ZStUH`C zJ=IuZsBu2NcK(};V>r(59e*#GiOVxG-og=`E%D+sJKkg|kC~5N-YvtO%iJ$o7~9P+ zF0U(JDJ_*+rSG)_4b>AgT36)TbVGdhg8l;Z7ka)NF`~4{7%DF^%rKb3iDq=x5&U+4$n1ma^!mZ|X4;(5zMAO5Su++-8C5^GzP@_l!n)~mM$c=x zVor%<)X%G%Hn+aPjL&^DgLxEj$S<@+OV)?)YXqjf#|}zg|njb#xPO^$VvAX{fulrR?$T#QS z)GCcI&s$j`jWOr1%)tMcbmPi%GXElZ2k9B!p}3^wNlc^@y!^#Hv~p4Q0#*0M?@Sk*m=X4Q~onc0MS6hCKP?Ghf= zabBMI?cT&X*+!BlvB8tL-OeErtHGGXH(xJpH@DoJ7u?BhpHp;iJvWRWM-LO@(WT?& zhc^de`z#;cF%Hs@9ukygd<`ah>p8`@ZFz8gz!QHMF}!iaI3R)@V44hALBeJ>Z{ls) zz)N#>;e;aoc7~@82_D85;$RSt{Ui=>GRKUhE;X+l33r&t?~ zq!!;GEaJCg=+VZ7Baq0*QnqRM^=z0_hvZ$teM?m9Vc~F~fjYR{vP;RsA(Ld6%Z18# z5(CYTSC<>3G&EQ?$_(CGHgN)i*}U}*wLfWeDYiIkZX{rnN~$;h z6pty78oP@>g_*YOYK8?Oxx`8HzFV_m&FE3$q$vDa+y=xPkGJs>!K{t9c@RKmVOY#} zT!gbW9tvJDh?9WrW3C(ke=Oe_zC4W;%T{}rt?c*@RkWduHks?22y(NY>`tsitgVCx z3TQmuWw&#p_ZWGygiAJyam9b;tTpcyiOe`}j}3JYOPIL~h9HZCFLTz~3Ulk)v9aSQ zv_T4r?3S~zw_{nlJtN#s+3kt1^EFYu?3lbSeN5z)goB6 zPbm?~W-8%n`DER1u$#9mGN0BRwGs_(n0;-J>#j2gZ9EU#ZERzM`Ta(>_vo|MeTDHy mrt{Y2`{i$*HGAB3)SQ3U$QIY#KPs|wK#OP7U!`^B#(x13Sy0FT diff --git a/Source/AnimationUtility.cs b/Source/AnimationUtility.cs index 705fb78..1056a62 100644 --- a/Source/AnimationUtility.cs +++ b/Source/AnimationUtility.cs @@ -16,7 +16,7 @@ namespace Rimworld_Animations { */ public static AnimationDef tryFindAnimation(ref List participants, rjw.xxx.rjwSextype sexType = 0) { - //aggressors first + //aggressors last participants = participants.OrderBy(p => p.jobs.curDriver is rjw.JobDriver_SexBaseInitiator).ToList(); //fucked first, fucking second diff --git a/Source/Comps/CompBodyAnimator.cs b/Source/Comps/CompBodyAnimator.cs index 7614254..efa0fc5 100644 --- a/Source/Comps/CompBodyAnimator.cs +++ b/Source/Comps/CompBodyAnimator.cs @@ -26,7 +26,7 @@ namespace Rimworld_Animations { Animating = value; if(value == true) { - xxx.DrawNude(pawn); + SexUtility.DrawNude(pawn); } else { pawn.Drawer.renderer.graphics.ResolveAllGraphics(); } diff --git a/Source/JobDrivers/JobDriver_SexBaseRecieverLovedForAnimation.cs b/Source/JobDrivers/JobDriver_SexBaseRecieverLovedForAnimation.cs index 0456ffe..30302e1 100644 --- a/Source/JobDrivers/JobDriver_SexBaseRecieverLovedForAnimation.cs +++ b/Source/JobDrivers/JobDriver_SexBaseRecieverLovedForAnimation.cs @@ -41,11 +41,10 @@ namespace Rimworld_Animations { get_loved.FailOn(() => Partner.CurJobDef != DefDatabase.GetNamed("JoinInBedAnimation", true)); get_loved.defaultCompleteMode = ToilCompleteMode.Never; get_loved.socialMode = RandomSocialMode.Off; + get_loved.handlingFacing = true; get_loved.AddPreTickAction(delegate { if (pawn.IsHashIntervalTick(ticks_between_hearts)) MoteMaker.ThrowMetaIcon(pawn.Position, pawn.Map, ThingDefOf.Mote_Heart); - if (pawn.IsHashIntervalTick(ticks_between_thrusts)) - xxx.sexTick(pawn, Partner, false); }); get_loved.AddFinishAction(delegate { if (xxx.is_human(pawn)) diff --git a/Source/JobDrivers/JobDriver_SexCasualForAnimation.cs b/Source/JobDrivers/JobDriver_SexCasualForAnimation.cs index ee111f9..25e46f3 100644 --- a/Source/JobDrivers/JobDriver_SexCasualForAnimation.cs +++ b/Source/JobDrivers/JobDriver_SexCasualForAnimation.cs @@ -14,11 +14,8 @@ namespace Rimworld_Animations { public readonly TargetIndex ipartner = TargetIndex.A; public readonly TargetIndex ibed = TargetIndex.B; - public Pawn Partner => (Pawn)job.GetTarget(ipartner); - public new Building_Bed Bed => (Building_Bed)job.GetTarget(ibed); - public override bool TryMakePreToilReservations(bool errorOnFailed) { - return ReservationUtility.Reserve(base.pawn, Partner, job, xxx.max_rapists_per_prisoner, 0, null, errorOnFailed); + return pawn.Reserve(Target, job, xxx.max_rapists_per_prisoner, 0, null, errorOnFailed); } protected override IEnumerable MakeNewToils() { @@ -49,6 +46,7 @@ namespace Rimworld_Animations { sexToil.FailOn(() => (Partner.CurJobDef == null) || Partner.CurJobDef != DefDatabase.GetNamed("GettinLovedAnimation", true)); //partner jobdriver is not sexbaserecieverlovedforanim sexToil.socialMode = RandomSocialMode.Off; sexToil.defaultCompleteMode = ToilCompleteMode.Never; + sexToil.handlingFacing = true; sexToil.initAction = delegate { usedCondom = (CondomUtility.TryUseCondom(base.pawn) || CondomUtility.TryUseCondom(Partner)); @@ -61,10 +59,9 @@ namespace Rimworld_Animations { if(Gen.IsHashIntervalTick(pawn, ticks_between_hearts)) { MoteMaker.ThrowMetaIcon(pawn.Position, pawn.Map, ThingDefOf.Mote_Heart); } - PawnUtility.GainComfortFromCellIfPossible(pawn, false); - PawnUtility.GainComfortFromCellIfPossible(Partner, false); - xxx.reduce_rest(Partner); - xxx.reduce_rest(pawn, 2); + SexTick(pawn, Partner); + SexUtility.reduce_rest(Partner); + SexUtility.reduce_rest(pawn, 2); if (ticks_left <= 0) ReadyForNextToil(); @@ -72,16 +69,13 @@ namespace Rimworld_Animations { sexToil.AddFinishAction(delegate { End(); - if(xxx.is_human(pawn)) { - pawn.Drawer.renderer.graphics.ResolveApparelGraphics(); - } }); yield return sexToil; Toil finish = new Toil(); finish.initAction = delegate { - SexUtility.ProcessSex(pawn, Partner, usedCondom); + SexUtility.ProcessSex(pawn, Partner, usedCondom, isRape, isCoreLovin: false, isWhoring, sexType); }; finish.defaultCompleteMode = ToilCompleteMode.Instant; yield return finish; diff --git a/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs b/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs index 6600394..310aee1 100644 --- a/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs +++ b/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs @@ -41,8 +41,8 @@ namespace Rimworld_Animations { } else if (__instance is JobDriver_Masturbate_Bed) bed = (__instance as JobDriver_Masturbate_Bed).Bed; - else if (__instance is JobDriver_RapeComfortPawn || __instance is JobDriver_Breeding) - bed = (__instance?.Partner?.jobs?.curDriver as JobDriver_Sex)?.pBed; + else if (__instance is JobDriver_Rape) + bed = (__instance?.Partner?.jobs?.curDriver as JobDriver_Sex)?.Bed; if ((__instance.Target as Pawn)?.jobs?.curDriver is JobDriver_SexBaseReciever) { diff --git a/Source/Patches/rjwPatches/HarmonyPatch_SexTick.cs b/Source/Patches/rjwPatches/HarmonyPatch_SexTick.cs index 7a55e98..289e8b4 100644 --- a/Source/Patches/rjwPatches/HarmonyPatch_SexTick.cs +++ b/Source/Patches/rjwPatches/HarmonyPatch_SexTick.cs @@ -11,32 +11,35 @@ using Verse.Sound; namespace Rimworld_Animations { - [HarmonyPatch(typeof(xxx), "sexTick")] - public static class HarmonyPatch_SexTick { + [HarmonyPatch(typeof(JobDriver_Sex), "SexTick")] + public static class HarmonyPatch_SexTick { - public static bool Prefix(ref Pawn pawn, ref Pawn partner, ref bool enablerotation, ref bool pawnnude, ref bool partnernude) { + public static bool Prefix(ref JobDriver_Sex __instance, ref Pawn pawn, ref Thing target, ref bool pawnnude, ref bool partnernude) { + Pawn pawn2 = target as Pawn; + if (pawn.IsHashIntervalTick(__instance.ticks_between_thrusts)) { - if (enablerotation) { - pawn.rotationTracker.Face(((Thing)partner).DrawPos); - partner.rotationTracker.Face(((Thing)pawn).DrawPos); + __instance.Animate(pawn, pawn2); + + if (!AnimationSettings.soundOverride) { + __instance.PlaySexSound(); + } + + if (!__instance.isRape) { + pawn.GainComfortFromCellIfPossible(); + pawn2?.GainComfortFromCellIfPossible(); + } } - if (RJWSettings.sounds_enabled && (!pawn.TryGetComp().isAnimating || !AnimationSettings.soundOverride)) { - SoundDef.Named("Sex").PlayOneShot(new TargetInfo(pawn.Position, pawn.Map)); - } - pawn.Drawer.Notify_MeleeAttackOn((Thing)(object)partner); - if (enablerotation) { - pawn.rotationTracker.FaceCell(partner.Position); - } - if (pawnnude && !xxx.has_quirk(pawn, "Endytophile")) { - xxx.DrawNude(pawn); - } - if (partnernude && !xxx.has_quirk(pawn, "Endytophile")) { - xxx.DrawNude(partner); + if (!xxx.has_quirk(pawn, "Endytophile")) { + if (pawnnude) { + SexUtility.DrawNude(pawn); + } + if (pawn2 != null && partnernude) { + SexUtility.DrawNude(pawn2); + } } return false; } - - } + } }