mirror of
				https://github.com/amevarashi/RJW-Sexperience.git
				synced 2024-08-14 23:54:08 +00:00 
			
		
		
		
	Cleanup thoughts code
This commit is contained in:
		
							parent
							
								
									a34b539178
								
							
						
					
					
						commit
						41faeabe5b
					
				
					 9 changed files with 190 additions and 175 deletions
				
			
		| 
						 | 
					@ -88,8 +88,12 @@
 | 
				
			||||||
    <Compile Include="Patches\RJW_Patch.cs" />
 | 
					    <Compile Include="Patches\RJW_Patch.cs" />
 | 
				
			||||||
    <Compile Include="SexperienceMod.cs" />
 | 
					    <Compile Include="SexperienceMod.cs" />
 | 
				
			||||||
    <Compile Include="StatParts.cs" />
 | 
					    <Compile Include="StatParts.cs" />
 | 
				
			||||||
    <Compile Include="Thought_Opinionbased.cs" />
 | 
					    <Compile Include="Thoughts\ThoughtDef_Opinionbased.cs" />
 | 
				
			||||||
    <Compile Include="Thought_Recordbased.cs" />
 | 
					    <Compile Include="Thoughts\ThoughtDef_Recordbased.cs" />
 | 
				
			||||||
 | 
					    <Compile Include="Thoughts\Thought_AteCum.cs" />
 | 
				
			||||||
 | 
					    <Compile Include="Thoughts\Thought_IncreaseRecord.cs" />
 | 
				
			||||||
 | 
					    <Compile Include="Thoughts\Thought_Opinionbased.cs" />
 | 
				
			||||||
 | 
					    <Compile Include="Thoughts\Thought_Recordbased.cs" />
 | 
				
			||||||
    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
					    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
				
			||||||
    <Compile Include="UI\RJWUIUtility.cs" />
 | 
					    <Compile Include="UI\RJWUIUtility.cs" />
 | 
				
			||||||
    <Compile Include="UI\SexStatus.cs" />
 | 
					    <Compile Include="UI\SexStatus.cs" />
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,42 +0,0 @@
 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
using System.Collections.Generic;
 | 
					 | 
				
			||||||
using System.Linq;
 | 
					 | 
				
			||||||
using System.Text;
 | 
					 | 
				
			||||||
using System.Threading.Tasks;
 | 
					 | 
				
			||||||
using Verse;
 | 
					 | 
				
			||||||
using RimWorld;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace RJWSexperience
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    /// <summary>
 | 
					 | 
				
			||||||
    /// ThoughtDef using opinion
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					 | 
				
			||||||
    public class ThoughtDef_Opinionbased : ThoughtDef
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        public List<float> minimumValueforStage = new List<float>();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /// <summary>
 | 
					 | 
				
			||||||
    /// Thought class using record.
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					 | 
				
			||||||
    public class Thought_Opinionbased : Thought_Memory
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        protected ThoughtDef_Opinionbased Def => (ThoughtDef_Opinionbased)def;
 | 
					 | 
				
			||||||
        protected List<float> 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;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,131 +0,0 @@
 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
using System.Collections.Generic;
 | 
					 | 
				
			||||||
using System.Linq;
 | 
					 | 
				
			||||||
using System.Text;
 | 
					 | 
				
			||||||
using System.Threading.Tasks;
 | 
					 | 
				
			||||||
using Verse;
 | 
					 | 
				
			||||||
