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; } } } }