private void BindDirectNeedFields()
 {
     mood        = TryGetNeed <Need_Mood>();
     food        = TryGetNeed <Need_Food>();
     rest        = TryGetNeed <Need_Rest>();
     joy         = TryGetNeed <Need_Joy>();
     beauty      = TryGetNeed <Need_Beauty>();
     comfort     = TryGetNeed <Need_Comfort>();
     roomsize    = TryGetNeed <Need_RoomSize>();
     outdoors    = TryGetNeed <Need_Outdoors>();
     drugsDesire = TryGetNeed <Need_Chemical_Any>();
     authority   = null;
 }
        protected override ThoughtState CurrentStateInternal(Pawn p)
        {
            Need_Chemical_Any drugsDesire = p.needs.drugsDesire;

            if (drugsDesire == null)
            {
                return(false);
            }
            int moodBuffForCurrentLevel = (int)drugsDesire.MoodBuffForCurrentLevel;

            if (moodBuffForCurrentLevel < 3)
            {
                return(ThoughtState.ActiveAtStage(3 - moodBuffForCurrentLevel - 1));
            }
            return(false);
        }