Commit graph

189 commits

Author SHA1 Message Date
lutepickle
aa81fae8bd Let climacteric re-apply when anestrus goes back into season 2022-07-14 18:32:14 -07:00
lutepickle
1a875dba1c Refactor the transition to ovulation, eliminate some code duplication in follicular and bleeding actions between standard and induced ovulation 2022-07-14 16:24:59 -07:00
lutepickle
5d98d23541 Add code for girlcum, but leave it disabled for now 2022-07-14 15:46:13 -07:00
lutepickle
08c6c28c81 In the context of menstruation, CanImpregnate is called to see if the cum being added is fertile. In RJW, already being pregnant is enough to block a new one, but in menstruation it's fine if fertile cum enters a pregnant womb, or if cum goes into a different womb than the pregnant one. So never have a pawn with a womb be considered pregnant for those checks.
The other times that CanImpregnate is called is for the fetish, but that's already checked against DangerDay.

Also add some more null checks for the transpilers.
2022-07-13 16:50:06 -07:00
lutepickle
05029858d5 Get the right menstruation comp when impregnating. Also remove CanFertilize, it's too much of a pain 2022-07-13 15:44:26 -07:00
lutepickle
28cc9755fd Revert "Bit of a refactor to AddWombGizmos, should be nicer to the Sexperience module"
This reverts commit 3d34ed1e53.
2022-07-13 07:44:47 -07:00
lutepickle
6e841a3836 Slight simplification of SetEstrus 2022-07-12 19:31:24 -07:00
lutepickle
2b8d822542 For multiple vaginas, concealed estrus won't occur if in visible estrus, and visible estrus will cancel concealed estrus 2022-07-12 19:09:19 -07:00
lutepickle
1907820265 Whole bunch of code cleanup, mostly using and whitespace 2022-07-12 15:49:55 -07:00
lutepickle
f5170ca700 Merge the two pregnancy-preventing conditions into one if 2022-07-12 15:32:49 -07:00
lutepickle
8babac6378 Change argument name of GetMenstruationComp(vagina) for clarity 2022-07-12 14:47:42 -07:00
lutepickle
35b875980a Little refactor of GetMenstruationComp(pregnancy) again 2022-07-12 14:46:39 -07:00
lutepickle
6143fb41fb Implant at the right time for vaginas with odd luteal intervals 2022-07-12 14:43:19 -07:00
lutepickle
ea7b8e03ee Slight refactor of GetFertileMenstruationComp 2022-07-11 19:39:41 -07:00
lutepickle
931b974bf9 Have GetMenstruationComp(pregnancy) null test 2022-07-11 19:05:21 -07:00
lutepickle
70346a0901 Remove availableWomb from CanFertilize. It's only used for fetishes, and it won't be DangerDay if they're all pregnant 2022-07-11 18:30:59 -07:00
lutepickle
c0043d2936 Support for multiple concurrent pregnancies 2022-07-11 18:23:08 -07:00
lutepickle
3d34ed1e53 Bit of a refactor to AddWombGizmos, should be nicer to the Sexperience module 2022-07-11 12:55:39 -07:00
lutepickle
699c91106f Support for multiple vaginas 2022-07-11 11:52:27 -07:00
lutepickle
20692aaf13 Undo the CompPostPostRemoved checks, if nothing else to see what bug made them be added in the first place 2022-07-11 09:03:20 -07:00
lutepickle
902cd65375 Tiny refactor to adding stacked eggs to ovulation 2022-07-11 08:40:40 -07:00
lutepickle
6ec27b6aba Cut down on some indentation, remove whitespace here and there 2022-07-11 08:21:42 -07:00
lutepickle
f585499871 Move RandomVariabilityPercent to MenstruationUtility 2022-07-11 07:33:42 -07:00
lutepickle
afc04d2fa5 Replace a bunch of "is null" with "== null" 2022-07-11 07:27:23 -07:00
lutepickle
1133255b0a Rearrange LutealAction to let the stage end with fertilized eggs 2022-07-10 08:05:08 -07:00
lutepickle
9f66a3ea52 Missing elses in Follicular actions 2022-07-08 18:43:13 -07:00
lutepickle
96c81c70bf Use Max for the avglittersize 2022-07-08 18:35:47 -07:00
lutepickle
096f941762 Account for bleeding when calculating induced ovulator ovary power, for all zero of them that bleed 2022-07-08 14:51:24 -07:00
lutepickle
58b2e4983c Apply cycle speed properly to ovary power by age 2022-07-08 12:10:52 -07:00
lutepickle
f612e0df24 Properly apply cycleSpeed to PeriodRandomizer 2022-07-08 10:28:21 -07:00
lutepickle
98f0580577 Remove old PeriodRandomizer 2022-07-08 10:17:02 -07:00
lutepickle
4dbfe6c1d5 Correct comment on CumIn, remove stray semicolon 2022-07-08 09:34:43 -07:00
lutepickle
02194fe941 Remove Stage_Fertilized translations 2022-07-08 09:28:37 -07:00
lutepickle
862696eef1 Make the recursion limiter on RandomVariabilityPercent return the proper value 2022-07-07 19:09:06 -07:00
lutepickle
5abfa07638 Make the 'sperm lifespan' tip account for drainage, too. Also add a "10 ml" tip for fertilization chance 2022-07-07 18:28:34 -07:00
lutepickle
b2e26f2f1b New ovary power calculation for all vaginas. While at it, remove old deviation factor since it's obsolete, too. 2022-07-07 16:17:12 -07:00
lutepickle
eade57bd9e Update default values 2022-07-07 12:37:12 -07:00
lutepickle
a90d6bf343 Implement exponential fertilization chance 2022-07-07 12:23:45 -07:00
lutepickle
8a048ea7e5 Cum fertility overhaul. Now track volume and fertility percentage instead of fertvolume. 2022-07-07 12:14:47 -07:00
lutepickle
24e7f93bcc Cumming inside someone with an IUD adds the full volume. 2022-07-07 12:00:46 -07:00
lutepickle
c7a2f0c55d Make not-cum not fertilize 2022-07-07 11:28:09 -07:00
lutepickle
16bb69372c Revert "Remove unused Egg() constructor"
Rimworld might be using it after all

This reverts commit 9c9e120b92.
2022-07-07 11:15:37 -07:00
lutepickle
258f68a88d Some checks for initializing the currentIntervalHours. Also fix the capitalization 2022-07-07 11:14:04 -07:00
lutepickle
07221e01a8 Fix stage hours in GetEggIcon 2022-07-07 11:09:42 -07:00
lutepickle
5c1fb93613 Proper check for the new speed/variability on init 2022-07-07 10:57:44 -07:00
lutepickle
4737641673 Refactor the climacteric stage functions into the normal stage functions 2022-07-07 10:50:49 -07:00
lutepickle
9cc8897103 Initial implementation of new variance code 2022-07-07 10:28:53 -07:00
lutepickle
9c9e120b92 Remove unused Egg() constructor 2022-07-07 07:58:32 -07:00
lutepickle
805b7afa81 FertilizationCheck doesn't need to return anything 2022-07-07 07:55:33 -07:00
lutepickle
60a842fd2b Eggs implant at half luteal or 30 days, whichever comes first. 2022-07-07 07:52:43 -07:00