Only put cum in the womb when the one with the penis orgasms, and increase the volume to make up for it.

Also remove RJW's cum on body amount setting from the calculations.
This commit is contained in:
lutepickle 2022-03-10 12:12:37 -08:00
parent 6e0d6d691b
commit 9da2c39d0e
3 changed files with 19 additions and 67 deletions

Binary file not shown.

View file

@ -15,74 +15,26 @@ namespace RJW_Menstruation
Pawn pawn = props.pawn;
Pawn partner = props.partner;
if (sextype == xxx.rjwSextype.Vaginal)
{
var pawnpartBPR = Genital_Helper.get_genitalsBPR(pawn);
var maleparts = Genital_Helper.get_PartsHediffList(pawn, pawnpartBPR);
var partnerpartBPR = Genital_Helper.get_genitalsBPR(partner);
var femaleparts = Genital_Helper.get_PartsHediffList(partner, partnerpartBPR);
if (sextype != xxx.rjwSextype.Vaginal && sextype != xxx.rjwSextype.DoublePenetration) return true;
Pawn female = null, male = null;
if (partner.IsAnimal() && !Configurations.EnableAnimalCycle) return true;
if (Genital_Helper.has_vagina(partner, femaleparts))
{
female = partner;
male = pawn;
}
else if (Genital_Helper.has_vagina(pawn, maleparts))
{
female = pawn;
femaleparts = maleparts;
male = partner;
maleparts = Genital_Helper.get_PartsHediffList(partner, partnerpartBPR);
}
else return true;
var pawnparts = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn));
if (female.IsAnimal() && !Configurations.EnableAnimalCycle) return true;
HediffComp_Menstruation comp = female.GetMenstruationComp();
if (comp != null)
HediffComp_Menstruation comp = partner.GetMenstruationComp();
if (comp is null) return true;
if (Genital_Helper.has_penis_fertile(pawn, pawnparts) && PregnancyHelper.CanImpregnate(pawn, partner, sextype))
{
if (Genital_Helper.has_penis_fertile(male, maleparts) && PregnancyHelper.CanImpregnate(male, female, sextype))
{
PregnancyHelper.Doimpregnate(male, female);
PregnancyHelper.Doimpregnate(pawn, partner);
return false;
}
else if (Genital_Helper.has_ovipositorM(male, maleparts))
else if (Genital_Helper.has_ovipositorM(pawn, pawnparts))
{
comp.CumIn(male, Rand.Range(0.5f,3.0f) * RJWSettings.cum_on_body_amount_adjust * male.BodySize, 1.0f);
}
else comp.CumIn(male, male.GetCumVolume(maleparts), 0);
comp.CumIn(pawn, Rand.Range(0.5f, 3.0f) * pawn.BodySize, 1.0f);
}
else comp.CumIn(pawn, pawn.GetCumVolume(pawnparts), 0);
//if (Genital_Helper.has_vagina(partner, partnerparts))
//{
// if (partner.IsAnimal() && !Configurations.EnableAnimalCycle) return true;
// HediffComp_Menstruation comp = Utility.GetMenstruationComp(partner);
// if (comp != null)
// {
// if (Genital_Helper.has_penis_fertile(pawn, pawnparts) && PregnancyHelper.CanImpregnate(pawn, partner, sextype))
// {
// PregnancyHelper.Doimpregnate(pawn, partner);
// return false;
// }
// else comp.CumIn(pawn, pawn.GetCumVolume(), 0);
// }
//}
//else if (Genital_Helper.has_vagina(pawn, pawnparts))
//{
// if (pawn.IsAnimal() && !Configurations.EnableAnimalCycle) return true;
// HediffComp_Menstruation comp = Utility.GetMenstruationComp(pawn);
// if (comp != null)
// {
// if (Genital_Helper.has_penis_fertile(partner, partnerparts) && PregnancyHelper.CanImpregnate(partner, pawn, sextype))
// {
// PregnancyHelper.Doimpregnate(partner, pawn);
// return false;
// }
// else comp.CumIn(partner, partner.GetCumVolume(), 0);
// }
//}
}
return true;

View file

@ -79,7 +79,7 @@ namespace RJW_Menstruation
try
{
res = part.FluidAmmount * part.FluidModifier * pawn.BodySize / pawn.RaceProps.baseBodySize * Rand.Range(0.8f, 1.2f) * RJWSettings.cum_on_body_amount_adjust * 0.3f;
res = part.FluidAmmount * part.FluidModifier * pawn.BodySize / pawn.RaceProps.baseBodySize * Rand.Range(0.8f, 1.2f);
}
catch (NullReferenceException)
{