mirror of
https://gitgud.io/lutepickle/rjw_menstruation.git
synced 2024-08-14 22:46:52 +00:00
Get the right menstruation comp when impregnating. Also remove CanFertilize, it's too much of a pain
This commit is contained in:
parent
28cc9755fd
commit
05029858d5
3 changed files with 12 additions and 40 deletions
Binary file not shown.
|
@ -85,34 +85,6 @@ namespace RJW_Menstruation
|
||||||
return 1.0f - Mathf.Pow(1.0f - Configurations.FertilizeChance, comp.TotalFertCum * comp.Props.basefertilizationChanceFactor);
|
return 1.0f - Mathf.Pow(1.0f - Configurations.FertilizeChance, comp.TotalFertCum * comp.Props.basefertilizationChanceFactor);
|
||||||
}
|
}
|
||||||
|
|
||||||
// A looser CanImpregnate
|
|
||||||
public static bool CanFertilize(Pawn fucker, Pawn fucked, xxx.rjwSextype sexType = xxx.rjwSextype.Vaginal)
|
|
||||||
{
|
|
||||||
if (fucker == null || fucked == null) return false;
|
|
||||||
|
|
||||||
if (!fucked.GetMenstruationComps().Any()) return PregnancyHelper.CanImpregnate(fucker, fucked, sexType);
|
|
||||||
|
|
||||||
if (sexType != xxx.rjwSextype.Vaginal && sexType != xxx.rjwSextype.DoublePenetration) return false;
|
|
||||||
|
|
||||||
if (AndroidsCompatibility.IsAndroid(fucker) && AndroidsCompatibility.IsAndroid(fucked)) return false;
|
|
||||||
|
|
||||||
if (fucker.IsUnsexyRobot() || fucked.IsUnsexyRobot()) return false;
|
|
||||||
|
|
||||||
if (!fucker.RaceHasPregnancy() || !fucked.RaceHasPregnancy()) return false;
|
|
||||||
|
|
||||||
if (!Genital_Helper.has_penis_fertile(fucker, fucker.GetGenitalsList())) return false;
|
|
||||||
|
|
||||||
if (xxx.is_human(fucked) && xxx.is_human(fucker) && !RJWPregnancySettings.humanlike_pregnancy_enabled) return false;
|
|
||||||
|
|
||||||
if (xxx.is_animal(fucker) != xxx.is_animal(fucked) && !RJWPregnancySettings.bestial_pregnancy_enabled) return false;
|
|
||||||
|
|
||||||
if (xxx.is_animal(fucker) && xxx.is_animal(fucked) && !RJWPregnancySettings.animal_pregnancy_enabled) return false;
|
|
||||||
|
|
||||||
if (fucker.def.defName != fucked.def.defName && RJWPregnancySettings.interspecies_impregnation_modifier <= 0.0f && !RJWPregnancySettings.complex_interspecies) return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Texture2D GetPregnancyIcon(this HediffComp_Menstruation comp, Hediff hediff)
|
public static Texture2D GetPregnancyIcon(this HediffComp_Menstruation comp, Hediff hediff)
|
||||||
{
|
{
|
||||||
string icon = "";
|
string icon = "";
|
||||||
|
|
|
@ -34,11 +34,11 @@ namespace RJW_Menstruation
|
||||||
|
|
||||||
HediffComp_Menstruation comp;
|
HediffComp_Menstruation comp;
|
||||||
if (pawn.Has(Quirk.ImpregnationFetish) || partner.Has(Quirk.ImpregnationFetish) || partner.IsInEstrus())
|
if (pawn.Has(Quirk.ImpregnationFetish) || partner.Has(Quirk.ImpregnationFetish) || partner.IsInEstrus())
|
||||||
comp = pawn.GetFertileMenstruationComp();
|
comp = partner.GetFertileMenstruationComp();
|
||||||
else comp = pawn.GetRandomMenstruationComp();
|
else comp = partner.GetRandomMenstruationComp();
|
||||||
if (comp == null) return true;
|
if (comp == null) return true;
|
||||||
|
|
||||||
if (Genital_Helper.has_penis_fertile(pawn, pawnparts) && MenstruationUtility.CanFertilize(pawn, partner, sextype))
|
if (Genital_Helper.has_penis_fertile(pawn, pawnparts) && PregnancyHelper.CanImpregnate(pawn, partner, sextype))
|
||||||
{
|
{
|
||||||
PregnancyHelper.Doimpregnate(pawn, partner);
|
PregnancyHelper.Doimpregnate(pawn, partner);
|
||||||
return false;
|
return false;
|
||||||
|
@ -105,8 +105,8 @@ namespace RJW_Menstruation
|
||||||
if (partner.IsAnimal() && !Configurations.EnableAnimalCycle) return true;
|
if (partner.IsAnimal() && !Configurations.EnableAnimalCycle) return true;
|
||||||
HediffComp_Menstruation comp;
|
HediffComp_Menstruation comp;
|
||||||
if (pawn.Has(Quirk.ImpregnationFetish) || partner.Has(Quirk.ImpregnationFetish) || partner.IsInEstrus())
|
if (pawn.Has(Quirk.ImpregnationFetish) || partner.Has(Quirk.ImpregnationFetish) || partner.IsInEstrus())
|
||||||
comp = pawn.GetFertileMenstruationComp();
|
comp = partner.GetFertileMenstruationComp();
|
||||||
else comp = pawn.GetRandomMenstruationComp();
|
else comp = partner.GetRandomMenstruationComp();
|
||||||
if (comp == null)
|
if (comp == null)
|
||||||
{
|
{
|
||||||
ModLog.Message("used original rjw method: Comp missing");
|
ModLog.Message("used original rjw method: Comp missing");
|
||||||
|
@ -144,9 +144,9 @@ namespace RJW_Menstruation
|
||||||
// This is stricter than can_impregnate, so quickly filter out scenarios that are negative anyways.
|
// This is stricter than can_impregnate, so quickly filter out scenarios that are negative anyways.
|
||||||
if (__result == false || __instance != Quirk.ImpregnationFetish) return;
|
if (__result == false || __instance != Quirk.ImpregnationFetish) return;
|
||||||
__result =
|
__result =
|
||||||
(MenstruationUtility.CanFertilize(pawn, partner) && (partner.GetMenstruationComps()?.Any(comp => comp.IsDangerDay) ?? true))
|
(PregnancyHelper.CanImpregnate(pawn, partner) && (partner.GetMenstruationComps()?.Any(comp => comp.IsDangerDay) ?? true))
|
||||||
||
|
||
|
||||||
(MenstruationUtility.CanFertilize(partner, pawn) && (pawn.GetMenstruationComps()?.Any(comp => comp.IsDangerDay) ?? true));
|
(PregnancyHelper.CanImpregnate(partner, pawn) && (pawn.GetMenstruationComps()?.Any(comp => comp.IsDangerDay) ?? true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -165,9 +165,9 @@ namespace RJW_Menstruation
|
||||||
else __result--;
|
else __result--;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
(MenstruationUtility.CanFertilize(pawn, partner, props.sexType) && (partner.GetMenstruationComps()?.Any(comp => comp.IsDangerDay) ?? true))
|
(PregnancyHelper.CanImpregnate(pawn, partner, props.sexType) && (partner.GetMenstruationComps()?.Any(comp => comp.IsDangerDay) ?? true))
|
||||||
||
|
||
|
||||||
(MenstruationUtility.CanFertilize(partner, pawn, props.sexType) && (pawn.GetMenstruationComps()?.Any(comp => comp.IsDangerDay) ?? true)))
|
(PregnancyHelper.CanImpregnate(partner, pawn, props.sexType) && (pawn.GetMenstruationComps()?.Any(comp => comp.IsDangerDay) ?? true)))
|
||||||
__result++;
|
__result++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -189,15 +189,15 @@ namespace RJW_Menstruation
|
||||||
}
|
}
|
||||||
public static void Postfix(ref float __result, Pawn fucker, Pawn fucked)
|
public static void Postfix(ref float __result, Pawn fucker, Pawn fucked)
|
||||||
{
|
{
|
||||||
if (fucker.IsInEstrus(true) && MenstruationUtility.CanFertilize(fucked, fucker))
|
if (fucker.IsInEstrus(true) && PregnancyHelper.CanImpregnate(fucked, fucker))
|
||||||
{
|
{
|
||||||
__result *= (1f + GetNetFertility(fucker, fucked) / 4);
|
__result *= (1f + GetNetFertility(fucker, fucked) / 4);
|
||||||
}
|
}
|
||||||
else if (fucker.IsInEstrus(false) && MenstruationUtility.CanFertilize(fucked, fucker))
|
else if (fucker.IsInEstrus(false) && PregnancyHelper.CanImpregnate(fucked, fucker))
|
||||||
{
|
{
|
||||||
__result *= (1f + GetNetFertility(fucker, fucked) / 40);
|
__result *= (1f + GetNetFertility(fucker, fucked) / 40);
|
||||||
}
|
}
|
||||||
else if (xxx.is_animal(fucker) && fucked.IsInEstrus(true) && MenstruationUtility.CanFertilize(fucker, fucked))
|
else if (xxx.is_animal(fucker) && fucked.IsInEstrus(true) && PregnancyHelper.CanImpregnate(fucker, fucked))
|
||||||
{
|
{
|
||||||
__result *= 1.25f;
|
__result *= 1.25f;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue