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)
if (sextype != xxx.rjwSextype.Vaginal && sextype != xxx.rjwSextype.DoublePenetration) return true;
if (partner.IsAnimal() && !Configurations.EnableAnimalCycle) return true;
var pawnparts = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn));
HediffComp_Menstruation comp = partner.GetMenstruationComp();
if (comp is null) return true;
if (Genital_Helper.has_penis_fertile(pawn, pawnparts) && PregnancyHelper.CanImpregnate(pawn, partner, sextype))
{
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);
Pawn female = null, male = null;
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;
if (female.IsAnimal() && !Configurations.EnableAnimalCycle) return true;
HediffComp_Menstruation comp = female.GetMenstruationComp();
if (comp != null)
{
if (Genital_Helper.has_penis_fertile(male, maleparts) && PregnancyHelper.CanImpregnate(male, female, sextype))
{
PregnancyHelper.Doimpregnate(male, female);
return false;
}
else if (Genital_Helper.has_ovipositorM(male, maleparts))
{
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);
}
//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);
// }
//}
PregnancyHelper.Doimpregnate(pawn, partner);
return false;
}
else if (Genital_Helper.has_ovipositorM(pawn, pawnparts))
{
comp.CumIn(pawn, Rand.Range(0.5f, 3.0f) * pawn.BodySize, 1.0f);
}
else comp.CumIn(pawn, pawn.GetCumVolume(pawnparts), 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)
{