Ejemplo n.º 1
0
        protected override ThoughtState CurrentStateInternal(Pawn p)
        {
            NeedDef compNeedDef = DefDatabase <NeedDef> .GetNamed("DCompulsionNeed", errorOnFail : true);

            Need_Compulsion compNeed = p.needs.TryGetNeed(compNeedDef) as Need_Compulsion;

            if (compNeed == null)
            {
                return(ThoughtState.Inactive);
            }

            int moodBuffForCurrentLevel = (int)compNeed.MoodBuffForCurrentLevel;

            if (moodBuffForCurrentLevel == (int)Need_Compulsion.MoodBuff.Neutral)
            {
                return(ThoughtState.Inactive);
            }

            return(ThoughtState.ActiveAtStage(2 - moodBuffForCurrentLevel));
        }
Ejemplo n.º 2
0
        public override void HandleLearn(ref float xp, SkillRecord sk, Pawn pawn, ref bool direct)
        {
            if (!pawn.IsColonist)
            {
                return;
            }

            if (xp < 0 || direct)
            {
                return;
            }
            NeedDef compNeedDef = DefDatabase <NeedDef> .GetNamed("DCompulsionNeed", errorOnFail : true);

            Need_Compulsion compNeed = pawn.needs.TryGetNeed(compNeedDef) as Need_Compulsion;

            if (compNeed == null)
            {
                Log.Error("Failed to find need associated with DCompulsionNeed");
            }

            compNeed.Notify_Worked(xp);
        }