diff --git a/1.4/Assemblies/RJW_Menstruation.dll b/1.4/Assemblies/RJW_Menstruation.dll
index 2ac459a..f9d70aa 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 e35d3e8..0b0bf12 100644
--- a/1.4/Defs/ThoughtDefs/Thoughts_sex.xml
+++ b/1.4/Defs/ThoughtDefs/Thoughts_sex.xml
@@ -30,6 +30,10 @@
1
+
+ CameInsideMIdeo
+ CameInsideM
+
@@ -63,6 +67,9 @@
5
+
+ CameInsideFIdeo
+
@@ -80,6 +87,16 @@
-10
+
+ HaterCameInsideFEstrus
+ CameInsideF
+ HaterCameInsideFSafe
+ CameInsideFLowFert
+ CameInsideFFetishSafe
+ HaterCameInsideFIdeo
+ CameInsideFFetish
+ CameInsideFIdeo
+
@@ -93,10 +110,19 @@
What was I thinking, letting him do that?
- -2
+ -3
-5
+
+ CameInsideF
+ HaterCameInsideFSafe
+ CameInsideFLowFert
+ CameInsideFFetishSafe
+ HaterCameInsideFIdeo
+ CameInsideFFetish
+ CameInsideFIdeo
+
@@ -113,6 +139,12 @@
-1
+
+ CameInsideFFetishSafe
+ HaterCameInsideFIdeo
+ CameInsideFFetish
+ CameInsideFIdeo
+
@@ -130,6 +162,14 @@
-2
+
+ HaterCameInsideFSafe
+ CameInsideFLowFert
+ CameInsideFFetishSafe
+ HaterCameInsideFIdeo
+ CameInsideFFetish
+ CameInsideFIdeo
+
@@ -147,6 +187,11 @@
1
+
+ HaterCameInsideFIdeo
+ CameInsideFFetish
+ CameInsideFIdeo
+
@@ -164,6 +209,13 @@
-5
+
+ CameInsideFLowFert
+ CameInsideFFetishSafe
+ HaterCameInsideFIdeo
+ CameInsideFFetish
+ CameInsideFIdeo
+
@@ -226,7 +278,7 @@
-
+
EggRestorationReceived
Thought_Memory
4
@@ -239,6 +291,77 @@
-
-
+
+
+ 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/DrugOutcomeDoers.cs b/1.4/source/RJW_Menstruation/RJW_Menstruation/DrugOutcomeDoers.cs
index b618abe..33e4e11 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()) pawn.needs.mood.thoughts.memories.TryGainMemoryFast(VariousDefOf.HateTookContraceptivePill);
+ if (pawn.IsProPregnancy(out _)) 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 c32ee83..f726878 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,52 +1796,48 @@ namespace RJW_Menstruation
{
if (!xxx.is_human(Pawn) || !xxx.is_human(cummer)) return;
- if ((cummer.HasQuirk(QuirkUtility.Quirks.Teratophile) != (Pawn.GetStatValue(StatDefOf.PawnBeauty) >= 0)) ||
- cummer.IsProPregnancy())
+ 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.relations.OpinionOf(Pawn) <= -25)
- {
- cummer.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideM, Pawn);
- }
+ if (cummer.relations.OpinionOf(Pawn) <= -5)
+ cummerMemories.TryGainMemory(VariousDefOf.HaterCameInsideM, Pawn);
+ else if (preceptm != null)
+ cummerMemories.TryGainMemory(VariousDefOf.CameInsideMIdeo, Pawn, preceptm);
else
- {
- cummer.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideM, Pawn);
- }
+ cummerMemories.TryGainMemory(VariousDefOf.CameInsideM, Pawn);
}
if (IsDangerDay)
{
- if (Pawn.IsProPregnancy())
+ if (Pawn.IsProPregnancy(out Precept preceptf))
{
- 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);
+ 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);
}
+ 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) Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideFLowFert, cummer);
- else Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideF, cummer);
+ if (Pawn.health.capacities.GetLevel(xxx.reproduction) < 0.50f) pawnMemories.TryGainMemory(VariousDefOf.CameInsideFLowFert, cummer);
+ else pawnMemories.TryGainMemory(VariousDefOf.CameInsideF, cummer);
}
}
else
{
- if (Pawn.IsProPregnancy())
- {
- Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideFFetishSafe, cummer);
- }
+ if (Pawn.IsProPregnancy(out Precept _))
+ pawnMemories.TryGainMemory(VariousDefOf.CameInsideFFetishSafe, cummer);
else if (Pawn.relations.OpinionOf(cummer) <= -5)
- {
- Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideFSafe, cummer);
- }
+ pawnMemories.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 c3cd7e4..f1c2e55 100644
--- a/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs
+++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs
@@ -407,20 +407,21 @@ namespace RJW_Menstruation
return false;
}
- public static bool IsProPregnancy(this Pawn pawn)
+ public static bool IsProPregnancy(this Pawn pawn, out Precept precept)
{
- if (pawn.HasQuirk(QuirkUtility.Quirks.Breeder) ||
- pawn.HasQuirk(QuirkUtility.Quirks.ImpregnationFetish))
- return true;
+ precept = null;
Ideo ideo = pawn.Ideo;
- 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;
+ if (ideo != null)
+ {
+ precept = ideo.GetPrecept(VariousDefOf.Pregnancy_Required) ??
+ ideo.GetPrecept(VariousDefOf.Pregnancy_Holy) ??
+ ideo.GetPrecept(VariousDefOf.Pregnancy_Elevated);
+ }
+ if (precept != null) return true;
- return false;
+ else return pawn.HasQuirk(QuirkUtility.Quirks.Breeder) ||
+ pawn.HasQuirk(QuirkUtility.Quirks.ImpregnationFetish);
}
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 0b5d0c5..2cc6646 100644
--- a/1.4/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs
+++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs
@@ -27,9 +27,10 @@ namespace RJW_Menstruation
(pawn.relations?.DirectRelations?.Find(x => x.def.Equals(PawnRelationDefOf.Spouse) ||
x.def.Equals(PawnRelationDefOf.Fiance))) != null)
return;
- if (pawn.IsProPregnancy() || pawn.relations?.DirectRelations?.Find(x => x.def.Equals(PawnRelationDefOf.Lover)) != null)
+ if (pawn.IsProPregnancy(out Precept precept) || pawn.relations?.DirectRelations?.Find(x => x.def.Equals(PawnRelationDefOf.Lover)) != null)
{
- pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.UnwantedPregnancyMild);
+ if (precept != null)
+ 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 6c5e143..294f990 100644
--- a/1.4/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs
+++ b/1.4/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs
@@ -172,5 +172,11 @@ 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 97ae1c8..4da72dc 100644
--- a/changelogs.txt
+++ b/changelogs.txt
@@ -1,3 +1,6 @@
+Version 1.0.9.1
+ - Add new ideology-related thoughts with the sexperience-ideology mod
+
Version 1.0.9.0
- Fix errors when opening the womb dialog of some low fertility pawns.
- Updated Traditional Chinese translation by Hydrogen.