Add psychic lust mechanic, works like psychic drone

This commit is contained in:
c0ffee 2022-11-19 16:51:02 -08:00
parent 06122c2b18
commit 60a4205e6f
11 changed files with 383 additions and 0 deletions

View file

@ -0,0 +1,46 @@
using RimWorld;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
namespace RJW_Events
{
class ThoughtWorker_PsychicArouse : ThoughtWorker
{
protected override ThoughtState CurrentStateInternal(Pawn p)
{
PsychicDroneLevel psychicDroneLevel = PsychicDroneLevel.None;
Map mapHeld = p.MapHeld;
if (mapHeld != null)
{
PsychicDroneLevel highestPsychicDroneLevelFor = mapHeld.gameConditionManager.GetHighestPsychicArouseLevelFor(p.gender);
if (highestPsychicDroneLevelFor > psychicDroneLevel)
{
psychicDroneLevel = highestPsychicDroneLevelFor;
}
}
switch (psychicDroneLevel)
{
case PsychicDroneLevel.None:
return false;
case PsychicDroneLevel.GoodMedium:
return ThoughtState.ActiveAtStage(0);
case PsychicDroneLevel.BadLow:
return ThoughtState.ActiveAtStage(0);
case PsychicDroneLevel.BadMedium:
return ThoughtState.ActiveAtStage(1);
case PsychicDroneLevel.BadHigh:
return ThoughtState.ActiveAtStage(2);
case PsychicDroneLevel.BadExtreme:
return ThoughtState.ActiveAtStage(2);
default:
throw new NotImplementedException();
}
}
}
}