using RimWorld;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace RJWSexperience
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    /// <summary>
 | 
					 | 
				
			||||||
    /// ThoughtDef using record
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					 | 
				
			||||||
    public class ThoughtDef_Recordbased : ThoughtDef
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        public RecordDef recordDef;
 | 
					 | 
				
			||||||
        public List<float> minimumValueforStage = new List<float>();
 | 
					 | 
				
			||||||
        public float increment;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /// <summary>
 | 
					 | 
				
			||||||
    /// Thought class using record.
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					 | 
				
			||||||
    public class Thought_Recordbased : Thought_Memory
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        protected ThoughtDef_Recordbased Def => (ThoughtDef_Recordbased)def;
 | 
					 | 
				
			||||||
        protected RecordDef recordDef => Def.recordDef;
 | 
					 | 
				
			||||||
        protected List<float> minimumValueforStage => Def.minimumValueforStage;
 | 
					 | 
				
			||||||
        protected float increment => Def.increment;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override int CurStageIndex
 | 
					 | 
				
			||||||
        {            
 | 
					 | 
				
			||||||
            get
 | 
					 | 
				
			||||||
            {                
 | 
					 | 
				
			||||||
                float value = pawn?.records?.GetValue(recordDef) ?? 0f;
 | 
					 | 
				
			||||||
                for (int i = minimumValueforStage.Count - 1; i > 0; i--)
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    if (minimumValueforStage[i] < value) return i + 1;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                return 0;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public class Thought_AteCum : Thought_Recordbased
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        public override int CurStageIndex
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            get
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                if (pawn?.health?.hediffSet?.HasHediff(VariousDefOf.CumAddiction) ?? false) return minimumValueforStage.Count;
 | 
					 | 
				
			||||||
                return base.CurStageIndex;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override bool TryMergeWithExistingMemory(out bool showBubble)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            ThoughtHandler thoughts = pawn.needs.mood.thoughts;
 | 
					 | 
				
			||||||
            if (thoughts.memories.NumMemoriesInGroup(this) >= def.stackLimit)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                Thought_AteCum thought_Memory = (Thought_AteCum)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;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        protected virtual void Merged()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            age = 0;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    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 = increment;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        protected virtual void Merged()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            age = 0;
 | 
					 | 
				
			||||||
            recordIncrement += increment;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					using RimWorld;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Diagnostics.CodeAnalysis;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJWSexperience
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						/// <summary>
 | 
				
			||||||
 | 
						/// ThoughtDef using opinion
 | 
				
			||||||
 | 
						/// </summary>
 | 
				
			||||||
 | 
						public class ThoughtDef_Opinionbased : ThoughtDef
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
 | 
				
			||||||
 | 
							public List<float> minimumValueforStage = new List<float>();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					using RimWorld;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Diagnostics.CodeAnalysis;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJWSexperience
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						/// <summary>
 | 
				
			||||||
 | 
						/// ThoughtDef using record
 | 
				
			||||||
 | 
						/// </summary>
 | 
				
			||||||
 | 
						public class ThoughtDef_Recordbased : ThoughtDef
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
 | 
				
			||||||
 | 
							public RecordDef recordDef;
 | 
				
			||||||
 | 
							[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
 | 
				
			||||||
 | 
							public List<float> minimumValueforStage = new List<float>();
 | 
				
			||||||
 | 
							[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
 | 
				
			||||||
 | 
							public float increment;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										38
									
								
								RJWSexperience/RJWSexperience/Thoughts/Thought_AteCum.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								RJWSexperience/RJWSexperience/Thoughts/Thought_AteCum.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,38 @@
 | 
				
			||||||
 | 
					using RimWorld;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJWSexperience
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						public class Thought_AteCum : Thought_Recordbased
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							public override int CurStageIndex
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								get
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (pawn?.health?.hediffSet?.HasHediff(VariousDefOf.CumAddiction) ?? false) return MinimumValueforStage.Count;
 | 
				
			||||||
 | 
									return base.CurStageIndex;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public override bool TryMergeWithExistingMemory(out bool showBubble)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								ThoughtHandler thoughts = pawn.needs.mood.thoughts;
 | 
				
			||||||
 | 
								if (thoughts.memories.NumMemoriesInGroup(this) >= def.stackLimit)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									Thought_AteCum thought_Memory = (Thought_AteCum)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;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							protected virtual void Merged()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								age = 0;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,55 @@
 | 
				
			||||||
 | 
					using RimWorld;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJWSexperience
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						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 = Increment;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							protected virtual void Merged()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								age = 0;
 | 
				
			||||||
 | 
								recordIncrement += Increment;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,28 @@
 | 
				
			||||||
 | 
					using RimWorld;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJWSexperience
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						/// <summary>
 | 
				
			||||||
 | 
						/// Thought class using record.
 | 
				
			||||||
 | 
						/// </summary>
 | 
				
			||||||
 | 
						public class Thought_Opinionbased : Thought_Memory
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							protected ThoughtDef_Opinionbased Def => (ThoughtDef_Opinionbased)def;
 | 
				
			||||||
 | 
							protected List<float> 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;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					using RimWorld;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJWSexperience
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						/// <summary>
 | 
				
			||||||
 | 
						/// Thought class using record.
 | 
				
			||||||
 | 
						/// </summary>
 | 
				
			||||||
 | 
						public class Thought_Recordbased : Thought_Memory
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							protected ThoughtDef_Recordbased Def => (ThoughtDef_Recordbased)def;
 | 
				
			||||||
 | 
							protected RecordDef RecordDef => Def.recordDef;
 | 
				
			||||||
 | 
							protected List<float> MinimumValueforStage => Def.minimumValueforStage;
 | 
				
			||||||
 | 
							protected float Increment => Def.increment;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public override int CurStageIndex
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								get
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									float value = pawn?.records?.GetValue(RecordDef) ?? 0f;
 | 
				
			||||||
 | 
									for (int i = MinimumValueforStage.Count - 1; i > 0; i--)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										if (MinimumValueforStage[i] < value) return i + 1;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									return 0;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue