예제 #1
0
        protected override ThoughtState CurrentStateInternal(Pawn p)
        {
            QuestPart_SituationalThought questPart_SituationalThought = FindQuestPart(p);

            if (questPart_SituationalThought == null)
            {
                return(ThoughtState.Inactive);
            }
            return(ThoughtState.ActiveAtStage(questPart_SituationalThought.stage));
        }
예제 #2
0
 private void RemoveFromCache(Quest quest)
 {
     questsInDisplayOrder.Remove(quest);
     for (int i = 0; i < quest.PartsListForReading.Count; i++)
     {
         QuestPart_SituationalThought questPart_SituationalThought = quest.PartsListForReading[i] as QuestPart_SituationalThought;
         if (questPart_SituationalThought != null)
         {
             cachedSituationalThoughtQuestParts.Remove(questPart_SituationalThought);
         }
     }
 }
예제 #3
0
 private void AddToCache(Quest quest)
 {
     questsInDisplayOrder.Add(quest);
     questsInDisplayOrder.SortBy((Quest x) => x.TicksSinceAppeared);
     for (int i = 0; i < quest.PartsListForReading.Count; i++)
     {
         QuestPart_SituationalThought questPart_SituationalThought = quest.PartsListForReading[i] as QuestPart_SituationalThought;
         if (questPart_SituationalThought != null)
         {
             cachedSituationalThoughtQuestParts.Add(questPart_SituationalThought);
         }
     }
 }
        public override float MoodOffset()
        {
            if (ThoughtUtility.ThoughtNullified(pawn, def))
            {
                return(0f);
            }
            QuestPart_SituationalThought questPart_SituationalThought = ((ThoughtWorker_QuestPart)def.Worker).FindQuestPart(pawn);

            if (questPart_SituationalThought == null)
            {
                return(0f);
            }
            float x = (float)TicksSinceQuestUnmet(questPart_SituationalThought) / 60000f;

            return(Mathf.RoundToInt(MoodOffsetFromUnmetDaysCurve.Evaluate(x)));
        }
 private int TicksSinceQuestUnmet(QuestPart_SituationalThought questPart)
 {
     return(questPart.quest.TicksSinceAccepted - questPart.delayTicks);
 }