From a3c073a43e2274329995bdc8d463016964789a53 Mon Sep 17 00:00:00 2001 From: moreoreganostodump Date: Sun, 12 Sep 2021 17:54:15 +0900 Subject: [PATCH] sex history --- About/Manifest.xml | 2 +- Assemblies/RJWSexperience.dll | Bin 28672 -> 33792 bytes Defs/RecordDefs/Records_Sextypes.xml | 62 ++++-- Defs/TraitDefs/Traits_sex.xml | 2 +- .../Ideology/Rituals/RitualOutcomeComps.cs | 6 +- .../RJWSexperience/RJWSexperience.csproj | 1 + RJWSexperience/RJWSexperience/RJW_Patch.cs | 168 +++++++++++++-- RJWSexperience/RJWSexperience/SexHistory.cs | 200 ++++++++++++++++++ RJWSexperience/RJWSexperience/VariousDefOf.cs | 11 + .../Assemblies/RJWSexperience.Ideology.dll | Bin 39936 -> 39936 bytes .../Defs/PreceptDefs/Precepts_Rape.xml | 4 +- changelogs.txt | 9 +- 12 files changed, 420 insertions(+), 45 deletions(-) create mode 100644 RJWSexperience/RJWSexperience/SexHistory.cs diff --git a/About/Manifest.xml b/About/Manifest.xml index 4ca776b..40ce23d 100644 --- a/About/Manifest.xml +++ b/About/Manifest.xml @@ -1,7 +1,7 @@ RJW Sexperience - 1.0.1.11 + 1.0.2.0 diff --git a/Assemblies/RJWSexperience.dll b/Assemblies/RJWSexperience.dll index 9a66324c60798c1506993e488096f6803bd2538b..0b2e387932f04be6bf742ac85e50d6c5908c3b5b 100644 GIT binary patch literal 33792 zcmeIb33y!9kv3d+>D#SVtEFyjmgPmZv1w~V-WLqEByR%Co4m*iky}zrYFp|n-)>Jmys!p9cb?Tf`r|!A8Mf>i*C4-1eeBXJ8=pkJBvr6E(!8nS8)4v*| zFBLp9;~{OsGc&dg#FI6{j@|D>hiZDFiG-c1>5kPnBZ-=LqGt7`j+!C6H`Z8G1F4lYlwU~~IS7 z$F2ZCne^4Q8Z%LkXaU~f{^(Ex|u|8wvHE}C16D3L4|#(WxUwstsKYn~o z5JHB>7^_rFw%uvaz+}wT$=z_8naP;T<8y*utNunwe)-&}1sqF&rDtSeUUkqIi}2a#2)b{FQg zyNcU=KiUmzIgK`h8`fNvtEQ}#77M)THm-2nI8ex}Rjc;MBrh17&$jaP8Cw8gU%>V= zx$F}<5%>1vtpMYz1lUa|E;aQKub#9U7DHOhk=2l65f=y#!bAXXu2yc~wG#J-%(Hqx zmTrCv*aqAdctPc~u#8(^9+Y449R_X-%*(XkmSlV^AtAqo<&al>;MJMa!i6A@G4J#~ zFfY@B+q-NFT$$h8YLV$U<@yf9%GniTEhxEb zcBM3S*X&8M;-UMAmffYEut!?HYj&0M0ZgE~W>4mQz(0yv;2*^V@QZY=V6}523q~;6 z{bQ|AeM~~4JEG$&p&3p`f2}-g##TdAOpxGmTKmpz&>6up@sF)xl^lN{B5ur888XK% z=5mgCV=Dnqj8vkYlp2hkPVo3zOd!$Y; z>g+(wDQ&XIK^w@oLV5&l_1DkT$F{OZc$Uk?qkQ+yJI9Vi_CV5KS96903g4NTmCz$_ zykEC@vvs}=H-<^gN#6XGNo#@CKCX{qd-F?s(n@4E8px}C618(`ls0*2W7^)l$~Db4 zk{;~vr!}3^gxv-K|GU`2zIa#N-}=jR?{Hp3HO7o&SSnjWe@mN8`XH|S(XZqhPB|)1s^AO>*%;S$=7Qra0;r5&Ji&$k zO=rpJT;w~Zvjtpzlu>tUz7p-3&Ou=_TFFx$IjrX_5#=BQ2> z_Ga#!>Vz?;&N6x5wDiiO$i2+kubx}lYkGLY%!o@)h?z*RBb3*`7PQiEQ7+3!Vvblg zr2YCRB9(sxwrYN>zT8ri1o<1sfbo?wkd?I+wO2?k2nll(i`ZYeAfPMzIdL>=XX+Ko zYWBTG=zwcSu6Dl_!JcK+>#PuRI$`q3M^A2t(xWo8G9;qa^@OfCJUTAQo^{b0Mk84F z{@PFIqp;bmpM>O;5ql@=L`H(?!m!r8Ow&h^P?*T8Mv+nQHPXrT_p7UJ9Oc^RUZy@` zi%AcpZM~9={zrNM$>F0KBn`k zuo+FW&u8{2VKbU$a}S&XgJ&h9>FLKEa%KpdQ8iiF*9Kv-$p_vMYdVke#TZ2l@z*a? zE;B|Eviu8*AtN?)9_0%h$6Yo?_i|wng<^N-QNGlE4({c)7SBL|nApk58yqMz8Z#M#)6b9;tuC{_I#RXopk z>B^_h*B}=eNSBRct1z8s^La>9O~)|v3 z=hl24athP=Rz7b&^L~-fL&gF7JbCs>Ry{kP#|gEwCZC54z;ycadB_Az=L7jXNgnUb z=PhHo6ZyR5%zG`LcOml%tvvfyFs~t>cM*(M-mZM!TILW#h zW3Da#J#b@lWIym_F9V;6wEo+EN%A5Gz$~l?fJIbfY#tqCp?^>nV3xmrma+NVnaiBI z8E1;*r!I3ueW__|wuhiIFKb1c3Gi$i;6TW;cxIY03`WSatJFkB$(i$RbOE8j+UGt0+F8TY|^;|eDasw`Nu;1x~_(p!o$#@B> zbhTpiLmAvZhMmcb{4E&Bz>vDJn3P-gjX+flFy%0>Q1oyDhQ#f|xD@K6AHgM{%idh1 z%l=(z`j$P5X>L{ST7w0~cSID%cRIe;fzL;F{I&2M#&;FIEWUF16~sW603VQp=Z?0Fo==NlSRVzK|zmDcx+~&G`nh znv8*5whTb*;*uP@-mRO+AI-5{87sy2tEO_8zB~&}# zFgEHDBtF*e9r*+-;e325u3lLWyaN0N&WNAB*w|>PI+5GJxyMljI==@`3V3lEnaU$VLfs?uJs2BCND6&^^4p)rLE|j zYI+wW?tnxDiJ2vV@tYi3Rz~gwQ|_bcF37E9>^`FcZ{WEV3MMxq6P{*8ujPy)mRcnBrnjiB&|OpYx>ZzAU*@Z7^!uh4 zH+p>2Lkp~eNVjNZA8&%rpy=e`lrggJ0){}f+?sUslR$YBdtuegYhJsjxhjH5Z^iAq znQhsh!i5LrqM3bteJdk>4|4a>djL5}U*NW3&?2abTqT%FX!~Ba0rNtqX4ET|{$0XzR1W6&{5oSu zp|^gTSM7uq%BCC(=CTE2b*QQ4nL+2B-HuXAsVIa!`Y1P*W5^|X@*iN((G6hhk^9)T z`TFQ*a7|TU#6d)m9$KT9ayw~)g)>Au6Ve|W?UzV@K8yOZ8v=8}nwr_(y7SzCkjpF4 zBbYW;cD5Jd82b)X#m=@K1@`BFSMCbbRVvzNe;y2LAr9p`Ykes2RW!XMH(g%~}$M%BG??a%edSGZX5=0|XwDy6%Q@4tao zo1ncSXg>;c(w?{VtzH`~Ta~p&<<^SY<$B~>D8S(dn^(IVCo5bhZFQ$&FL%pzJ|W9- z0ak3<1&q1}0I#QAz&!Mjs1ebc$45G@W`RD+r4p&s^O~bf%h?C}p!6^FLDhTt0DEoP z2Z;RQ1D$84rR+##9l>^~qE1zYMJ;aN^M!e^wG6g$OpuSiqOdMxjcw-6J%%oK`n{E% zg?C%0J=oPhMxDhErjrl*QRO@XpZLgZcydg>J@_=i%#Al*~b2v_~=f_7i&5{2H z>UMVmf1+iNB*lX6^4C=f!lF+!ckYfn0Xg97TXykfe5Dk$?CGqnM(i9zyU0M$j}s89 zcU1m6`XmUyn-bekffzw*SzTY0%c@lwbL43h+s^-li3a|Zr z6gNEgGrzaq^4k9h;-_V`1sF690gq1->xMba<}uV|Kfs#9v+u}BNJf4DfYZky{8rDM zAga}^$Ua^L|1;9Zo=1VY?GE$c$n#BVRtbY&+T}6k&&rilfc2wsPKPi{lX;9KB&#v-kHxq* zKZ8P~C}C^1{l8c@Zm_IQ`vst5Jt)`9A}<2R!&f_OTx98d)-^TQ^EDgI&rz1=6V0tJ^W2?d0UzYA<`oS!{i|OxY>D^5KI!o_i+FOum ze=pNZvNTdo)7dHXZ@542W4cS|-!jcJz!?(ycTDeN`l!(V#x%Rz`KZvpXS$o|&u3|# z#m)(#|G?$FOrI3`4W@Y&IIju)?@VI>m@;=%GI)&ruh81YB!ZDO&VerTBqU*s{t?wi z{{*16qEpZ%yHM?!Wgh>#mrXrK*`iEYWAY%|z%wdiL#;8w)2Qri0~4jC|%cKws+9gE$SV( zS?jj9twz~RpqC24SrgQR{XR{V2x;7 zAo%mJ+)s|+m-xBeCq@3R#aE{QE$T$yEn4DdJ-bTS1MT9y*I|#JR+%hwQfgg{QSj5J z%NgD$ny(Z+FACouV*YBe{10d`NaY%jS1bBhLDQ#Pp;=Tur8MZLMWSI7H2Z12;H^^` zUn$!DUA*+Hc;?H}%2y_F=~FT*Dy6NTOItCq@HLUN#c~f|n7;4lG5Spzk42aCeR~nx z^N9ks=N8fVmXCGrlNNhLLvb1V>R1JjW4nxUm&F>c4qb?`yG>+zpvO=D0vSJjP+B}t z!FoO~r3uUdKUHCTQHoh)(cKu$$yDQczSzQN`QE)>DH}&r7}ah(p|7e?XNj5$d-twN$8%YE`yOsMq|8 zS}s&fbhgn7p>8kZvNpO%s29SDx>ziG0DX8CWh;e>`Ix$dT7>!m?0lXsMP|-^c@@-4 zco$`@P`AUDy`VM-^&tAU7iUc!(n8r(ZecU+66y))9HK4MN5+g2x&eM0LI%1&hf2^e zne<4YR5R&2da1T!eBC65O9d{gWc)hNq7gHNHGC)h zY0~wRxTn{PZ}$bRgjJsl+@>$4*CsQ(zl!1A0>33NB=92w#|8dz63a{z+!Qz-z zK79&sjlj{9lJEwJz1*e+AS%LS0MO1fB==P=@-3rPGfy z)ORsE+GY?w*G`%p){qNq6Y6FfsBD5K9~DZqfW2>KuH+Ylx^dF6FiTd=N|)UZEsa7w zPUlZ~1<`7$OFdftBT$3qizL+>Pg_2E+NEv?{up^dQ-sTIq<@|Kl2uNhbE%(!s-PEK z>RX^HX~kS6c@oqlx>-?TOBH=asB3+m;#Uy$ek|1EbO2teq6FU>(6ux?Z{E{BgziK?TGwBsoMjx&&!CSqn z8>AjRR#fSoMZ-cpPREO;duP)RRGH{JpZ-~>o9UA9`QG#CcP_OYRD^t-P}0p*2Wl=& zcd1!L8xa3j2&Klhp6+f^l22CGd+X^d3ltTpSnO@2pSaYn@KgE)^aq!kTr{pVQOQEL z-jo&Id9=@^{#5ajwU9pTQeO+N@h+k-Emo2ro3g>Xn7-{&_k=sW%jw@->L0^B-izqG zC23m@dYkFi40YJsLZ8l|R?|Z+_3i3$?^^noOxbnb_4EXCcJBL=)oZ+$&=kq^nR>~( zln!O6HQo(0F4W`n%c>i_?era&YVdu`yODk`lp6QV^dC8rn`y&xZsBoa$t`rHP)ZVa z33=4t33avaS>K)B4!YZ=e&hRlQ1`pkLGv@9zTr~0O?m|T+0#Nj?z^Y@CcT5!UC8aF zTi7gAy6ka9Nu21Qmt4wIs6k833T5ZIDG#EBn_OyPrH1!uKPl9Av>SA$zABVzVH=%r zC3${sqgPytb#9~cF3RfMMjvx2*14TNBb3s)ot_X%>D*5LDAdhV?D?8^JC$6_T5hI4 z1RwKuQj<%a3_auBL&Gi=4*at>N{_nKPQCMQddQ_N#r)h)6D_Lj?xG>%0DaJ))!>)#{!K17@4X@E9CC9 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 N*2t#+7F#Rb{{!bHZf5`h diff --git a/Defs/RecordDefs/Records_Sextypes.xml b/Defs/RecordDefs/Records_Sextypes.xml index 2db9285..824b66f 100644 --- a/Defs/RecordDefs/Records_Sextypes.xml +++ b/Defs/RecordDefs/Records_Sextypes.xml @@ -14,46 +14,74 @@ The number of times of anal sex. Int - + OralSexCount - The number of times of oral sex. + The number of times of received oral sex. Int - TitjobCount - - The number of times of titjob. + BlowjobCount + + The number of times of blowjob. Int - HandjobCount - - The number of times of caress using hands. + CunnilingusCount + + The number of times of cunnilingus. Int - GotHandjobCount - - The number of times of got caress using hands. + GenitalCaressCount + + The number of times of handjob/fingering. Int - GotLickedCount - - The number of times of licked by others. + HadnjobCount + + The number of times of handjob. + Int + + + + FingeringCount + + The number of times of fingering. Int - LickedCount - - The number of times of licked others. + FootjobCount + + The number of times of footjob. + Int + + + + MiscSexualBehaviorCount + + The number of times of something sexual. + Int + + + + OrgasmCount + + The number of times of orgasm. + Int + + + + SexPartnerCount + + The number of sex partners. Int diff --git a/Defs/TraitDefs/Traits_sex.xml b/Defs/TraitDefs/Traits_sex.xml index 725cd49..4c023b5 100644 --- a/Defs/TraitDefs/Traits_sex.xml +++ b/Defs/TraitDefs/Traits_sex.xml @@ -8,7 +8,7 @@
  • - [PAWN_nameDef] + [PAWN_nameDef] has no experience. 0.1 diff --git a/RJWSexperience/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs b/RJWSexperience/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs index 04fb530..15650f8 100644 --- a/RJWSexperience/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs +++ b/RJWSexperience/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs @@ -38,8 +38,10 @@ namespace RJWSexperience.Ideology } return false; } + - public override ExpectedOutcomeDesc GetExpectedOutcomeDesc(Precept_Ritual ritual, TargetInfo ritualTarget, RitualObligation obligation, RitualRoleAssignments assignments) + + public override ExpectedOutcomeDesc GetExpectedOutcomeDesc(Precept_Ritual ritual, TargetInfo ritualTarget, RitualObligation obligation, RitualRoleAssignments assignments, RitualOutcomeComp_Data data) { return new ExpectedOutcomeDesc { @@ -74,7 +76,7 @@ namespace RJWSexperience.Ideology return false; } - public override ExpectedOutcomeDesc GetExpectedOutcomeDesc(Precept_Ritual ritual, TargetInfo ritualTarget, RitualObligation obligation, RitualRoleAssignments assignments) + public override ExpectedOutcomeDesc GetExpectedOutcomeDesc(Precept_Ritual ritual, TargetInfo ritualTarget, RitualObligation obligation, RitualRoleAssignments assignments, RitualOutcomeComp_Data data) { return new ExpectedOutcomeDesc { diff --git a/RJWSexperience/RJWSexperience/RJWSexperience.csproj b/RJWSexperience/RJWSexperience/RJWSexperience.csproj index fc7d543..45fe3cc 100644 --- a/RJWSexperience/RJWSexperience/RJWSexperience.csproj +++ b/RJWSexperience/RJWSexperience/RJWSexperience.csproj @@ -81,6 +81,7 @@ + diff --git a/RJWSexperience/RJWSexperience/RJW_Patch.cs b/RJWSexperience/RJWSexperience/RJW_Patch.cs index bd111b0..bfd004c 100644 --- a/RJWSexperience/RJWSexperience/RJW_Patch.cs +++ b/RJWSexperience/RJWSexperience/RJW_Patch.cs @@ -40,24 +40,139 @@ namespace RJWSexperience /// /// If pawn is virgin, lose his/her virginity. /// - //public static void PoptheCherry(this Pawn pawn, Pawn partner, bool violent) - //{ - // if (pawn.IsVirgin()) - // { - // Messages.Message(Keyed.RS_LostVirgin(pawn.LabelShort, partner.LabelShort), MessageTypeDefOf.NeutralEvent, true); - // RemoveVirginTrait(pawn); - // FilthMaker.TryMakeFilth(pawn.Position, pawn.Map, ThingDefOf.Filth_Blood, 1, FilthSourceFlags.Pawn); - // } - //} - // - //public static void RemoveVirginTrait(Pawn pawn) - //{ - // Trait virgin = pawn.story?.traits?.GetTrait(VariousDefOf.Virgin); - // if (virgin != null) - // { - // pawn.story.traits.RemoveTrait(virgin); - // } - //} + public static void PoptheCherry(this Pawn pawn, Pawn partner, bool violent) + { + if (pawn.IsVirgin()) + { + Messages.Message(Keyed.RS_LostVirgin(pawn.LabelShort, partner.LabelShort), MessageTypeDefOf.NeutralEvent, true); + RemoveVirginTrait(pawn); + FilthMaker.TryMakeFilth(pawn.Position, pawn.Map, ThingDefOf.Filth_Blood, 1, FilthSourceFlags.Pawn); + } + } + + public static void RemoveVirginTrait(Pawn pawn) + { + Trait virgin = pawn.story?.traits?.GetTrait(VariousDefOf.Virgin); + if (virgin != null) + { + pawn.story.traits.RemoveTrait(virgin); + } + } + + public static void UpdateSextypeRecords(SexProps props) + { + xxx.rjwSextype sextype = props.sexType; + Pawn pawn = props.pawn; + Pawn partner = props.partner; + Pawn receiver = props.reciever; + Pawn giver = props.giver; + + if (partner != null) + { + + switch (sextype) + { + case xxx.rjwSextype.Vaginal: + case xxx.rjwSextype.Scissoring: + IncreaseSameRecords(pawn, partner, VariousDefOf.VaginalSexCount); + break; + case xxx.rjwSextype.Anal: + IncreaseSameRecords(pawn, partner, VariousDefOf.AnalSexCount); + break; + case xxx.rjwSextype.Oral: + case xxx.rjwSextype.Fellatio: + if (Genital_Helper.has_penis_fertile(giver) || Genital_Helper.has_penis_infertile(giver)) + { + IncreaseRecords(giver, receiver, VariousDefOf.OralSexCount, VariousDefOf.BlowjobCount); + } + else if (Genital_Helper.has_penis_infertile(receiver) || Genital_Helper.has_penis_infertile(receiver)) + { + IncreaseRecords(giver, receiver, VariousDefOf.BlowjobCount, VariousDefOf.OralSexCount); + } + break; + case xxx.rjwSextype.Sixtynine: + IncreaseSameRecords(pawn, partner, VariousDefOf.OralSexCount); + RecordDef recordpawn, recordpartner; + if (Genital_Helper.has_penis_fertile(pawn) || Genital_Helper.has_penis_infertile(pawn)) + { + recordpartner = VariousDefOf.BlowjobCount; + } + else + { + recordpartner = VariousDefOf.CunnilingusCount; + } + + if (Genital_Helper.has_penis_fertile(partner) || Genital_Helper.has_penis_infertile(partner)) + { + recordpawn = VariousDefOf.BlowjobCount; + } + else + { + recordpawn = VariousDefOf.CunnilingusCount; + } + IncreaseRecords(pawn, partner, recordpawn, recordpartner); + break; + case xxx.rjwSextype.Cunnilingus: + if (Genital_Helper.has_vagina(giver)) + { + IncreaseRecords(giver, receiver, VariousDefOf.OralSexCount, VariousDefOf.CunnilingusCount); + } + else if (Genital_Helper.has_vagina(receiver)) + { + IncreaseRecords(giver, receiver, VariousDefOf.CunnilingusCount, VariousDefOf.OralSexCount); + } + break; + case xxx.rjwSextype.Masturbation: + break; + case xxx.rjwSextype.Handjob: + if (Genital_Helper.has_penis_fertile(giver) || Genital_Helper.has_penis_infertile(giver)) + { + IncreaseRecords(giver, receiver, VariousDefOf.GenitalCaressCount, VariousDefOf.HadnjobCount); + } + else + { + IncreaseRecords(giver, receiver, VariousDefOf.HadnjobCount, VariousDefOf.GenitalCaressCount); + } + break; + case xxx.rjwSextype.Fingering: + case xxx.rjwSextype.Fisting: + if (Genital_Helper.has_vagina(giver)) + { + IncreaseRecords(giver, receiver, VariousDefOf.GenitalCaressCount, VariousDefOf.FingeringCount); + } + else + { + IncreaseRecords(giver, receiver, VariousDefOf.FingeringCount, VariousDefOf.GenitalCaressCount); + } + break; + case xxx.rjwSextype.Footjob: + IncreaseSameRecords(pawn, partner, VariousDefOf.FootjobCount); + break; + default: + IncreaseSameRecords(pawn, partner, VariousDefOf.MiscSexualBehaviorCount); + break; + } + } + } + + public static void UpdatePartnerHistory(Pawn pawn, Pawn partner, SexProps props, float satisfaction) + { + SexPartnerHistory pawnshistory = pawn.GetComp(); + pawnshistory.RecordHistory(partner, props); + } + + public static void IncreaseSameRecords(Pawn pawn, Pawn partner, RecordDef record) + { + pawn.records?.AddTo(record, 1); + partner.records?.AddTo(record, 1); + } + + public static void IncreaseRecords(Pawn pawn, Pawn partner, RecordDef recordforpawn, RecordDef recordforpartner) + { + pawn.records?.AddTo(recordforpawn, 1); + partner.records?.AddTo(recordforpartner, 1); + } + } @@ -103,13 +218,16 @@ namespace RJWSexperience { private const float base_sat_per_fuck = 0.4f; - public static void Prefix(Pawn pawn, Pawn partner, SexProps props, bool pawn_is_raping , ref float satisfaction) + public static void Prefix(SexProps props, ref float satisfaction) { + Pawn partner = props.partner; satisfaction = Mathf.Max(base_sat_per_fuck, satisfaction * partner.GetSexStat()); } - public static void Postfix(Pawn pawn, Pawn partner, SexProps props, bool pawn_is_raping, float satisfaction) + public static void Postfix(SexProps props, float satisfaction) { + Pawn pawn = props.pawn; + Pawn partner = props.partner; float? lust = pawn.records?.GetValue(VariousDefOf.Lust); xxx.rjwSextype sextype = props.sexType; if (lust != null) @@ -171,6 +289,16 @@ namespace RJWSexperience } } + [HarmonyPatch(typeof(AfterSexUtility), "UpdateRecords")] + public static class RJW_Patch_UpdateRecords + { + public static void Postfix(SexProps props) + { + RJWUtility.UpdateSextypeRecords(props); + } + + } + } diff --git a/RJWSexperience/RJWSexperience/SexHistory.cs b/RJWSexperience/RJWSexperience/SexHistory.cs new file mode 100644 index 0000000..a9f7d8b --- /dev/null +++ b/RJWSexperience/RJWSexperience/SexHistory.cs @@ -0,0 +1,200 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RimWorld; +using Verse; +using rjw; + + +namespace RJWSexperience +{ + public class SexPartnerHistory : ThingComp + { + //protected List histories = new List(); + protected Dictionary histories = new Dictionary(); + protected string first = ""; + protected bool dirty = true; + protected string bestaffinity = ""; + protected float bestaffinitysat = 0; + protected xxx.rjwSextype recentsex = xxx.rjwSextype.None; + protected string recentpartner = ""; + + protected string mostpartnercache = ""; + protected xxx.rjwSextype mostsextypecache = xxx.rjwSextype.None; + + public string FirstSexInfo + { + get + { + return + "Partner: " + histories[first]?.Label ?? "Unknown" + + "" + + "" + + ""; + + } + } + + + public override void PostExposeData() + { + Scribe_Collections.Look(ref histories, "histories", LookMode.Deep); + Scribe_Values.Look(ref first, "first", "", true); + Scribe_Values.Look(ref bestaffinity, "bestaffinity", "", true); + Scribe_Values.Look(ref bestaffinitysat, "bestaffinitysat", bestaffinitysat, true); + Scribe_Values.Look(ref recentsex, "recentsex", recentsex, true); + Scribe_Values.Look(ref recentpartner, "recentpartner", recentpartner, true); + base.PostExposeData(); + } + + public void RecordHistory(Pawn partner, SexProps props) + { + TryAddHistory(partner); + SexHistory history = histories[partner.ThingID]; + history?.RecordSex(props); + dirty = true; + } + + public void RecordSatisfactionHistory(Pawn partner, SexProps props, float satisfaction) + { + TryAddHistory(partner); + SexHistory history = histories[partner.ThingID]; + history?.RecordSatisfaction(props, satisfaction); + + dirty = true; + } + + protected bool TryAddHistory(Pawn partner) + { + if (!histories.ContainsKey(partner.ThingID)) + { + histories.Add(partner.ThingID, new SexHistory(partner)); + Pawn pawn = parent as Pawn; + if (pawn != null) + { + pawn.records.AddTo(VariousDefOf.SexPartnerCount, 1); + } + return true; + } + return false; + } + + protected void RecordFirst(Pawn partner, SexProps props) + { + if (VirginCheck() && props.sexType == xxx.rjwSextype.Vaginal) + { + first = partner.ThingID; + } + } + + protected void Update() + { + dirty = false; + } + + protected bool VirginCheck() + { + Pawn pawn = parent as Pawn; + if (pawn != null) + { + if (pawn.IsVirgin()) return true; + } + return false; + } + + } + + + public class SexHistory : IExposable + { + protected Pawn partner; + protected string namecache; + protected int totalsexhad = 0; + protected int raped = 0; + protected int rapedme = 0; + protected int orgasms = 0; + protected xxx.rjwSextype bestsextype = xxx.rjwSextype.None; + protected float bestsatisfaction = 0; + + + + public string Label + { + get + { + if (partner != null) + { + namecache = partner.Label; + return namecache; + } + else return namecache; + } + } + public xxx.rjwSextype BestSextype + { + get + { + return bestsextype; + } + } + public float BestSatisfaction + { + get + { + return bestsatisfaction; + } + } + + public SexHistory() { } + + public SexHistory(Pawn pawn) + { + partner = pawn; + namecache = pawn.Label; + } + + + public void ExposeData() + { + Scribe_References.Look(ref partner, "partner", true); + Scribe_Values.Look(ref namecache, "namecache", namecache, true); + Scribe_Values.Look(ref totalsexhad, "totalsexhad", totalsexhad, true); + Scribe_Values.Look(ref raped, "raped", raped, true); + Scribe_Values.Look(ref rapedme, "rapedme", rapedme, true); + Scribe_Values.Look(ref orgasms, "orgasms", orgasms, true); + Scribe_Values.Look(ref bestsextype, "bestsextype", bestsextype, true); + Scribe_Values.Look(ref bestsatisfaction, "bestsatisfaction", bestsatisfaction, true); + } + + public void RecordSex(SexProps props) + { + totalsexhad++; + if (props.isRape) + { + if (partner == props.giver) + { + rapedme++; + } + else if (partner == props.reciever) + { + raped++; + } + } + } + + public void RecordSatisfaction(SexProps props, float satisfaction) + { + if (satisfaction > bestsatisfaction) + { + orgasms++; + bestsextype = props.sexType; + bestsatisfaction = satisfaction; + } + } + + + } + +} diff --git a/RJWSexperience/RJWSexperience/VariousDefOf.cs b/RJWSexperience/RJWSexperience/VariousDefOf.cs index 28283e8..2210db1 100644 --- a/RJWSexperience/RJWSexperience/VariousDefOf.cs +++ b/RJWSexperience/RJWSexperience/VariousDefOf.cs @@ -12,6 +12,17 @@ namespace RJWSexperience { public static readonly RecordDef NumofEatenCum = DefDatabase.GetNamed("NumofEatenCum"); public static readonly RecordDef Lust = DefDatabase.GetNamed("Lust"); + public static readonly RecordDef VaginalSexCount = DefDatabase.GetNamed("VaginalSexCount"); + public static readonly RecordDef AnalSexCount = DefDatabase.GetNamed("AnalSexCount"); + public static readonly RecordDef OralSexCount = DefDatabase.GetNamed("OralSexCount"); + public static readonly RecordDef BlowjobCount = DefDatabase.GetNamed("BlowjobCount"); + public static readonly RecordDef CunnilingusCount = DefDatabase.GetNamed("CunnilingusCount"); + public static readonly RecordDef GenitalCaressCount = DefDatabase.GetNamed("GenitalCaressCount"); + public static readonly RecordDef HadnjobCount = DefDatabase.GetNamed("HadnjobCount"); + public static readonly RecordDef FingeringCount = DefDatabase.GetNamed("FingeringCount"); + public static readonly RecordDef FootjobCount = DefDatabase.GetNamed("FootjobCount"); + public static readonly RecordDef MiscSexualBehaviorCount = DefDatabase.GetNamed("MiscSexualBehaviorCount"); + public static readonly RecordDef SexPartnerCount = DefDatabase.GetNamed("SexPartnerCount"); public static readonly SkillDef SexSkill = DefDatabase.GetNamed("Sex"); public static readonly ThoughtDef_Recordbased AteCum = DefDatabase.GetNamed("AteCum"); public static readonly PawnRelationDef Bastard = DefDatabase.GetNamed("Bastard"); diff --git a/RJWSexperience_Ideology/Assemblies/RJWSexperience.Ideology.dll b/RJWSexperience_Ideology/Assemblies/RJWSexperience.Ideology.dll index fe8bdde148c01857ac2b5d6af96fa90b0ed31c85..1f96d10117425a2e64df6295e1bac8d6478e5845 100644 GIT binary patch delta 9977 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

    lvnWL>{fQU@xCH8 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 diff --git a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Rape.xml b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Rape.xml index 87a167d..0a9e155 100644 --- a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Rape.xml +++ b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Rape.xml @@ -3,8 +3,8 @@ - Rape - + Birth + UI/Issues/Rape diff --git a/changelogs.txt b/changelogs.txt index 3dea74a..eaf0bad 100644 --- a/changelogs.txt +++ b/changelogs.txt @@ -1,7 +1,12 @@ -Version Beta 1.0.1.11 +Version Beta 1.0.2.0 + - requires RimWorld 1.3.3117 or later + - requires RJW 4.8.1 or later + - added records + - added sex history + - Version Beta 1.0.1.10 - - requires RJW 4.8.0 or later + - requires RJW 4.8.0 Version Beta 1.0.1.9 - not compatible with RJW 4.8.0 or later