using RimWorld; using Verse; namespace RJWSexperience { /// /// Thought class that uses record to select active stage /// public class Thought_Recordbased : Thought_Memory { private ThoughtDefExtension_StageFromRecord extension; protected ThoughtDefExtension_StageFromRecord Extension => extension ?? (extension = def.GetModExtension()); /// /// This method is called for every thought right after the pawn is assigned /// public override bool TryMergeWithExistingMemory(out bool showBubble) { UpdateCurStage(); return base.TryMergeWithExistingMemory(out showBubble); } protected virtual void UpdateCurStage() { SetForcedStage(Extension.GetStageIndex(pawn)); } } }