Commit graph

245 commits

Author SHA1 Message Date
lutepickle
4af5195de9 Give eggs the proper lifetime 2023-04-16 12:20:01 -07:00
lutepickle
eddccdc2ea Remove some force saves from Egg 2023-04-15 12:15:15 -07:00
lutepickle
80243c78f1 Keep a running total of fluid leaked and emit a filth every 5 ml 2023-04-15 08:30:39 -07:00
lutepickle
89a7d410df Cut down on the savefile size by not writing default values 2023-04-15 08:05:49 -07:00
lutepickle
f2fa99853f Don't save DoCleanWomb if it's false 2023-04-15 07:41:23 -07:00
lutepickle
a5bcf696ba Make the recalculation interval long instead of daily 2023-04-14 08:23:02 -07:00
lutepickle
30329c883b Reduce the leakage per ml 2023-04-13 21:30:06 -07:00
lutepickle
a023c884d3 Fix cum not diminishing 2023-04-13 21:06:32 -07:00
lutepickle
e37940abcf Initial implementation of variable update rate 2023-04-13 20:23:45 -07:00
lutepickle
1088a4c8e9 Fix the texture path in the normal follicular, too. 2023-04-10 15:36:56 -07:00
lutepickle
25556c464e Fix bad texture error for low fertility during induced ovulator sex 2023-04-10 15:34:08 -07:00
lutepickle
334ef9d52a Fix blocking menstruation genes during pawn generation (e.g. colony setup) 2023-04-09 08:48:51 -07:00
lutepickle
80a987b0bd Just remove the ovarypower/ovulated comparsion. It's fine if ovarypower goes negative 2023-03-20 16:27:41 -07:00
lutepickle
2ac4e1f8e5 Fix wrong comparison in OvulatoryAction 2023-03-20 16:17:16 -07:00
lutepickle
cb8a001cdf Change removecums to a HashSet 2023-03-19 22:52:39 -07:00
lutepickle
f7e3d6c1c4 Switch deadeggs to a HashSet 2023-03-19 22:48:04 -07:00
lutepickle
310c03a193 Remove the early exit from the implant loop for non-RJW multiple pregnancy. This lets Biotech fraternal twins implant in the same hour. 2023-03-19 22:39:55 -07:00
lutepickle
e5aa310528 Move quirk testing into a dedicated function in anticipation of the RJW quirk submod 2023-03-17 20:07:00 -07:00
lutepickle
5924c73b2f Track birth counts with the pregenerated babies 2023-03-17 09:34:45 -07:00
lutepickle
f7348ccee8 SafeSkinColor needs to catch InvalidOperationException, too, it seems 2023-03-17 07:01:55 -07:00
lutepickle
93855c5ee7 Rework infertile decision, let the last egg ovulated potentially implant. Guarantee full drug ovulation even if eggs aren't available. 2023-03-16 12:24:47 -07:00
lutepickle
9aab479fe6 Correct PostFix to Postfix 2023-03-12 17:27:04 -07:00
lutepickle
699b3aa6d2 Fix bug introduced in ovulation rework which made induced ovulators not ovulate after follicular 2023-03-12 15:54:14 -07:00
lutepickle
de2da85558 Fix Null father in womb dialog for Biotech pregnancies 2023-03-11 14:07:55 -08:00
lutepickle
c05d8bad79 Only decrement ovary power by eggs actually ovulated, debug log under-ovulations 2023-03-11 10:21:25 -08:00
lutepickle
65b69eaf76 Shift breeder from implant chance to ovulation chane. It would overflow back down anyways. 2023-03-11 09:17:17 -08:00
lutepickle
2798d923b1 Don't show the ovulation chance on non-humans 2023-03-10 09:04:00 -08:00
lutepickle
3646f1135b Climacteric is 20% chance to skip, not 20% chance to ovulate 2023-03-06 17:52:11 -08:00
lutepickle
1aaaf50b64 Display ovaries at a lower state when ovulation chance is lower 2023-03-06 17:35:11 -08:00
lutepickle
2bb0871919 Properly set the conditions to not go/stay in the infertile stage for InfertileAction and RecoverAction 2023-03-06 17:20:49 -08:00
lutepickle
4504d02245 Switch some comp stages to GoNextStage 2023-03-06 17:05:01 -08:00
lutepickle
98cfa23b88 Replace some usage of Rand.Range with Rand.Chance 2023-03-06 16:58:23 -08:00
lutepickle
c8d32f883f New ovulation chance system 2023-03-06 16:53:22 -08:00
lutepickle
7825418da9 Properly add space before climacteric label 2023-03-06 14:40:29 -08:00
lutepickle
325b60b51c Make EggHealth properly return a float 2023-03-06 13:51:11 -08:00
lutepickle
297e37a4ef Add comment on why fixedLastName doesn't work 2023-03-06 05:49:40 -08:00
lutepickle
1bc5b45669 Fix danger day and estrus considering eggs to last 24x times as long as they should 2023-03-05 21:20:16 -08:00
lutepickle
842f6ceec1 A little code cleanup 2023-03-05 19:24:23 -08:00
lutepickle
8752aa1437 Add state to hediff tooltip, and time to next state in debug tooltip 2023-03-04 15:51:57 -08:00
lutepickle
5abdf52dbe Use GoNextStage more to properly reset curStageHrs 2023-03-02 14:42:49 -08:00
lutepickle
69934d06f5 Add patch to darken nipples during Biotech lactation, but commented out 2023-03-01 17:00:58 -08:00
lutepickle
09f9438bcc Reset the baby name deadline at birth 2023-03-01 16:29:58 -08:00
lutepickle
91142d640f Copy hair color for identical twins 2023-03-01 10:21:59 -08:00
lutepickle
b28beb8eaa Add some debug logging around the pregnancy to labor transition 2023-03-01 09:55:54 -08:00
lutepickle
ca895ef296 Show the debug due date on the gizmo for Biotech pregnancies 2023-02-28 18:02:20 -08:00
lutepickle
5c27575446 Save the Biotech twins setting 2023-02-27 21:36:31 -08:00
lutepickle
92ace30022 Properly show multiple fetuses with pregenerated babies 2023-02-27 21:33:14 -08:00
lutepickle
2b0d5dd0e6 Some mods break SkinColor to the point that even trying to access it throws a null ref, so go work around that 2023-01-25 07:11:00 -08:00
lutepickle
aba80efe58 Don't allow adding genes to pawns without wombs 2023-01-22 09:44:28 -08:00
lutepickle
9f20f78aab Remove a HarmonyDebug 2023-01-11 07:34:58 -08:00
lutepickle
71575c671e Fix error when trying to terminate a menstruation pregnancy 2023-01-11 07:32:50 -08:00
lutepickle
da7284b909 Make the HAR disabler conditional only on the configuration. There's too many birtherThing/geneticMother edge cases to make puzzling it out practical 2023-01-11 06:24:14 -08:00
lutepickle
3132992aa3 A bunch of type-safety around HAR. 2023-01-10 16:09:37 -08:00
lutepickle
2cb26ea016 HAR transpiles ApplyBirthOutcome to produce multiple children per littersize, but the pregenerated babies already handle that. So patch HAR to only produce one if our system is running 2023-01-10 12:41:11 -08:00
lutepickle
b9bfad10bb Resolve graphics on all newly generated babies, not just the first of a set 2023-01-10 08:20:22 -08:00
lutepickle
7d8228e03a Ensure that Biotech babies are born at zero ticks of age 2023-01-10 07:05:13 -08:00
lutepickle
93566b5fa3 Call ResolveAllGraphics unconditionally for babies. Also copy skinColorOverride for twins 2023-01-10 05:46:16 -08:00
lutepickle
d34c96315a Have the babies track their fathers during pregnancy 2023-01-09 08:50:50 -08:00
lutepickle
638b9f4611 Make the mod options window a bit longer just to make all the buttons appear again 2023-01-08 12:53:26 -08:00
lutepickle
08a50e47c3 Add Biotech twin option to configuration settings, disabled by default 2023-01-08 12:33:06 -08:00
lutepickle
c3176fb0e5 Integration of pregenerated babies into the womb dialog 2023-01-08 12:19:47 -08:00
lutepickle
f5f8eba037 Save option for enabling biotech twins 2023-01-08 12:02:18 -08:00
lutepickle
fcfb7cdefb Add support for pregenerated babies into Implant 2023-01-08 12:01:45 -08:00
lutepickle
89f26b2601 Add the two transpilers to allow looping through babies 2023-01-08 11:29:21 -08:00
lutepickle
e42bbdb3d4 Add the ApplyBirthOutcome transpiler 2023-01-08 10:11:58 -08:00
lutepickle
7bf9f80742 Add a missing using directive to PregnancyCommon 2023-01-07 21:23:08 -08:00
lutepickle
8aff96e5a4 Prevent two humanlikes from creating an animal for Biotech pregnancies 2023-01-07 20:58:28 -08:00
lutepickle
12c760d16c Fix periodic ovulator cycle variability 2023-01-07 20:26:13 -08:00
lutepickle
045e9548f6 Framework for pregenerated babies 2023-01-07 20:18:17 -08:00
lutepickle
3f21b760b2 Make the MethodInfos in MultiplePregnancy static. 2023-01-07 12:00:48 -08:00
lutepickle
21e471ebf3 Use the builtin BestOutcome for the childbirth ritual instead of searching our own. 2023-01-07 11:50:37 -08:00
lutepickle
b4aa55c159 Re-add GetMenstruationComp(Hediff) marked as obsolete. There's code out there that calls it. 2023-01-07 06:08:42 -08:00
lutepickle
f3e14e67b0 Initial implementation of genes 2023-01-03 22:48:06 -08:00
lutepickle
8d507a5e69 Disable breast growth for ageless pawns to prevent them from getting stuck at max size post-birth. 2023-01-03 19:11:20 -08:00
lutepickle
190173d87d Have AddNewBaby use the vanilla xenotype inheritance functions 2022-12-28 09:03:39 -08:00
lutepickle
ba3f24cba3 Only remove cramps if no other womb is bleeding 2022-12-27 06:52:33 -08:00
lutepickle
398f1b7066 Fix the biosculptor file spelling in the project file 2022-12-26 09:22:40 -08:00
lutepickle
5c3c4eff92 Update bioscultper pod icon 2022-12-25 15:51:33 -08:00
lutepickle
f235c32af1 Add HediffComp_PeriodicOvulator 2022-12-25 15:41:36 -08:00
lutepickle
b3ffe9afed Have luteal advance at curStageHrs == currentIntervalHours for consistency with the other stages 2022-12-25 14:32:52 -08:00
lutepickle
def93aa218 Let about a third of penises precum during sex 2022-12-25 11:51:20 -08:00
lutepickle
70d65d379c Impregnation fetishists are less likely to pull out 2022-12-25 10:36:21 -08:00
lutepickle
ecc849e85f Make ovipostor cum fertility go off of the right pawn 2022-12-25 09:18:51 -08:00
lutepickle
22a52093cb Reduce cumin chance for avoid pregnancy approach 2022-12-25 08:51:42 -08:00
lutepickle
8c0a8f05d1 A little cleanup 2022-12-25 06:38:58 -08:00
lutepickle
cf2eff9556 Move the biosculpter patch since it's not Biotech 2022-12-25 06:36:56 -08:00
lutepickle
8d919739bf Produce baby naming letter in multiple pregnancy 2022-12-24 20:24:49 -08:00
lutepickle
f6552b3a68 Add a biosculptor recipe to restore eggs 2022-12-24 19:44:07 -08:00
lutepickle
2bc1133861 Capitalize DoImpregnate_Patch to match RJW's capitalization 2022-12-15 14:47:20 -08:00
lutepickle
bbd8030cc6 Update ingestion hediff giver for Biotech 2022-12-11 10:25:12 -08:00
lutepickle
221883c2fc Add option to hide womb status for drafted pawns 2022-12-11 10:21:01 -08:00
lutepickle
9c2c0dc5aa Properly capitalize Configurations.SetToDefault 2022-12-11 06:34:06 -08:00
lutepickle
a917a940ee Add a function to damage pants based on fluid leakage. Not yet called by anything 2022-11-29 10:11:28 -08:00
lutepickle
60343e8b3f Have the breasts grow and shrink for Biotech pregnancies, too 2022-11-27 09:33:19 -08:00
lutepickle
06039238d2 Additional safety checks for the transpilers 2022-11-26 15:20:52 -08:00
lutepickle
c955221f64 Shift the HAR generation to only the first baby of a set. 2022-11-26 15:20:16 -08:00
lutepickle
82440db26b Set up the xenotype inheritance for all babies, not just enzygotic ones 2022-11-25 07:52:16 -08:00
lutepickle
9891f72fc6 Poke HAR to generate parts early for enzygotic duplication 2022-11-25 07:40:45 -08:00
lutepickle
08d84801a6 HAR added headVariant and bodyVariant, so duplicate those for enzygotic siblings, too. 2022-11-24 17:24:21 -08:00
lutepickle
86aef06981 Do the post-pregnancy breast growth for Biotech births. 2022-11-24 07:12:30 -08:00
lutepickle
fe20e9d78b Have terminate pregnancy operation work on multiple pregnancies. Only remove the one that is the least far along. 2022-11-22 17:48:20 -08:00
lutepickle
1b5e204795 Set new babies to baseliner if there's no xenotype to inherit 2022-11-20 21:26:03 -08:00
lutepickle
8d0d980048 Null check in the xenotype decider 2022-11-20 12:42:40 -08:00
lutepickle
5a17c0e72f Update for the RJW function changes. Again. 2022-11-18 06:48:43 -08:00
lutepickle
7eee57709d Re-enable Animal Genetics support 2022-11-17 09:19:46 -08:00
lutepickle
889e8f90f2 Remove obsolete melanin references 2022-11-16 19:19:18 -08:00
lutepickle
21144b0005 Rename gizmo patch file to match the others 2022-11-16 08:19:04 -08:00
lutepickle
80686dc008 Update for RJW 5.3.0.7 2022-11-16 07:46:02 -08:00
lutepickle
8b7902bc8a Pick up pregnancies on embryo implantation 2022-11-10 22:31:14 -08:00
lutepickle
a8793765c5 Deduct an egg from a pawn's ovaries upon extraction 2022-11-10 21:46:42 -08:00
lutepickle
0154f89438 Don't allow ovum extraction for menopausal pawns 2022-11-10 21:25:07 -08:00
lutepickle
4f2830084c Have pawns with sterile genes start infertile 2022-11-10 08:19:56 -08:00
lutepickle
225e1fe143 Add a sterile genes check in the infertile and recovery actions 2022-11-05 07:59:44 -07:00
lutepickle
b9494a9acc Min is not max. Again 2022-11-05 07:57:44 -07:00
lutepickle
2a7feede8b Null check Biotech fathers in womb window 2022-11-04 17:25:03 -07:00
lutepickle
06fbc0e188 Remove redundant assignments 2022-11-04 12:07:44 -07:00
lutepickle
6fe38eb46e Respect Biotech IUDs 2022-11-04 12:06:03 -07:00
lutepickle
742381dd54 Don't run the cycle for pawns that are genetically sterile 2022-11-04 10:52:25 -07:00
lutepickle
ba6f1886d1 Males with sterile genes cum 0 fertility sperm 2022-11-04 10:44:33 -07:00
lutepickle
0647d25fa2 Don't need the null check in enzygoticSiblings anymore in 1.4 2022-11-04 09:18:27 -07:00
lutepickle
db5813d768 Move the xenotype inheritance fully into the gene null check, since it is possible with the hybrid system for two humans to make an animal 2022-11-04 09:01:36 -07:00
lutepickle
040ea6e672 Test for Biotech and only set xenotype if it's not null 2022-11-04 08:59:39 -07:00
lutepickle
ea1c5794f9 Handle inheritable xenotypes and hybrids 2022-11-04 08:43:58 -07:00
lutepickle
8c213c4fe6 Don't let a biotech pregnancy go into labor if another womb already is 2022-11-04 07:09:33 -07:00
lutepickle
2846117881 Track the changing hediff through pregnancy and labor 2022-11-03 19:01:50 -07:00
lutepickle
483ab2f7c0 Somehow OvaryPowerThreshold can end up as 0 and cause errors, so be sure to make it minimum 1 2022-10-31 20:53:57 -07:00
lutepickle
03f511fa02 Remove commented-out MultiplePregnancy options 2022-10-30 19:18:28 -07:00
lutepickle
d8ce861448 Add the option to start new biotech pregnancies 2022-10-30 10:36:38 -07:00
lutepickle
2f10a9cc3d Use ModsConfig.IsActive to detect HAR and AG 2022-10-30 10:05:58 -07:00
lutepickle
e64bd53318 Finally fix the scroll bug in the mod options 2022-10-30 09:29:28 -07:00
lutepickle
67e6818d73 We don't have to test for existing biotech pregs on implantation. The existing code will catch a non-multiple. This will also allow multiwomb pregnancy properly with one in biotech. 2022-10-29 19:05:08 -07:00
lutepickle
6e6579f1ff Have humans lactate on birth with biotech 2022-10-29 08:56:55 -07:00
lutepickle
592cb361ad Properly display biotech pregnanies in the womb dialog and gizmo 2022-10-28 15:14:29 -07:00
lutepickle
c72ff42da1 Update GetPregnancyIcon for non-RJW pregnancies 2022-10-28 15:01:28 -07:00
lutepickle
31c3026ca0 Basic framework of biotech pregnancy handling 2022-10-27 13:57:25 -07:00
lutepickle
5888458c46 Properly inherit genes from parents and copy to identical twins 2022-10-24 17:49:58 -07:00
lutepickle
ee9ef8f22e Don't save Cum.internalThing 2022-10-23 19:50:20 -07:00
lutepickle
7504171b42 Remove nipple back compatibility 2022-10-23 19:38:00 -07:00
lutepickle
e697793eb1 Rename Young stage to Infertile, as it applies to all 0% ferility pawns 2022-10-23 19:29:01 -07:00
lutepickle
9a82b4ab84 Remove climacteric stages 2022-10-23 19:26:59 -07:00
lutepickle
6b3044488d Basic cleanup of errors related to new rimworld API 2022-10-23 19:23:00 -07:00
lutepickle
908eb01a50 Update references to 1.4 2022-10-23 18:27:19 -07:00
lutepickle
5c1cc89f81 Disable Animal Genetics compatibility for now 2022-10-23 18:24:39 -07:00
lutepickle
65d9df832d Delete the sexperience module entirely 2022-10-23 18:03:58 -07:00
lutepickle
ee2ea2e34f Inital file copy for 1.4 2022-10-23 18:02:02 -07:00