diff --git a/1.3/Defs/PreceptDefs/Precepts_Pregnancy.xml b/1.3/Defs/PreceptDefs/Precepts_Pregnancy.xml
index 4b1e67a..7e5b69f 100644
--- a/1.3/Defs/PreceptDefs/Precepts_Pregnancy.xml
+++ b/1.3/Defs/PreceptDefs/Precepts_Pregnancy.xml
@@ -86,7 +86,7 @@
Low
50
horrible
- Being Pregnant is unclean. Take care and stay pure.
+ Being Pregnant is unclean. Take care and stay pure.
Pregnancy_Horrible_Pregnant
@@ -94,7 +94,6 @@
Pregnancy_Horrible_Pregnant_Social
-
@@ -102,7 +101,7 @@
Pregnancy_Respected_Pregnant
- RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_Pregnant
+ RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_Pregnant
Thought_Situational
@@ -115,7 +114,7 @@
Pregnancy_Elevated_Pregnant
- RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_Pregnant
+ RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_Pregnant
Thought_Situational
@@ -128,7 +127,7 @@
Pregnancy_Respected_Pregnant_Social
- RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_Pregnant_Social
+ RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_Pregnant_Social
Thought_SituationalSocial
@@ -140,7 +139,7 @@
Pregnancy_Elevated_Pregnant_Social
- RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_Pregnant_Social
+ RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_Pregnant_Social
Thought_SituationalSocial
@@ -152,7 +151,7 @@
Pregnancy_Horrible_Pregnant_Social
- RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_Pregnant_Social
+ RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_Pregnant_Social
Thought_SituationalSocial
@@ -164,7 +163,7 @@
Pregnancy_Horrible_Pregnant
- RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_Pregnant
+ RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_Pregnant
Thought_Situational
@@ -178,9 +177,10 @@
Pregnancy_Horrible_NonPregnant
- RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_NonPregnant_Social
+ RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_NonPregnant
Thought_Situational
true
+ Female
not pregnant
@@ -192,8 +192,9 @@
Pregnancy_Horrible_NonPregnant_Social
- RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_NonPregnant_Social
+ RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_NonPregnant_Social
Thought_SituationalSocial
+ Female
unfertilized
@@ -202,4 +203,4 @@
-
+
\ No newline at end of file
diff --git a/1.3/Defs/PreceptDefs/Precepts_Sex.xml b/1.3/Defs/PreceptDefs/Precepts_Sex.xml
index ea37742..8cf05e4 100644
--- a/1.3/Defs/PreceptDefs/Precepts_Sex.xml
+++ b/1.3/Defs/PreceptDefs/Precepts_Sex.xml
@@ -288,7 +288,7 @@
Sex_Promiscuous
1
1
- RJWSexperience.Thought_IncreaseRecord
+ RJWSexperience.Ideology.Thought_IncreaseRecord
promiscuous sex
@@ -297,7 +297,7 @@
-
+
Lust
3.0
diff --git a/1.3/Defs/PreceptDefs/Precepts_SizeMatters.xml b/1.3/Defs/PreceptDefs/Precepts_SizeMatters.xml
index b9bc867..c060ec4 100644
--- a/1.3/Defs/PreceptDefs/Precepts_SizeMatters.xml
+++ b/1.3/Defs/PreceptDefs/Precepts_SizeMatters.xml
@@ -63,7 +63,7 @@
GenitalSize_Approved
Thought_Situational
- RJWSexperience.Ideology.ThoughtWorker_Precept_GenitalSize_Approved
+ RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_GenitalSize
Despised Genitalsize
@@ -91,11 +91,24 @@
+10
+
+
+
+
+ 0
+ 0.2
+ 0.4
+ 0.6
+ 0.8
+
+
+
GenitalSize_Disapproved
- RJWSexperience.Ideology.ThoughtWorker_Precept_GenitalSize_Disapproved
+ RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_GenitalSize
Thought_Situational
@@ -124,13 +137,26 @@
-10
+
+
+
+
+ 0
+ 0.2
+ 0.4
+ 0.6
+ 0.8
+
+
+
GenitalSize_Approved_Social
- RJWSexperience.Ideology.ThoughtWorker_Precept_GenitalSize_Approved_Social
+ RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_GenitalSize_Social
Thought_SituationalSocial
@@ -146,27 +172,48 @@
+5
+
+
+
+
+ 0
+ 0.4
+ 0.6
+
+
+
-
GenitalSize_Disapproved_Social
- RJWSexperience.Ideology.ThoughtWorker_Precept_GenitalSize_Disapproved_Social
+ RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_GenitalSize_Social
Thought_SituationalSocial
- Unwanted Genitals
- -5
+ Favorable Genitals
+ +5
Normal Genitals
0
- Favorable Genitals
- +5
+ Unwanted Genitals
+ -5
+
+
+
+
+ 0
+ 0.4
+ 0.6
+
+
+
\ No newline at end of file
diff --git a/1.3/Defs/PreceptDefs/Precepts_Submissive.xml b/1.3/Defs/PreceptDefs/Precepts_Submissive.xml
index a7c8bbf..e69c135 100644
--- a/1.3/Defs/PreceptDefs/Precepts_Submissive.xml
+++ b/1.3/Defs/PreceptDefs/Precepts_Submissive.xml
@@ -194,9 +194,6 @@
15
100
3
-
- Masochist
-
not obedient
diff --git a/1.3/Defs/PreceptDefs/Precepts_Virginity.xml b/1.3/Defs/PreceptDefs/Precepts_Virginity.xml
index 50baa70..a7a231a 100644
--- a/1.3/Defs/PreceptDefs/Precepts_Virginity.xml
+++ b/1.3/Defs/PreceptDefs/Precepts_Virginity.xml
@@ -270,7 +270,7 @@
Virgin_Precious_Taken
- RJWSexperience.Thought_Opinionbased
+ RJWSexperience.Ideology.Thought_Opinionbased
7
1
@@ -296,7 +296,7 @@
-
+
-100
-50
@@ -309,7 +309,7 @@
Virgin_Shameful_Taken
- RJWSexperience.Thought_Opinionbased
+ RJWSexperience.Ideology.Thought_Opinionbased
7
1
@@ -330,7 +330,7 @@
-
+
-100
0
diff --git a/Source/IdeologyAddon/Ideology/GoodwillSituationWorker_MemeCompatibility.cs b/Source/IdeologyAddon/GoodwillSituationWorker_MemeCompatibility.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/GoodwillSituationWorker_MemeCompatibility.cs
rename to Source/IdeologyAddon/GoodwillSituationWorker_MemeCompatibility.cs
diff --git a/Source/IdeologyAddon/Ideology/HistoryEvents/ArgsNamesCustom.cs b/Source/IdeologyAddon/HistoryEvents/ArgsNamesCustom.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/HistoryEvents/ArgsNamesCustom.cs
rename to Source/IdeologyAddon/HistoryEvents/ArgsNamesCustom.cs
diff --git a/Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_EventOverrides.cs b/Source/IdeologyAddon/HistoryEvents/DefExtension_EventOverrides.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_EventOverrides.cs
rename to Source/IdeologyAddon/HistoryEvents/DefExtension_EventOverrides.cs
diff --git a/Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_SecondaryEvents.cs b/Source/IdeologyAddon/HistoryEvents/DefExtension_SecondaryEvents.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_SecondaryEvents.cs
rename to Source/IdeologyAddon/HistoryEvents/DefExtension_SecondaryEvents.cs
diff --git a/Source/IdeologyAddon/Ideology/HistoryEvents/HistoryEventDefExtensionMethods.cs b/Source/IdeologyAddon/HistoryEvents/HistoryEventDefExtensionMethods.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/HistoryEvents/HistoryEventDefExtensionMethods.cs
rename to Source/IdeologyAddon/HistoryEvents/HistoryEventDefExtensionMethods.cs
diff --git a/Source/IdeologyAddon/Ideology/HistoryEvents/TwoPawnEventRule.cs b/Source/IdeologyAddon/HistoryEvents/TwoPawnEventRule.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/HistoryEvents/TwoPawnEventRule.cs
rename to Source/IdeologyAddon/HistoryEvents/TwoPawnEventRule.cs
diff --git a/Source/IdeologyAddon/Ideology/IdeoUtility.cs b/Source/IdeologyAddon/IdeoUtility.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/IdeoUtility.cs
rename to Source/IdeologyAddon/IdeoUtility.cs
diff --git a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Approved.cs b/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Approved.cs
deleted file mode 100644
index 6c5f491..0000000
--- a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Approved.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using RimWorld;
-using rjw;
-using Verse;
-
-namespace RJWSexperience.Ideology
-{
- public class ThoughtWorker_Precept_GenitalSize_Approved : ThoughtWorker_Precept
- {
- protected override ThoughtState ShouldHaveThought(Pawn p)
- {
- // We have 5 stages, which map directly to genitalia severity:
- // Micro(<0.2), Small(>0.2&&<0.4), Normal(>0.4&&<0.6), Big(>0.6&&<0.8), Huge(>0.8)
- if (p != null && Genital_Helper.get_AllPartsHediffList(p).Count > 0)
- {
- float best_size = IdeoUtility.getGenitalSize(p);
- if (best_size < 0.2f)
- return ThoughtState.ActiveAtStage(0);
- else if (best_size < 0.4f)
- return ThoughtState.ActiveAtStage(1);
- else if (best_size < 0.6f)
- return ThoughtState.ActiveAtStage(2);
- else if (best_size < 0.8f)
- return ThoughtState.ActiveAtStage(3);
- else if (best_size > 0.8f)
- return ThoughtState.ActiveAtStage(4);
- }
- // This might can happen if the pawn has no genitalia ... maybe?
- return ThoughtState.Inactive;
- }
- }
-}
diff --git a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Approved_Social.cs b/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Approved_Social.cs
deleted file mode 100644
index 22dadbe..0000000
--- a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Approved_Social.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using RimWorld;
-using rjw;
-using Verse;
-
-namespace RJWSexperience.Ideology
-{
- public class ThoughtWorker_Precept_GenitalSize_Approved_Social : ThoughtWorker_Precept_Social
- {
-
- // Important Note: For the Social Worker, we measure otherPawns genitalia
- protected override ThoughtState ShouldHaveThought(Pawn p, Pawn otherPawn)
- {
- // We have 3 stages, which map directly to genitalia severity:
- // Unfavorable(<0.4), Normal(>0.4&&<0.6), Favorable(>0.6)
- if (otherPawn != null && Genital_Helper.get_AllPartsHediffList(otherPawn).Count > 0)
- {
- float best_size = IdeoUtility.getGenitalSize(otherPawn);
- if (best_size < 0.4f)
- return ThoughtState.ActiveAtStage(0);
- else if (best_size < 0.6f)
- return ThoughtState.ActiveAtStage(1);
- else if (best_size > 0.6f)
- return ThoughtState.ActiveAtStage(2);
- }
- // This might can happen if the pawn has no genitalia ... maybe?
- return ThoughtState.Inactive;
- }
- }
-}
diff --git a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Disapproved.cs b/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Disapproved.cs
deleted file mode 100644
index 7f7eae2..0000000
--- a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Disapproved.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using RimWorld;
-using rjw;
-using Verse;
-
-namespace RJWSexperience.Ideology
-{
- public class ThoughtWorker_Precept_GenitalSize_Disapproved : ThoughtWorker_Precept
- {
- protected override ThoughtState ShouldHaveThought(Pawn p)
- {
- // We have 5 stages, which map directly to genitalia severity:
- // Micro(<0.2), Small(>0.2&&<0.4), Normal(>0.4&&<0.6), Big(>0.6&&<0.8), Huge(>0.8)
- if (p != null && Genital_Helper.get_AllPartsHediffList(p).Count > 0)
- {
- float best_size = IdeoUtility.getGenitalSize(p);
- if (best_size < 0.2f)
- return ThoughtState.ActiveAtStage(0);
- else if (best_size < 0.4f)
- return ThoughtState.ActiveAtStage(1);
- else if (best_size < 0.6f)
- return ThoughtState.ActiveAtStage(2);
- else if (best_size < 0.8f)
- return ThoughtState.ActiveAtStage(3);
- else if (best_size > 0.8f)
- return ThoughtState.ActiveAtStage(4);
- }
- // This might can happen if the pawn has no genitalia ... maybe?
- return ThoughtState.Inactive;
- }
-
- }
-}
diff --git a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Disapproved_Social.cs b/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Disapproved_Social.cs
deleted file mode 100644
index 7df72e4..0000000
--- a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Disapproved_Social.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using RimWorld;
-using rjw;
-using Verse;
-
-namespace RJWSexperience.Ideology
-{
- public class ThoughtWorker_Precept_GenitalSize_Disapproved_Social : ThoughtWorker_Precept_Social
- {
- // Important Note: For the Social Worker, we measure otherPawns genitalia
- protected override ThoughtState ShouldHaveThought(Pawn p, Pawn otherPawn)
- {
- // We have 3 stages, which map directly to genitalia severity:
- // Unfavorable(<0.4), Normal(>0.4&&<0.6), Favorable(>0.6)
- if (otherPawn != null && Genital_Helper.get_AllPartsHediffList(otherPawn).Count > 0)
- {
- float best_size = IdeoUtility.getGenitalSize(otherPawn);
- if (best_size < 0.4f)
- return ThoughtState.ActiveAtStage(0);
- else if (best_size < 0.6f)
- return ThoughtState.ActiveAtStage(1);
- else if (best_size > 0.6f)
- return ThoughtState.ActiveAtStage(2);
- }
- // This might can happen if the pawn has no genitalia ... maybe?
- return ThoughtState.Inactive;
- }
- }
- }
diff --git a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_NonPregnant.cs b/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_NonPregnant.cs
deleted file mode 100644
index 118d2bd..0000000
--- a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_NonPregnant.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using RimWorld;
-using Verse;
-using rjw;
-
-namespace RJWSexperience.Ideology.Ideology.Precept_Workers
-{
- ///
- /// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
- /// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
- ///
- public class ThoughtWorker_Precept_NonPregnant : ThoughtWorker_Precept
- {
- /// Gets the current thought state of the given pawn.
- /// The pawn for whom the thoughts are generated.
- ///
- protected override ThoughtState ShouldHaveThought(Pawn p)
- {
-
- var pregnancy = rjw.PregnancyHelper.GetPregnancy(p);
-
- if (pregnancy == null)
- {
- return ThoughtState.Inactive;
- }
-
- return ThoughtState.ActiveAtStage(0);
- }
- }
-}
diff --git a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_NonPregnant_Social.cs b/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_NonPregnant_Social.cs
deleted file mode 100644
index 68ed70b..0000000
--- a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_NonPregnant_Social.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using RimWorld;
-using Verse;
-using rjw;
-
-namespace RJWSexperience.Ideology.Ideology.Precept_Workers
-{
- ///
- /// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
- /// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
- ///
- public class ThoughtWorker_Precept_NonPregnant_Social : ThoughtWorker_Precept
- {
- /// Gets the current thought state of the given pawn.
- /// The pawn for whom the thoughts are generated.
- ///
- protected override ThoughtState ShouldHaveThought(Pawn p)
- {
-
- var pregnancy = rjw.PregnancyHelper.GetPregnancy(p);
-
- if (pregnancy != null)
- {
- return ThoughtState.Inactive;
- } else
- return ThoughtState.ActiveAtStage(0);
- }
- }
-}
diff --git a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_Pregnant.cs b/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_Pregnant.cs
deleted file mode 100644
index fab5f90..0000000
--- a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_Pregnant.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-
-using RimWorld;
-using Verse;
-using rjw;
-
-namespace RJWSexperience.Ideology.Ideology.Precept_Workers
-{
- ///
- /// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
- /// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
- ///
- public class ThoughtWorker_Precept_Pregnant : ThoughtWorker_Precept
- {
- /// Gets the current thought state of the given pawn.
- /// The pawn for whom the thoughts are generated.
- ///
- protected override ThoughtState ShouldHaveThought(Pawn p)
- {
-
- var pregnancy = rjw.PregnancyHelper.GetPregnancy(p);
-
- if (pregnancy == null)
- {
- return ThoughtState.Inactive;
- }
-
- return ThoughtState.ActiveAtStage(0);
- }
- }
-}
diff --git a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_Pregnant_Social.cs b/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_Pregnant_Social.cs
deleted file mode 100644
index b1cdaa0..0000000
--- a/Source/IdeologyAddon/Ideology/PreceptWorkers/ThoughtWorker_Precept_Pregnant_Social.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using RimWorld;
-using Verse;
-using rjw;
-
-namespace RJWSexperience.Ideology.Ideology.Precept_Workers
-{
- ///
- /// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
- /// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
- ///
- public class ThoughtWorker_Precept_Pregnant_Social : ThoughtWorker_Precept
- {
- /// Gets the current thought state of the given pawn.
- /// The pawn for whom the thoughts are generated.
- ///
- protected override ThoughtState ShouldHaveThought(Pawn p)
- {
-
- var pregnancy = rjw.PregnancyHelper.GetPregnancy(p);
-
- if (pregnancy == null)
- {
- return ThoughtState.Inactive;
- }
-
- return ThoughtState.ActiveAtStage(0);
- }
- }
-}
diff --git a/Source/IdeologyAddon/Ideology/Thought_IncreaseRecord.cs b/Source/IdeologyAddon/Ideology/Thought_IncreaseRecord.cs
deleted file mode 100644
index d50eb50..0000000
--- a/Source/IdeologyAddon/Ideology/Thought_IncreaseRecord.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using RimWorld;
-using Verse;
-
-namespace RJWSexperience.Ideology
-{
- public class Thought_IncreaseRecord : Thought_Recordbased
- {
- protected float recordIncrement;
-
- public override void ExposeData()
- {
- base.ExposeData();
- Scribe_Values.Look(ref recordIncrement, "recordIncrement", recordIncrement, true);
- }
-
- public override void ThoughtInterval()
- {
- base.ThoughtInterval();
- if (recordIncrement != 0)
- {
- pawn.records.AddTo(RecordDef, recordIncrement);
- recordIncrement = 0;
- }
- }
-
- public override bool TryMergeWithExistingMemory(out bool showBubble)
- {
- ThoughtHandler thoughts = pawn.needs.mood.thoughts;
- if (thoughts.memories.NumMemoriesInGroup(this) >= def.stackLimit)
- {
- Thought_IncreaseRecord thought_Memory = (Thought_IncreaseRecord)thoughts.memories.OldestMemoryInGroup(this);
- if (thought_Memory != null)
- {
- showBubble = (thought_Memory.age > thought_Memory.def.DurationTicks / 2);
- thought_Memory.Merged();
- return true;
- }
- }
- showBubble = true;
- return false;
- }
-
- public override void Init()
- {
- base.Init();
- recordIncrement = Def.increment;
- }
- protected virtual void Merged()
- {
- age = 0;
- recordIncrement += Def.increment;
- }
- }
-}
diff --git a/Source/IdeologyAddon/Ideology/Thought_Opinionbased.cs b/Source/IdeologyAddon/Ideology/Thought_Opinionbased.cs
deleted file mode 100644
index 16a83b4..0000000
--- a/Source/IdeologyAddon/Ideology/Thought_Opinionbased.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using RimWorld;
-using System.Collections.Generic;
-using System.Diagnostics.CodeAnalysis;
-
-namespace RJWSexperience.Ideology
-{
- ///
- /// ThoughtDef using opinion
- ///
- public class ThoughtDef_Opinionbased : ThoughtDef
- {
- [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
- public List minimumValueforStage = new List();
- }
-
- ///
- /// Thought class using record.
- ///
- public class Thought_Opinionbased : Thought_Memory
- {
- protected ThoughtDef_Opinionbased Def => (ThoughtDef_Opinionbased)def;
- protected List MinimumValueforStage => Def.minimumValueforStage;
-
- public override int CurStageIndex
- {
- get
- {
- float value = 0f;
- if (otherPawn != null) value = pawn.relations?.OpinionOf(otherPawn) ?? 0f;
- for (int i = MinimumValueforStage.Count - 1; i > 0; i--)
- {
- if (MinimumValueforStage[i] < value) return i;
- }
- return 0;
- }
- }
- }
-}
diff --git a/Source/IdeologyAddon/IdeologyAddon.csproj b/Source/IdeologyAddon/IdeologyAddon.csproj
index 819c938..131a6c5 100644
--- a/Source/IdeologyAddon/IdeologyAddon.csproj
+++ b/Source/IdeologyAddon/IdeologyAddon.csproj
@@ -32,7 +32,8 @@
- ..\..\..\rjw-vegapnk\1.3\Assemblies\RJW.dll
+ ..\..\..\rjw\1.3\Assemblies\RJW.dll
+ False
@@ -43,55 +44,53 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
-
+
diff --git a/Source/IdeologyAddon/Ideology/InteractionDefExtension_HistoryEvents.cs b/Source/IdeologyAddon/InteractionDefExtension_HistoryEvents.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/InteractionDefExtension_HistoryEvents.cs
rename to Source/IdeologyAddon/InteractionDefExtension_HistoryEvents.cs
diff --git a/Source/IdeologyAddon/Ideology/Keyed.cs b/Source/IdeologyAddon/Keyed.cs
similarity index 93%
rename from Source/IdeologyAddon/Ideology/Keyed.cs
rename to Source/IdeologyAddon/Keyed.cs
index 58c89cf..8a98c01 100644
--- a/Source/IdeologyAddon/Ideology/Keyed.cs
+++ b/Source/IdeologyAddon/Keyed.cs
@@ -1,6 +1,6 @@
using Verse;
-namespace RJWSexperience
+namespace RJWSexperience.Ideology
{
public static class Keyed
{
diff --git a/Source/IdeologyAddon/Ideology/Patches/RJW_Patch_ChancePerHour.cs b/Source/IdeologyAddon/Patches/RJW_Patch_ChancePerHour.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Patches/RJW_Patch_ChancePerHour.cs
rename to Source/IdeologyAddon/Patches/RJW_Patch_ChancePerHour.cs
diff --git a/Source/IdeologyAddon/Ideology/Patches/RJW_Patch_Ideo.cs b/Source/IdeologyAddon/Patches/RJW_Patch_Ideo.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Patches/RJW_Patch_Ideo.cs
rename to Source/IdeologyAddon/Patches/RJW_Patch_Ideo.cs
diff --git a/Source/IdeologyAddon/Ideology/Patches/Rimworld_Patch.cs b/Source/IdeologyAddon/Patches/Rimworld_Patch.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Patches/Rimworld_Patch.cs
rename to Source/IdeologyAddon/Patches/Rimworld_Patch.cs
diff --git a/Source/IdeologyAddon/Ideology/Patches/Sexperience_Patch.cs b/Source/IdeologyAddon/Patches/Sexperience_Patch.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Patches/Sexperience_Patch.cs
rename to Source/IdeologyAddon/Patches/Sexperience_Patch.cs
diff --git a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_GenitalSize.cs b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_GenitalSize.cs
new file mode 100644
index 0000000..0f9b135
--- /dev/null
+++ b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_GenitalSize.cs
@@ -0,0 +1,34 @@
+using RimWorld;
+using rjw;
+using Verse;
+
+namespace RJWSexperience.Ideology.PreceptWorkers
+{
+ public class ThoughtWorker_Precept_GenitalSize : ThoughtWorker_Precept
+ {
+ private ThoughtDefExtension_StageFromValue stageFromValue;
+
+ protected ThoughtDefExtension_StageFromValue StageFromValue
+ {
+ get
+ {
+ if (stageFromValue == null)
+ {
+ stageFromValue = def.GetModExtension();
+ }
+ return stageFromValue;
+ }
+ }
+
+ protected override ThoughtState ShouldHaveThought(Pawn p)
+ {
+ if (p != null && Genital_Helper.get_AllPartsHediffList(p).Count > 0)
+ {
+ float bestSize = IdeoUtility.getGenitalSize(p);
+ return ThoughtState.ActiveAtStage(StageFromValue.GetStageIndex(bestSize));
+ }
+ // This might can happen if the pawn has no genitalia ... maybe?
+ return ThoughtState.Inactive;
+ }
+ }
+}
diff --git a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Social.cs b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Social.cs
new file mode 100644
index 0000000..42c6fc5
--- /dev/null
+++ b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Social.cs
@@ -0,0 +1,35 @@
+using RimWorld;
+using rjw;
+using Verse;
+
+namespace RJWSexperience.Ideology.PreceptWorkers
+{
+ public class ThoughtWorker_Precept_GenitalSize_Social : ThoughtWorker_Precept_Social
+ {
+ private ThoughtDefExtension_StageFromValue stageFromValue;
+
+ protected ThoughtDefExtension_StageFromValue StageFromValue
+ {
+ get
+ {
+ if (stageFromValue == null)
+ {
+ stageFromValue = def.GetModExtension();
+ }
+ return stageFromValue;
+ }
+ }
+
+ // Important Note: For the Social Worker, we measure otherPawns genitalia
+ protected override ThoughtState ShouldHaveThought(Pawn p, Pawn otherPawn)
+ {
+ if (otherPawn != null && Genital_Helper.get_AllPartsHediffList(otherPawn).Count > 0)
+ {
+ float bestSize = IdeoUtility.getGenitalSize(otherPawn);
+ return ThoughtState.ActiveAtStage(StageFromValue.GetStageIndex(bestSize));
+ }
+ // This might can happen if the pawn has no genitalia ... maybe?
+ return ThoughtState.Inactive;
+ }
+ }
+}
diff --git a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_NonPregnant.cs b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_NonPregnant.cs
new file mode 100644
index 0000000..3631cdf
--- /dev/null
+++ b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_NonPregnant.cs
@@ -0,0 +1,21 @@
+using RimWorld;
+using rjw;
+using Verse;
+
+namespace RJWSexperience.Ideology.PreceptWorkers
+{
+ ///
+ /// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
+ /// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
+ ///
+ public class ThoughtWorker_Precept_NonPregnant : ThoughtWorker_Precept
+ {
+ /// Gets the current thought state of the given pawn.
+ /// The pawn for whom the thoughts are generated.
+ ///
+ protected override ThoughtState ShouldHaveThought(Pawn p)
+ {
+ return PregnancyHelper.GetPregnancy(p)?.Visible != true;
+ }
+ }
+}
diff --git a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_NonPregnant_Social.cs b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_NonPregnant_Social.cs
new file mode 100644
index 0000000..d12f74a
--- /dev/null
+++ b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_NonPregnant_Social.cs
@@ -0,0 +1,22 @@
+using RimWorld;
+using rjw;
+using Verse;
+
+namespace RJWSexperience.Ideology.PreceptWorkers
+{
+ ///
+ /// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
+ /// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
+ ///
+ public class ThoughtWorker_Precept_NonPregnant_Social : ThoughtWorker_Precept_Social
+ {
+ /// Gets the current thought state of the given pawn.
+ /// The pawn for whom the thoughts are generated.
+ /// The pawn about whom the thoughts are generated.
+ ///
+ protected override ThoughtState ShouldHaveThought(Pawn p, Pawn otherPawn)
+ {
+ return PregnancyHelper.GetPregnancy(otherPawn)?.Visible != true;
+ }
+ }
+}
diff --git a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_Pregnant.cs b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_Pregnant.cs
new file mode 100644
index 0000000..ae3d917
--- /dev/null
+++ b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_Pregnant.cs
@@ -0,0 +1,21 @@
+using RimWorld;
+using rjw;
+using Verse;
+
+namespace RJWSexperience.Ideology.PreceptWorkers
+{
+ ///
+ /// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
+ /// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
+ ///
+ public class ThoughtWorker_Precept_Pregnant : ThoughtWorker_Precept
+ {
+ /// Gets the current thought state of the given pawn.
+ /// The pawn for whom the thoughts are generated.
+ ///
+ protected override ThoughtState ShouldHaveThought(Pawn p)
+ {
+ return PregnancyHelper.GetPregnancy(p)?.Visible == true;
+ }
+ }
+}
diff --git a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_Pregnant_Social.cs b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_Pregnant_Social.cs
new file mode 100644
index 0000000..c54b814
--- /dev/null
+++ b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_Pregnant_Social.cs
@@ -0,0 +1,22 @@
+using RimWorld;
+using rjw;
+using Verse;
+
+namespace RJWSexperience.Ideology.PreceptWorkers
+{
+ ///
+ /// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
+ /// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
+ ///
+ public class ThoughtWorker_Precept_Pregnant_Social : ThoughtWorker_Precept_Social
+ {
+ /// Gets the current thought state of the given pawn.
+ /// The pawn for whom the thoughts are generated.
+ /// The pawn about whom the thoughts are generated.
+ ///
+ protected override ThoughtState ShouldHaveThought(Pawn p, Pawn otherPawn)
+ {
+ return PregnancyHelper.GetPregnancy(otherPawn)?.Visible == true;
+ }
+ }
+}
diff --git a/Source/IdeologyAddon/Ideology/Precepts/Comp_KnowsMemoryThought_Gendered.cs b/Source/IdeologyAddon/Precepts/Comp_KnowsMemoryThought_Gendered.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Precepts/Comp_KnowsMemoryThought_Gendered.cs
rename to Source/IdeologyAddon/Precepts/Comp_KnowsMemoryThought_Gendered.cs
diff --git a/Source/IdeologyAddon/Ideology/Precepts/Comp_SelfTookMemoryThought_Gendered.cs b/Source/IdeologyAddon/Precepts/Comp_SelfTookMemoryThought_Gendered.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Precepts/Comp_SelfTookMemoryThought_Gendered.cs
rename to Source/IdeologyAddon/Precepts/Comp_SelfTookMemoryThought_Gendered.cs
diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyBestialityMtb.cs b/Source/IdeologyAddon/Precepts/DefExtension_ModifyBestialityMtb.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyBestialityMtb.cs
rename to Source/IdeologyAddon/Precepts/DefExtension_ModifyBestialityMtb.cs
diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyFappinMtb.cs b/Source/IdeologyAddon/Precepts/DefExtension_ModifyFappinMtb.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyFappinMtb.cs
rename to Source/IdeologyAddon/Precepts/DefExtension_ModifyFappinMtb.cs
diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyMtb.cs b/Source/IdeologyAddon/Precepts/DefExtension_ModifyMtb.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyMtb.cs
rename to Source/IdeologyAddon/Precepts/DefExtension_ModifyMtb.cs
diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyNecroMtb.cs b/Source/IdeologyAddon/Precepts/DefExtension_ModifyNecroMtb.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyNecroMtb.cs
rename to Source/IdeologyAddon/Precepts/DefExtension_ModifyNecroMtb.cs
diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyPreference.cs b/Source/IdeologyAddon/Precepts/DefExtension_ModifyPreference.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyPreference.cs
rename to Source/IdeologyAddon/Precepts/DefExtension_ModifyPreference.cs
diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyRapeCPMtb.cs b/Source/IdeologyAddon/Precepts/DefExtension_ModifyRapeCPMtb.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyRapeCPMtb.cs
rename to Source/IdeologyAddon/Precepts/DefExtension_ModifyRapeCPMtb.cs
diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_MultipleMemesRequired.cs b/Source/IdeologyAddon/Precepts/DefExtension_MultipleMemesRequired.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Precepts/DefExtension_MultipleMemesRequired.cs
rename to Source/IdeologyAddon/Precepts/DefExtension_MultipleMemesRequired.cs
diff --git a/Source/IdeologyAddon/Ideology/RelationFilter.cs b/Source/IdeologyAddon/RelationFilter.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/RelationFilter.cs
rename to Source/IdeologyAddon/RelationFilter.cs
diff --git a/Source/IdeologyAddon/Ideology/Rituals/JobGiver_DrugOrgy.cs b/Source/IdeologyAddon/Rituals/JobGiver_DrugOrgy.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Rituals/JobGiver_DrugOrgy.cs
rename to Source/IdeologyAddon/Rituals/JobGiver_DrugOrgy.cs
diff --git a/Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangConsensual.cs b/Source/IdeologyAddon/Rituals/JobGiver_GangbangConsensual.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangConsensual.cs
rename to Source/IdeologyAddon/Rituals/JobGiver_GangbangConsensual.cs
diff --git a/Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangVictim.cs b/Source/IdeologyAddon/Rituals/JobGiver_GangbangVictim.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangVictim.cs
rename to Source/IdeologyAddon/Rituals/JobGiver_GangbangVictim.cs
diff --git a/Source/IdeologyAddon/Ideology/Rituals/LordJob_Rituals.cs b/Source/IdeologyAddon/Rituals/LordJob_Rituals.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Rituals/LordJob_Rituals.cs
rename to Source/IdeologyAddon/Rituals/LordJob_Rituals.cs
diff --git a/Source/IdeologyAddon/Ideology/Rituals/RitualBehaviorWorkers.cs b/Source/IdeologyAddon/Rituals/RitualBehaviorWorkers.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Rituals/RitualBehaviorWorkers.cs
rename to Source/IdeologyAddon/Rituals/RitualBehaviorWorkers.cs
diff --git a/Source/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs b/Source/IdeologyAddon/Rituals/RitualOutcomeComps.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs
rename to Source/IdeologyAddon/Rituals/RitualOutcomeComps.cs
diff --git a/Source/IdeologyAddon/Ideology/Rituals/RitualRoles.cs b/Source/IdeologyAddon/Rituals/RitualRoles.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/Rituals/RitualRoles.cs
rename to Source/IdeologyAddon/Rituals/RitualRoles.cs
diff --git a/Source/IdeologyAddon/Ideology/RsiHistoryEventDefOf.cs b/Source/IdeologyAddon/RsiHistoryEventDefOf.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/RsiHistoryEventDefOf.cs
rename to Source/IdeologyAddon/RsiHistoryEventDefOf.cs
diff --git a/Source/IdeologyAddon/Ideology/SinglePawnFilter.cs b/Source/IdeologyAddon/SinglePawnFilter.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/SinglePawnFilter.cs
rename to Source/IdeologyAddon/SinglePawnFilter.cs
diff --git a/Source/IdeologyAddon/Ideology/StatParts.cs b/Source/IdeologyAddon/StatParts.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/StatParts.cs
rename to Source/IdeologyAddon/StatParts.cs
diff --git a/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_IncreaseRecord.cs b/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_IncreaseRecord.cs
index 63ce3d7..cf53e45 100644
--- a/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_IncreaseRecord.cs
+++ b/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_IncreaseRecord.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using Verse;
-namespace RJWSexperience
+namespace RJWSexperience.Ideology
{
public class ThoughtDefExtension_IncreaseRecord : DefModExtension
{
diff --git a/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_StageFromOpinion.cs b/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_StageFromValue.cs
similarity index 73%
rename from Source/IdeologyAddon/Thoughts/ThoughtDefExtension_StageFromOpinion.cs
rename to Source/IdeologyAddon/Thoughts/ThoughtDefExtension_StageFromValue.cs
index 3b6bfc4..8e556de 100644
--- a/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_StageFromOpinion.cs
+++ b/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_StageFromValue.cs
@@ -2,13 +2,26 @@
using System.Diagnostics.CodeAnalysis;
using Verse;
-namespace RJWSexperience
+namespace RJWSexperience.Ideology
{
- public class ThoughtDefExtension_StageFromOpinion : DefModExtension
+ public class ThoughtDefExtension_StageFromValue : DefModExtension
{
[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
public List minimumValueforStage = new List();
+ public int GetStageIndex(float value)
+ {
+ for (int i = minimumValueforStage.Count - 1; i > 0; i--)
+ {
+ if (minimumValueforStage[i] < value)
+ {
+ return i;
+ }
+ }
+
+ return 0;
+ }
+
public override IEnumerable ConfigErrors()
{
foreach (string error in base.ConfigErrors())
diff --git a/Source/IdeologyAddon/Thoughts/Thought_IncreaseRecord.cs b/Source/IdeologyAddon/Thoughts/Thought_IncreaseRecord.cs
index f229813..1299dd3 100644
--- a/Source/IdeologyAddon/Thoughts/Thought_IncreaseRecord.cs
+++ b/Source/IdeologyAddon/Thoughts/Thought_IncreaseRecord.cs
@@ -1,6 +1,6 @@
using RimWorld;
-namespace RJWSexperience
+namespace RJWSexperience.Ideology
{
///
/// Increments record every time the thought is added
diff --git a/Source/IdeologyAddon/Thoughts/Thought_Opinionbased.cs b/Source/IdeologyAddon/Thoughts/Thought_Opinionbased.cs
index fded6ad..dbe0115 100644
--- a/Source/IdeologyAddon/Thoughts/Thought_Opinionbased.cs
+++ b/Source/IdeologyAddon/Thoughts/Thought_Opinionbased.cs
@@ -1,22 +1,21 @@
using RimWorld;
-using System.Collections.Generic;
using Verse;
-namespace RJWSexperience
+namespace RJWSexperience.Ideology
{
public class Thought_Opinionbased : Thought_Memory
{
- private List minimumValueforStage;
+ private ThoughtDefExtension_StageFromValue stageFromValue;
- protected List MinimumValueforStage
+ protected ThoughtDefExtension_StageFromValue StageFromValue
{
get
{
- if (minimumValueforStage == null)
+ if (stageFromValue == null)
{
- minimumValueforStage = def.GetModExtension().minimumValueforStage;
+ stageFromValue = def.GetModExtension();
}
- return minimumValueforStage;
+ return stageFromValue;
}
}
@@ -47,16 +46,7 @@ namespace RJWSexperience
}
float value = pawn.relations?.OpinionOf(otherPawn) ?? 0f;
-
- for (int i = MinimumValueforStage.Count - 1; i > 0; i--)
- {
- if (MinimumValueforStage[i] < value)
- {
- SetForcedStage(i);
- return;
- }
- }
- SetForcedStage(0);
+ SetForcedStage(StageFromValue.GetStageIndex(value));
}
}
}
diff --git a/Source/IdeologyAddon/Ideology/TwoPawnFilter.cs b/Source/IdeologyAddon/TwoPawnFilter.cs
similarity index 100%
rename from Source/IdeologyAddon/Ideology/TwoPawnFilter.cs
rename to Source/IdeologyAddon/TwoPawnFilter.cs
diff --git a/Source/IdeologyAddon/Ideology/VariousDefOf.cs b/Source/IdeologyAddon/VariousDefOf.cs
similarity index 77%
rename from Source/IdeologyAddon/Ideology/VariousDefOf.cs
rename to Source/IdeologyAddon/VariousDefOf.cs
index 4cce63e..8e8456a 100644
--- a/Source/IdeologyAddon/Ideology/VariousDefOf.cs
+++ b/Source/IdeologyAddon/VariousDefOf.cs
@@ -22,9 +22,6 @@ namespace RJWSexperience.Ideology
[MayRequireIdeology] public static readonly PreceptDef Submissive_Male;
[MayRequireIdeology] public static readonly PreceptDef Submissive_Female;
[MayRequireIdeology] public static readonly PreceptDef Proselyzing_By_Orgasm;
- [MayRequireIdeology] public static readonly PreceptDef Proselyzing_By_Sex;
- [MayRequireIdeology] public static readonly PreceptDef GenitalSize_Approved;
- [MayRequireIdeology] public static readonly PreceptDef GenitalSize_Disapproved;
- [MayRequireIdeology] public static readonly PreceptDef GenitalSize_NoRules;
+ //[MayRequireIdeology] public static readonly PreceptDef Proselyzing_By_Sex;
}
}