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