diff --git a/1.4/Assemblies/RJW_Menstruation.dll b/1.4/Assemblies/RJW_Menstruation.dll index 92622ed..5f3b009 100644 Binary files a/1.4/Assemblies/RJW_Menstruation.dll and b/1.4/Assemblies/RJW_Menstruation.dll differ diff --git a/1.4/Languages/English/Keyed/RJW_Menstruation.xml b/1.4/Languages/English/Keyed/RJW_Menstruation.xml index b3a8734..6051d38 100644 --- a/1.4/Languages/English/Keyed/RJW_Menstruation.xml +++ b/1.4/Languages/English/Keyed/RJW_Menstruation.xml @@ -77,6 +77,8 @@ Enable menopause effect that makes pawn infertile when they run out of eggs. If you have problems with long lived races, turn off this option. Enable pheromones Allow humanlikes in visible estrus to increase the sex drive of nearby humanlike males. + Animal pheromone effect + Set the effect that animals in visible estrus have on humanlikes. Use multiple pregnancy Use multiple pregnancy instead RJW's default pregnancy Disable this option if you are in trouble with impregnation RJW pregnancy should be turned on. Enable hetero ovular twins diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs index b788886..f9abcdf 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs @@ -59,6 +59,7 @@ namespace RJW_Menstruation public static bool Debug = false; public static bool EnableMenopause = true; public static bool EnablePheromones = true; + public static float AnimalPheromoneEffect = 0.0f; public static DetailLevel InfoDetail => infoDetail; public static bool EstrusOverridesHookupSettings = false; public static float EstrusFuckabilityToHookup = RJWHookupSettings.MinimumFuckabilityToHookup; @@ -95,6 +96,7 @@ namespace RJW_Menstruation EnableAnimalCycle = false; EnableMenopause = true; EnablePheromones = true; + AnimalPheromoneEffect = 0.0f; CycleAcceleration = CycleAccelerationDefault; ColonistTickInterval = ColonistTickIntervalDefault; NonColonistTickInterval = NonColonistTickIntervalDefault; @@ -214,6 +216,7 @@ namespace RJW_Menstruation Scribe_Values.Look(ref infoDetail, "InfoDetail", DetailLevel.All); Scribe_Values.Look(ref EnableMenopause, "EnableMenopause", true); Scribe_Values.Look(ref EnablePheromones, "EnablePheromones", true); + Scribe_Values.Look(ref AnimalPheromoneEffect, "AnimalPheromoneEffect", 0.0f); Scribe_Values.Look(ref EstrusOverridesHookupSettings, "EstrusOverridesHookupSettings", false); Scribe_Values.Look(ref EstrusFuckabilityToHookup, "EstrusFuckabilityToHookup", EstrusFuckabilityToHookup, true); Scribe_Values.Look(ref EstrusAttractivenessToHookup, "EstrusAttractivenessToHookup", EstrusAttractivenessToHookup, true); @@ -293,6 +296,7 @@ namespace RJW_Menstruation float mainRectHeight = 126f + (Configurations.EnableWombIcon || Configurations.EnableButtonInHT ? 400f : 0f) + (Configurations.EnableAnimalCycle ? 48f : 0f) + + (Configurations.EnableAnimalCycle && Configurations.EnablePheromones ? 48f : 0f) + (Configurations.EstrusOverridesHookupSettings ? 144f : 0f) + (Configurations.PregnancySource == Configurations.PregnancyType.MultiplePregnancy ? (Configurations.EnableEnzygoticTwins ? 175f : 75f) : 0f) + (Configurations.PregnancySource == Configurations.PregnancyType.Biotech ? 75f : 0f) + @@ -396,6 +400,14 @@ namespace RJW_Menstruation listmain.CheckboxLabeled(Translations.Option12_Label, ref Configurations.EnableMenopause, Translations.Option12_Desc); listmain.CheckboxLabeled(Translations.Option_EnablePheromones_Label, ref Configurations.EnablePheromones, Translations.Option_EnablePheromones_Desc); + if (Configurations.EnablePheromones && Configurations.EnableAnimalCycle) + { + Adjust = (int)(Configurations.AnimalPheromoneEffect * 1000); + listmain.Label(Translations.Option_AnimalPheromoneEffect_Label + " " + Configurations.AnimalPheromoneEffect * 100 + "%", -1, Translations.Option_AnimalPheromoneEffect_Desc); + Adjust = (int)listmain.Slider(Adjust, 0, 1000); + Configurations.AnimalPheromoneEffect = (float)Adjust / 1000f; + } + else Configurations.AnimalPheromoneEffect = 0.0f; listmain.Label(Translations.Option3_Label + " " + Configurations.ImplantationChance * 100 + "%", -1, Translations.Option3_Desc); Configurations.ImplantationChanceAdjust = (int)listmain.Slider(Configurations.ImplantationChanceAdjust, 0, 1000); diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Pheromones.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Pheromones.cs index 4194d6e..8462b19 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Pheromones.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Pheromones.cs @@ -31,7 +31,7 @@ namespace RJW_Menstruation try { if (!Configurations.EnablePheromones) return; - if (!Pawn.RaceProps.Humanlike) return; + if (!Pawn.RaceProps.Humanlike && (!Configurations.EnableAnimalCycle || Configurations.AnimalPheromoneEffect <= 0.0f)) return; if (!Pawn.IsHashIntervalTick(emitInterval)) return; if (!Pawn.SpawnedOrAnyParentSpawned) return; @@ -87,6 +87,7 @@ namespace RJW_Menstruation Hediff pheromones = target.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_AffectedByPheromones); float decay = VariousDefOf.Hediff_AffectedByPheromones.CompProps().severityPerDay; float raiseSeverityPerDay = intensity / Props.daysToMaxSeverity - decay; // Desired increase plus enough to overcome pheromone decay + if (!Pawn.RaceProps.Humanlike) raiseSeverityPerDay *= Configurations.AnimalPheromoneEffect; float amountToApply = emitRatio * raiseSeverityPerDay; if (pheromones != null) pheromones.Severity += amountToApply; diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/Translations.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/Translations.cs index ec1c46d..0da2b3c 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/Translations.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/Translations.cs @@ -81,6 +81,8 @@ namespace RJW_Menstruation public static readonly string Option12_Desc = "Option12_Desc".Translate(); public static readonly string Option_EnablePheromones_Label = "Option_EnablePheromones_Label".Translate(); public static readonly string Option_EnablePheromones_Desc = "Option_EnablePheromones_Desc".Translate(); + public static readonly string Option_AnimalPheromoneEffect_Label = "Option_AnimalPheromoneEffect_Label".Translate(); + public static readonly string Option_AnimalPheromoneEffect_Desc = "Option_AnimalPheromoneEffect_Desc".Translate(); public static readonly string Option13_Label = "Option13_Label".Translate(); public static readonly string Option13_Desc = "Option13_Desc".Translate(); public static readonly string Option14_Label = "Option14_Label".Translate();