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
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