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/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_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)); } } }