public static QuestPart_ShuttleDelay ShuttleDelay(this Quest quest, int delayTicks, IEnumerable <Pawn> lodgers, Action complete = null, string inSignalEnable = null, IEnumerable <string> inSignalsDisable = null, bool alert = false)
        {
            QuestPart_ShuttleDelay questPart_ShuttleDelay = new QuestPart_ShuttleDelay();

            questPart_ShuttleDelay.inSignalEnable = inSignalEnable ?? QuestGen.slate.Get <string>("inSignal");
            questPart_ShuttleDelay.delayTicks     = delayTicks;
            questPart_ShuttleDelay.alert          = alert;
            if (lodgers != null)
            {
                questPart_ShuttleDelay.lodgers.AddRange(lodgers);
            }
            questPart_ShuttleDelay.expiryInfoPart    = "ShuttleArrivesIn".Translate();
            questPart_ShuttleDelay.expiryInfoPartTip = "ShuttleArrivesOn".Translate();
            if (complete != null)
            {
                string text = QuestGen.GenerateNewSignal("ShuttleDelay");
                QuestGenUtility.RunInner(complete, text);
                questPart_ShuttleDelay.outSignalsCompleted.Add(text);
            }
            quest.AddPart(questPart_ShuttleDelay);
            return(questPart_ShuttleDelay);
        }
        protected override void RunInt()
        {
            Slate slate = QuestGen.slate;
            QuestPart_ShuttleDelay questPart_ShuttleDelay = new QuestPart_ShuttleDelay();

            questPart_ShuttleDelay.inSignalEnable = (QuestGenUtility.HardcodedSignalWithQuestID(inSignalEnable.GetValue(slate)) ?? QuestGen.slate.Get <string>("inSignal"));
            questPart_ShuttleDelay.delayTicks     = delayTicks.GetValue(slate);
            if (lodgers.GetValue(slate) != null)
            {
                questPart_ShuttleDelay.lodgers.AddRange(lodgers.GetValue(slate));
            }
            questPart_ShuttleDelay.expiryInfoPart    = "ShuttleArrivesIn".Translate();
            questPart_ShuttleDelay.expiryInfoPartTip = "ShuttleArrivesOn".Translate();
            if (node != null)
            {
                QuestGenUtility.RunInnerNode(node, questPart_ShuttleDelay);
            }
            if (!outSignalComplete.GetValue(slate).NullOrEmpty())
            {
                questPart_ShuttleDelay.outSignalsCompleted.Add(QuestGenUtility.HardcodedSignalWithQuestID(outSignalComplete.GetValue(slate)));
            }
            QuestGen.quest.AddPart(questPart_ShuttleDelay);
        }