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)); }
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); } } }
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); }