Commit graph

285 commits

Author SHA1 Message Date
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
lutepickle
a1250f4141 Fix 'folicularIntervalDays' typo 2022-07-07 07:30:16 -07:00
lutepickle
93218a8aa1 Use a weighted random when determining the stage of a new pawn 2022-07-07 07:26:53 -07:00
lutepickle
983e112edd Fertilized eggs never decay 2022-07-07 07:01:20 -07:00
lutepickle
5e164b74df Remove obsolete RJW_Sire/RJW_Pup relations 2022-07-07 06:55:44 -07:00
lutepickle
b6bef2206e Remove obsolete Stage.Fertilized 2022-07-07 06:51:39 -07:00
lutepickle
75fe253911 Give animal children the standard mother/father relations instead of the old RJW_Sire/RJW_Pup ones 2022-07-02 07:55:31 -07:00
lutepickle
b7a911000e Rename PawnGCPass_Patch to AccumulatePawnGCData_Patch 2022-07-02 07:30:27 -07:00
lutepickle
f503deb09e Have a pawn that becomes fertile go into anestrus if they're out of season. 2022-06-25 20:07:23 -07:00
lutepickle
14174396b0 Increase ovipostor semen to make up for the lowered fert chance 2022-06-25 11:15:54 -07:00
lutepickle
3ac49afade Make the initial fertilization graphic based on the configured acceleration 2022-06-21 23:11:59 -07:00
lutepickle
f021316869 Don't show the implanted egg icon when it's a mechanoid pregnancy 2022-06-21 21:00:37 -07:00
lutepickle
6283baa778 Make the IsNull checks in the hybrid extensions return true if thingDefName really is null. Also add another null check when searching for a hybrid. 2022-06-19 17:09:04 -07:00
lutepickle
204fe0ecc7 Fix null fertilizer when an egg tries to implant 2022-06-16 17:57:52 -07:00
lutepickle
1ef735f328 Migrate Harmony dependency to NuGet 2022-06-16 16:59:34 -07:00
lutepickle
31d6fce892 Remove unused parameter in DrawHediffRow_Patch 2022-06-08 06:37:04 -07:00
lutepickle
56691171b4 Implement random tick timing 2022-06-05 11:06:57 -07:00
lutepickle
617ed4bfe0 Make menstruation tickinterval a const 2022-06-05 06:22:54 -07:00
lutepickle
f1fcbf13c1 Handle a null pawn's cum in fertilization 2022-06-04 21:42:59 -07:00
lutepickle
156dfc5f3e One less magic number 2022-06-04 18:09:34 -07:00
lutepickle
4ebf45aeb8 Make fertilization add to the pawn's record again 2022-06-03 23:32:33 -07:00
lutepickle
b5b9002930 Make the pregnant breast growth start/end a const instead of a magic number 2022-06-03 20:22:32 -07:00
lutepickle
961e7f7b73 Better anti-prune algo. Also won't prune pawns with sperm/egg in a player faction/prisoner womb 2022-06-03 14:45:31 -07:00
lutepickle
b814412eb0 Don't prune pawns with sperm or a fertilized egg in a colonist's womb 2022-06-03 11:04:39 -07:00
lutepickle
5e818ab879 Make IsInEstrus into a Pawn extension 2022-06-03 09:06:18 -07:00
lutepickle
9d83860d55 Have the first fertilized graphic go off of just the CycleFactor 2022-06-03 07:57:48 -07:00
lutepickle
7f84480bee Refactor IsBreedingSeason to be a bit cleaner 2022-06-02 14:21:43 -07:00
lutepickle
e09c4aeb97 Move gather cum gizmo text to this project to account for sexperience removing it 2022-06-02 12:36:54 -07:00
lutepickle
c082c70e68 Add a proper weighted random algo for selecting paternity 2022-06-02 12:31:31 -07:00
lutepickle
8b48fe51e5 Cum.fertFactor is unused for now, so remove it from the Fertilize() calculation 2022-06-01 20:34:18 -07:00
lutepickle
5b784c3c59 Display ovaries on the womb dialog when near ovulation 2022-05-31 18:14:11 -07:00
lutepickle
4ce0574e0b Improve climacteric follicular 2022-05-31 14:36:26 -07:00
lutepickle
bba7fd8dbb Use more of the fertilization graphics 2022-05-31 12:09:04 -07:00
lutepickle
3aa0450b87 Remove some milder "he came inside" memories when a harsher one is applied. Should reduce unwanted stacking. 2022-05-31 09:54:58 -07:00
lutepickle
e29c7a732a Might as well refactor RecoveryAction out to match the rest 2022-05-31 08:36:27 -07:00
lutepickle
32ae526b0f Better handle climacteric for induced ovulators 2022-05-31 08:22:35 -07:00
lutepickle
0a7e80b353 Add a short description when mousing over the phase in the womb dialog 2022-05-31 08:10:53 -07:00
lutepickle
871730ac3a Send climacteric follicular to luteal stage 2022-05-31 05:37:50 -07:00
lutepickle
f909b8cfce Fix pawn generation for off-map pawns. 2022-05-30 20:22:47 -07:00
lutepickle
c4f5e6b63c A whole mess of spelling, grammar, and description updates 2022-05-30 20:04:48 -07:00
lutepickle
b292c3f931 Properly initialize ovaries for bad litterSizeCurves 2022-05-30 16:54:41 -07:00
lutepickle
5e4fadb4ba Move Props.baseImplantationChanceFactor into ImplantFactor 2022-05-28 23:00:28 -07:00
lutepickle
3480366337 More accurate comments in the new hookup transpilers 2022-05-28 21:28:20 -07:00
lutepickle
7461965174 Add message feedback to the debug actions 2022-05-28 19:18:35 -07:00
lutepickle
41054f979e Update the hookup transpilers to apply the estrus overrides in the other direction. 2022-05-28 19:05:10 -07:00
lutepickle
72e1712394 Set a newly initialized pawn to anestrus when out of season. 2022-05-28 17:55:13 -07:00
lutepickle
b6f220b30b Show the status button in the health tab for pawns with a vagina as a second hediff. 2022-05-28 17:53:20 -07:00
lutepickle
42cd7a98ae Show womb gizmo for any gender 2022-05-27 17:59:36 -07:00
lutepickle
7f2856b6ef Turn the def in SetEstrus into a ternary 2022-05-18 20:57:48 -07:00
lutepickle
26ca087828 Remove random empty text file 2022-05-15 05:37:30 -07:00
lutepickle
d5f87d0e45 Refactor IsDangerDay into a switch. 2022-05-14 16:50:27 -07:00
lutepickle
1a452cb120 Add a check for BabyHalfAge <= 0, just to be sure 2022-05-14 05:23:53 -07:00
lutepickle
2872d42f67 Fix BabyHalfAge for races with one lifestage 2022-05-13 22:01:07 -07:00
lutepickle
e377f01a7d Make the transpiler noisier when it hits an error. Hopefully it'll make breakages more obvious. 2022-05-11 08:33:33 -07:00
lutepickle
52f9a10496 Fix the transpiler for FindBestPartner 2022-05-09 22:36:53 -07:00
lutepickle
d9ab6cdcde On a littersizecurve exception, show the message in the log 2022-05-07 19:44:54 -07:00
lutepickle
0e34e3d4cc More parenthesis in ThoughtCumInside because I don't trust the compiler 2022-05-06 20:37:23 -07:00
lutepickle
3d5e1cae15 Locked absorbers can't get dirty or cause infections 2022-05-03 22:23:47 -07:00
lutepickle
e7c395636b Handle cum inside thoughts for teratophiles 2022-05-01 18:27:29 -07:00
lutepickle
47d249e716 Update birth faction assignments to match RJW's. 2022-04-29 07:00:41 -07:00
lutepickle
4c2233659a Slight refactor of Roll_To_Skip_Patch.Transpiler and FindBestPartner_Patch.Transpiler. 2022-04-28 15:50:16 -07:00
lutepickle
2e6565fcc6 Resize main settings window dynamically based on selected options. 2022-04-28 11:00:24 -07:00
lutepickle
7b5f0880ed Remove unnecessary parameters from Harmony patches. 2022-04-28 09:52:51 -07:00
lutepickle
00ad2e94d4 The GetBodyFactor patch doesn't need to test for __result <= 0, as that isn't possible. While I'm at it, a slight refactor in CountSatisfiedQuirks. 2022-04-28 09:18:50 -07:00
lutepickle
71f3ba9585 Animals will prefer partners in estrus 2022-04-27 22:13:50 -07:00
lutepickle
fffd4f5f00 Fix null reference on missing hybrid def 2022-04-27 17:42:02 -07:00
lutepickle
1eaa459e04 Put a few nameof()s in the Harmony patches 2022-04-27 11:10:58 -07:00
lutepickle
1c24fab708 Concealed estrus gets a (very small) boost, too 2022-04-27 10:28:40 -07:00
lutepickle
3009a3c6ef Make the estrus hookup override only apply to pawns that can get them pregnant 2022-04-27 07:12:17 -07:00
lutepickle
c5622a10f8 Shift the priorities of the came inside moods a bit 2022-04-27 06:33:31 -07:00
lutepickle
3f02fde439 Allow different hookup settings during estrus 2022-04-26 18:47:33 -07:00
lutepickle
191e4ab5d9 A pawn in estrus will prefer partners that can impregnate them, and prefer to use their vagina 2022-04-26 11:49:20 -07:00
lutepickle
9e374f3350 Downgrade bad litterSizeCurve to a yellow warning 2022-04-26 05:28:11 -07:00
amevarashi
7d22c91433 Add option to disable GatherCum gizmo 2022-04-26 10:37:52 +05:00
amevarashi
454f50c97c Move "reset to default" label to XML 2022-04-24 20:23:05 +05:00
amevarashi
99fc386e1a Debug mode overrides InfoDetail 2022-04-24 17:07:15 +05:00
amevarashi
a884ab2652 Hide name if parent unknown 2022-04-24 09:52:10 +05:00
lutepickle
0f8d6a53f3 Merge branch 'main' of https://gitgud.io/lutepickle/rjw_menstruation 2022-04-22 21:53:47 -07:00
lutepickle
0e9a5fabda Merge branch 'bugfixes' into 'main'
Bugfixes

