protected override void RunInt()
        {
            Slate slate = QuestGen.slate;
            QuestPart_FactionGoodwillChange questPart_FactionGoodwillChange = new QuestPart_FactionGoodwillChange();

            questPart_FactionGoodwillChange.change   = change.GetValue(slate);
            questPart_FactionGoodwillChange.faction  = (faction.GetValue(slate) ?? factionOf.GetValue(slate).Faction);
            questPart_FactionGoodwillChange.inSignal = (QuestGenUtility.HardcodedSignalWithQuestID(inSignal.GetValue(slate)) ?? QuestGen.slate.Get <string>("inSignal"));
            QuestGen.quest.AddPart(questPart_FactionGoodwillChange);
        }
        public static QuestPart_FactionGoodwillChange FactionGoodwillChange(this Quest quest, Faction faction, int change = 0, string inSignal = null, bool canSendMessage = true, bool canSendHostilityLetter = true, string reason = null, bool getLookTargetFromSignal = true, QuestPart.SignalListenMode signalListenMode = QuestPart.SignalListenMode.OngoingOnly)
        {
            QuestPart_FactionGoodwillChange questPart_FactionGoodwillChange = new QuestPart_FactionGoodwillChange();

            questPart_FactionGoodwillChange.faction                 = faction;
            questPart_FactionGoodwillChange.change                  = change;
            questPart_FactionGoodwillChange.inSignal                = inSignal ?? QuestGen.slate.Get <string>("inSignal");
            questPart_FactionGoodwillChange.canSendMessage          = canSendMessage;
            questPart_FactionGoodwillChange.canSendHostilityLetter  = canSendHostilityLetter;
            questPart_FactionGoodwillChange.reason                  = reason;
            questPart_FactionGoodwillChange.getLookTargetFromSignal = getLookTargetFromSignal;
            questPart_FactionGoodwillChange.signalListenMode        = signalListenMode;
            quest.AddPart(questPart_FactionGoodwillChange);
            return(questPart_FactionGoodwillChange);
        }
        public static QuestPart_QuestEnd End(this Quest quest, QuestEndOutcome outcome, int goodwillChangeAmount = 0, Faction goodwillChangeFactionOf = null, string inSignal = null, QuestPart.SignalListenMode signalListenMode = QuestPart.SignalListenMode.OngoingOnly, bool sendStandardLetter = false)
        {
            Slate slate = QuestGen.slate;

            if (goodwillChangeAmount != 0 && goodwillChangeFactionOf != null && goodwillChangeFactionOf != null)
            {
                QuestPart_FactionGoodwillChange questPart_FactionGoodwillChange = new QuestPart_FactionGoodwillChange();
                questPart_FactionGoodwillChange.inSignal = QuestGenUtility.HardcodedSignalWithQuestID(inSignal) ?? QuestGen.slate.Get <string>("inSignal");
                questPart_FactionGoodwillChange.faction  = goodwillChangeFactionOf;
                questPart_FactionGoodwillChange.change   = goodwillChangeAmount;
                slate.Set("goodwillPenalty", Mathf.Abs(goodwillChangeAmount).ToString());
                QuestGen.quest.AddPart(questPart_FactionGoodwillChange);
            }
            QuestPart_QuestEnd questPart_QuestEnd = new QuestPart_QuestEnd();

            questPart_QuestEnd.inSignal         = QuestGenUtility.HardcodedSignalWithQuestID(inSignal) ?? QuestGen.slate.Get <string>("inSignal");
            questPart_QuestEnd.outcome          = outcome;
            questPart_QuestEnd.signalListenMode = signalListenMode;
            questPart_QuestEnd.sendLetter       = sendStandardLetter;
            QuestGen.quest.AddPart(questPart_QuestEnd);
            return(questPart_QuestEnd);
        }
        protected override void RunInt()
        {
            Slate slate  = QuestGen.slate;
            int   value  = goodwillChangeAmount.GetValue(slate);
            Thing value2 = goodwillChangeFactionOf.GetValue(slate);

            if (value != 0 && value2 != null && value2.Faction != null)
            {
                QuestPart_FactionGoodwillChange questPart_FactionGoodwillChange = new QuestPart_FactionGoodwillChange();
                questPart_FactionGoodwillChange.inSignal = QuestGenUtility.HardcodedSignalWithQuestID(inSignal.GetValue(slate)) ?? QuestGen.slate.Get <string>("inSignal");
                questPart_FactionGoodwillChange.faction  = value2.Faction;
                questPart_FactionGoodwillChange.change   = value;
                slate.Set("goodwillPenalty", Mathf.Abs(value).ToString());
                QuestGen.quest.AddPart(questPart_FactionGoodwillChange);
            }
            QuestPart_QuestEnd questPart_QuestEnd = new QuestPart_QuestEnd();

            questPart_QuestEnd.inSignal         = QuestGenUtility.HardcodedSignalWithQuestID(inSignal.GetValue(slate)) ?? QuestGen.slate.Get <string>("inSignal");
            questPart_QuestEnd.outcome          = outcome.GetValue(slate);
            questPart_QuestEnd.signalListenMode = signalListenMode.GetValue(slate) ?? QuestPart.SignalListenMode.OngoingOnly;
            questPart_QuestEnd.sendLetter       = sendStandardLetter.GetValue(slate) ?? false;
            QuestGen.quest.AddPart(questPart_QuestEnd);
        }