diff --git a/1.4/Assemblies/RJW_Menstruation.dll b/1.4/Assemblies/RJW_Menstruation.dll index 65b1373..2ac459a 100644 Binary files a/1.4/Assemblies/RJW_Menstruation.dll and b/1.4/Assemblies/RJW_Menstruation.dll differ diff --git a/1.4/Defs/ThoughtDefs/Thoughts_sex.xml b/1.4/Defs/ThoughtDefs/Thoughts_sex.xml index 0b0bf12..e35d3e8 100644 --- a/1.4/Defs/ThoughtDefs/Thoughts_sex.xml +++ b/1.4/Defs/ThoughtDefs/Thoughts_sex.xml @@ -30,10 +30,6 @@ 1 - -
  • CameInsideMIdeo
  • -
  • CameInsideM
  • -
    @@ -67,9 +63,6 @@ 5 - -
  • CameInsideFIdeo
  • -
    @@ -87,16 +80,6 @@ -10 - -
  • HaterCameInsideFEstrus
  • -
  • CameInsideF
  • -
  • HaterCameInsideFSafe
  • -
  • CameInsideFLowFert
  • -
  • CameInsideFFetishSafe
  • -
  • HaterCameInsideFIdeo
  • -
  • CameInsideFFetish
  • -
  • CameInsideFIdeo
  • -
    @@ -110,19 +93,10 @@
  • What was I thinking, letting him do that? - -3 + -2 -5
  • - -
  • CameInsideF
  • -
  • HaterCameInsideFSafe
  • -
  • CameInsideFLowFert
  • -
  • CameInsideFFetishSafe
  • -
  • HaterCameInsideFIdeo
  • -
  • CameInsideFFetish
  • -
  • CameInsideFIdeo
  • -
    @@ -139,12 +113,6 @@ -1 - -
  • CameInsideFFetishSafe
  • -
  • HaterCameInsideFIdeo
  • -
  • CameInsideFFetish
  • -
  • CameInsideFIdeo
  • -
    @@ -162,14 +130,6 @@ -2 - -
  • HaterCameInsideFSafe
  • -
  • CameInsideFLowFert
  • -
  • CameInsideFFetishSafe
  • -
  • HaterCameInsideFIdeo
  • -
  • CameInsideFFetish
  • -
  • CameInsideFIdeo
  • -
    @@ -187,11 +147,6 @@ 1 - -
  • HaterCameInsideFIdeo
  • -
  • CameInsideFFetish
  • -
  • CameInsideFIdeo
  • -
    @@ -209,13 +164,6 @@ -5 - -
  • CameInsideFLowFert
  • -
  • CameInsideFFetishSafe
  • -
  • HaterCameInsideFIdeo
  • -
  • CameInsideFFetish
  • -
  • CameInsideFIdeo
  • -
    @@ -278,7 +226,7 @@ - + EggRestorationReceived Thought_Memory 4 @@ -291,77 +239,6 @@ - - - CameInsideMIdeo - Thought_MemorySocial - 1.0 - 5 - 0.4 - -
  • - - It is my duty to make her pregnant. - 3 - 2 -
  • -
    - -
  • CameInsideM
  • -
    -
    - - - CameInsideFIdeo - Thought_MemorySocial - 3.0 - 5 - 0.1 - 1 - -
  • - - I hope this makes me pregnant like should be. - 15 - 10 -
  • -
    -
    - - - HaterCameInsideFIdeo - Thought_MemorySocial - 3.0 - 5 - 0.1 - 1 - -
  • - - I know I should become pregnant, but does it have to be his? - 5 - 2 -
  • -
    - -
  • CameInsideFFetish
  • -
  • CameInsideFIdeo
  • -
    -
    - - - HateTookContraceptivePillIdeo - Thought_Memory - 7.0 - 5 - 0.1 - -
  • - - My beliefs demand I become pregnant. - -5 -
  • -
    -
    - + + diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/CompBiosculpterPod_EggRestorationCycle.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/CompBiosculpterPod_EggRestorationCycle.cs index b7656c8..537ef53 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/CompBiosculpterPod_EggRestorationCycle.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/CompBiosculpterPod_EggRestorationCycle.cs @@ -1,5 +1,4 @@ using RimWorld; -using System.Linq; using Verse; namespace RJW_Menstruation @@ -23,8 +22,6 @@ namespace RJW_Menstruation comp.RestoreEggs(((CompProperties_BiosculpterPod_EggRestorationCycle)Props).yearsToRestore); Messages.Message(Translations.EggRestorationCompleted(occupant.Named("PAWN")), occupant, MessageTypeDefOf.PositiveEvent); - if (occupant.GetMenstruationComps().Any()) - occupant.needs.mood?.thoughts?.memories?.TryGainMemoryFast(VariousDefOf.EggRestorationReceived); } } } diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/DrugOutcomeDoers.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/DrugOutcomeDoers.cs index 33e4e11..b618abe 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/DrugOutcomeDoers.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/DrugOutcomeDoers.cs @@ -89,7 +89,7 @@ namespace RJW_Menstruation else m.moodPowerFactor = 0.3f; } - if (pawn.IsProPregnancy(out _)) pawn.needs.mood.thoughts.memories.TryGainMemoryFast(VariousDefOf.HateTookContraceptivePill); + if (pawn.IsProPregnancy()) pawn.needs.mood.thoughts.memories.TryGainMemoryFast(VariousDefOf.HateTookContraceptivePill); else pawn.needs.mood.thoughts.memories.TryGainMemoryFast(VariousDefOf.TookContraceptivePill); } } diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs index f726878..c32ee83 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs @@ -1796,48 +1796,52 @@ namespace RJW_Menstruation { if (!xxx.is_human(Pawn) || !xxx.is_human(cummer)) return; - MemoryThoughtHandler cummerMemories = cummer.needs.mood.thoughts.memories; - MemoryThoughtHandler pawnMemories = Pawn.needs.mood.thoughts.memories; - - if (cummer.IsProPregnancy(out Precept preceptm) || (cummer.HasQuirk(QuirkUtility.Quirks.Teratophile) != (Pawn.GetStatValue(StatDefOf.PawnBeauty) >= 0))) + if ((cummer.HasQuirk(QuirkUtility.Quirks.Teratophile) != (Pawn.GetStatValue(StatDefOf.PawnBeauty) >= 0)) || + cummer.IsProPregnancy()) { - if (cummer.relations.OpinionOf(Pawn) <= -5) - cummerMemories.TryGainMemory(VariousDefOf.HaterCameInsideM, Pawn); - else if (preceptm != null) - cummerMemories.TryGainMemory(VariousDefOf.CameInsideMIdeo, Pawn, preceptm); + if (cummer.relations.OpinionOf(Pawn) <= -25) + { + cummer.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideM, Pawn); + } else - cummerMemories.TryGainMemory(VariousDefOf.CameInsideM, Pawn); + { + cummer.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideM, Pawn); + } } if (IsDangerDay) { - if (Pawn.IsProPregnancy(out Precept preceptf)) + if (Pawn.IsProPregnancy()) { - if (preceptf != null) - { - if (Pawn.relations.OpinionOf(cummer) <= -5) - pawnMemories.TryGainMemory(VariousDefOf.HaterCameInsideFIdeo, cummer, preceptf); - else - pawnMemories.TryGainMemory(VariousDefOf.CameInsideFIdeo, cummer, preceptf); - } - else pawnMemories.TryGainMemory(VariousDefOf.CameInsideFFetish, cummer); + Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideFFetish, cummer); + } + else if (Pawn.relations.OpinionOf(cummer) <= -5) + { + Pawn.needs.mood.thoughts.memories.RemoveMemoriesOfDefWhereOtherPawnIs(VariousDefOf.CameInsideF, cummer); + Pawn.needs.mood.thoughts.memories.RemoveMemoriesOfDefWhereOtherPawnIs(VariousDefOf.HaterCameInsideFEstrus, cummer); + Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideF, cummer); + } + else if (Pawn.IsInEstrus() && Pawn.relations.OpinionOf(cummer) < RJWHookupSettings.MinimumRelationshipToHookup) + { + Pawn.needs.mood.thoughts.memories.RemoveMemoriesOfDefWhereOtherPawnIs(VariousDefOf.CameInsideF, cummer); + Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideFEstrus, cummer); } - else if (Pawn.relations.OpinionOf(cummer) <= -5) - pawnMemories.TryGainMemory(VariousDefOf.HaterCameInsideF, cummer); - else if (Pawn.IsInEstrus() && Pawn.relations.OpinionOf(cummer) < RJWHookupSettings.MinimumRelationshipToHookup) - pawnMemories.TryGainMemory(VariousDefOf.HaterCameInsideFEstrus, cummer); else if (!Pawn.relations.DirectRelationExists(PawnRelationDefOf.Spouse, cummer) && !Pawn.relations.DirectRelationExists(PawnRelationDefOf.Fiance, cummer)) { - if (Pawn.health.capacities.GetLevel(xxx.reproduction) < 0.50f) pawnMemories.TryGainMemory(VariousDefOf.CameInsideFLowFert, cummer); - else pawnMemories.TryGainMemory(VariousDefOf.CameInsideF, cummer); + if (Pawn.health.capacities.GetLevel(xxx.reproduction) < 0.50f) Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideFLowFert, cummer); + else Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideF, cummer); } } else { - if (Pawn.IsProPregnancy(out Precept _)) - pawnMemories.TryGainMemory(VariousDefOf.CameInsideFFetishSafe, cummer); + if (Pawn.IsProPregnancy()) + { + Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideFFetishSafe, cummer); + } else if (Pawn.relations.OpinionOf(cummer) <= -5) - pawnMemories.TryGainMemory(VariousDefOf.HaterCameInsideFSafe, cummer); + { + Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideFSafe, cummer); + } } } diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs index f1c2e55..c3cd7e4 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs @@ -407,21 +407,20 @@ namespace RJW_Menstruation return false; } - public static bool IsProPregnancy(this Pawn pawn, out Precept precept) + public static bool IsProPregnancy(this Pawn pawn) { - precept = null; + if (pawn.HasQuirk(QuirkUtility.Quirks.Breeder) || + pawn.HasQuirk(QuirkUtility.Quirks.ImpregnationFetish)) + return true; Ideo ideo = pawn.Ideo; - if (ideo != null) - { - precept = ideo.GetPrecept(VariousDefOf.Pregnancy_Required) ?? - ideo.GetPrecept(VariousDefOf.Pregnancy_Holy) ?? - ideo.GetPrecept(VariousDefOf.Pregnancy_Elevated); - } - if (precept != null) return true; + if (ideo == null || VariousDefOf.Pregnancy_Elevated == null) return false; + if (ideo.HasPrecept(VariousDefOf.Pregnancy_Elevated) || + ideo.HasPrecept(VariousDefOf.Pregnancy_Holy) || + ideo.HasPrecept(VariousDefOf.Pregnancy_Required)) + return true; - else return pawn.HasQuirk(QuirkUtility.Quirks.Breeder) || - pawn.HasQuirk(QuirkUtility.Quirks.ImpregnationFetish); + return false; } public static float DamagePants(this Pawn pawn, float fluidAmount) diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs index 2cc6646..0b5d0c5 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs @@ -27,10 +27,9 @@ namespace RJW_Menstruation (pawn.relations?.DirectRelations?.Find(x => x.def.Equals(PawnRelationDefOf.Spouse) || x.def.Equals(PawnRelationDefOf.Fiance))) != null) return; - if (pawn.IsProPregnancy(out Precept precept) || pawn.relations?.DirectRelations?.Find(x => x.def.Equals(PawnRelationDefOf.Lover)) != null) + if (pawn.IsProPregnancy() || pawn.relations?.DirectRelations?.Find(x => x.def.Equals(PawnRelationDefOf.Lover)) != null) { - if (precept != null) - pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.UnwantedPregnancyMild); + pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.UnwantedPregnancyMild); } else { diff --git a/1.4/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs index 6d307cf..6c5e143 100644 --- a/1.4/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs +++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs @@ -39,7 +39,6 @@ namespace RJW_Menstruation public static readonly ThoughtDef UnwantedPregnancyMild = DefDatabase.GetNamed("UnwantedPregnancyMild"); public static readonly ThoughtDef TookContraceptivePill = DefDatabase.GetNamed("TookContraceptivePill"); public static readonly ThoughtDef HateTookContraceptivePill = DefDatabase.GetNamed("HateTookContraceptivePill"); - public static readonly ThoughtDef EggRestorationReceived = DefDatabase.GetNamed("EggRestorationReceived"); public static readonly CompProperties_Menstruation HumanVaginaCompProperties = (CompProperties_Menstruation)Genital_Helper.average_vagina.comps.FirstOrDefault(x => x is CompProperties_Menstruation); public static readonly KeyBindingDef OpenStatusWindowKey = DefDatabase.GetNamed("OpenStatusWindow"); public static readonly RecordDef AmountofCreampied = DefDatabase.GetNamed("AmountofCreampied"); @@ -173,11 +172,5 @@ namespace RJW_Menstruation public static readonly PreceptDef Pregnancy_Elevated = DefDatabase.GetNamedSilentFail("Pregnancy_Elevated"); public static readonly PreceptDef Pregnancy_Holy = DefDatabase.GetNamedSilentFail("Pregnancy_Holy"); public static readonly PreceptDef Pregnancy_Required = DefDatabase.GetNamedSilentFail("Pregnancy_Required"); - // Related thoughts - public static readonly ThoughtDef CameInsideMIdeo = DefDatabase.GetNamed("CameInsideMIdeo"); - public static readonly ThoughtDef CameInsideFIdeo = DefDatabase.GetNamed("CameInsideFIdeo"); - public static readonly ThoughtDef HaterCameInsideFIdeo = DefDatabase.GetNamed("HaterCameInsideFIdeo"); - public static readonly ThoughtDef HateTookContraceptivePillIdeo = DefDatabase.GetNamed("HateTookContraceptivePillIdeo"); } - } diff --git a/changelogs.txt b/changelogs.txt index 04c373b..97ae1c8 100644 --- a/changelogs.txt +++ b/changelogs.txt @@ -1,7 +1,3 @@ -Version 1.0.9.1 - - Add new ideology-related thoughts with the sexperience-ideology mod. - - Using the egg restoration biosculptor cycle will give a small mood buff. - Version 1.0.9.0 - Fix errors when opening the womb dialog of some low fertility pawns. - Updated Traditional Chinese translation by Hydrogen.