See merge request lutepickle/rjw_menstruation!1
2022-04-23 04:53:34 +00:00
lutepickle
a7968b530d Proper rewrite of induced ovulator dangerday 2022-04-17 22:40:30 -07:00
lutepickle
92d732992a Fix null ref when bleeding 0, add debug action to clear out a womb. 2022-04-17 21:39:18 -07:00
lutepickle
0f9bfcd302 Fix CumIn of 0 volume (e.g. setting bleed rate to 0 ml/h) 2022-04-17 19:16:15 -07:00
lutepickle
565f19e5e3 Fix the spelling on the filename of HediffComp_InducedOvulator.cs 2022-04-14 21:58:41 -07:00
lutepickle
1511c40001 Make the debug luteal action actually set to luteal 2022-04-06 08:46:57 -07:00
lutepickle
477468f8e4 Proply handle bad litter sizes 2022-04-03 22:12:45 -07:00
amevarashi
6e022789a2 Merge branch 'main' into bugfixes 2022-03-31 18:04:51 +05:00
amevarashi
e67010239b Optimized gizmo injection 2022-03-23 21:27:06 +05:00
amevarashi
55e55fbc35 Hide egg implantation for the hidden pregnancy 2022-03-20 18:16:08 +05:00
amevarashi
33bbde68ca Disguise progress bar color for the hidden pregnancy 2022-03-20 17:48:27 +05:00
amevarashi
b7267e614c Fix futanari impregnation 2022-03-20 14:21:00 +05:00
amevarashi
d5d5dbd77c Womb cleaning spams job if no bucket on the map 2022-03-20 14:16:16 +05:00
lutepickle
23b09b0fa9 Add debug action to recalculate ovary power 2022-03-19 16:32:17 -07:00
lutepickle
38b16c75c3 Set newly initialized (e.g. newborn) pawns' stage to Young if they have 0 fertility 2022-03-19 16:29:48 -07:00
lutepickle
3ae66bd4a6 A whole mess of suggested code refactorings 2022-03-18 09:34:17 -07:00
lutepickle
9e8441ca2e Fix the 'consealed' typo 2022-03-18 07:14:14 -07:00
lutepickle
052b7661e4 Alter updateTraits to properly handle zygotic twin inheritance for differing number of natural traits 2022-03-17 12:14:01 -07:00
lutepickle
26b49379b1 Add various debug actions 2022-03-17 09:19:19 -07:00
lutepickle
531313f5d2 Enzygotic twins get the same inherited traits 2022-03-17 08:17:53 -07:00
lutepickle
8013481634 Properly count quirks for impregnation fetish 2022-03-16 12:28:37 -07:00
lutepickle
4677db4e93 Merge breastadjuster branch 2022-03-16 09:22:42 -07:00
lutepickle
51b3b1a924 The womb can hold its extra cum for at least the first part of a pregnancy 2022-03-15 11:21:04 -07:00
lutepickle
91c9f38fd0 More accurate debug text for breast growth 2022-03-15 11:13:08 -07:00
lutepickle
1fda8cbab9 Fix the fertilization chance setting slider at default 2022-03-15 09:36:04 -07:00
lutepickle
71c6b7aa2c A bit nicer debug breast status on load 2022-03-14 17:48:43 -07:00
lutepickle
a5c9ada196 Move growth/shrink debug info into the widget to not clutter the logs 2022-03-14 16:08:48 -07:00