protected override void RunInt() { Slate slate = QuestGen.slate; QuestPart_ShuttleLeaveDelay questPart_ShuttleLeaveDelay = new QuestPart_ShuttleLeaveDelay(); questPart_ShuttleLeaveDelay.inSignalEnable = (QuestGenUtility.HardcodedSignalWithQuestID(inSignalEnable.GetValue(slate)) ?? QuestGen.slate.Get <string>("inSignal")); questPart_ShuttleLeaveDelay.delayTicks = delayTicks.GetValue(slate); questPart_ShuttleLeaveDelay.shuttle = shuttle.GetValue(slate); questPart_ShuttleLeaveDelay.expiryInfoPart = "ShuttleDepartsIn".Translate(); questPart_ShuttleLeaveDelay.expiryInfoPartTip = "ShuttleDepartsOn".Translate(); if (inSignalsDisable.GetValue(slate) != null) { foreach (string item in inSignalsDisable.GetValue(slate)) { questPart_ShuttleLeaveDelay.inSignalsDisable.Add(QuestGenUtility.HardcodedSignalWithQuestID(item)); } } if (node != null) { QuestGenUtility.RunInnerNode(node, questPart_ShuttleLeaveDelay); } if (!outSignalComplete.GetValue(slate).NullOrEmpty()) { questPart_ShuttleLeaveDelay.outSignalsCompleted.Add(QuestGenUtility.HardcodedSignalWithQuestID(outSignalComplete.GetValue(slate))); } QuestGen.quest.AddPart(questPart_ShuttleLeaveDelay); }
public static QuestPart_ShuttleLeaveDelay ShuttleLeaveDelay(this Quest quest, Thing shuttle, int delayTicks, string inSignalEnable = null, IEnumerable <string> inSignalsDisable = null, string outSignalComplete = null, Action complete = null) { QuestPart_ShuttleLeaveDelay questPart_ShuttleLeaveDelay = new QuestPart_ShuttleLeaveDelay(); questPart_ShuttleLeaveDelay.inSignalEnable = inSignalEnable ?? QuestGen.slate.Get <string>("inSignal"); questPart_ShuttleLeaveDelay.delayTicks = delayTicks; questPart_ShuttleLeaveDelay.shuttle = shuttle; questPart_ShuttleLeaveDelay.expiryInfoPart = "ShuttleDepartsIn".Translate(); questPart_ShuttleLeaveDelay.expiryInfoPartTip = "ShuttleDepartsOn".Translate(); if (inSignalsDisable != null) { foreach (string item in inSignalsDisable) { questPart_ShuttleLeaveDelay.inSignalsDisable.Add(item); } } if (!outSignalComplete.NullOrEmpty()) { questPart_ShuttleLeaveDelay.outSignalsCompleted.Add(outSignalComplete); } if (complete != null) { string text = QuestGen.GenerateNewSignal("ShuttleLeaveDelay"); QuestGenUtility.RunInner(complete, text); questPart_ShuttleLeaveDelay.outSignalsCompleted.Add(text); } quest.AddPart(questPart_ShuttleLeaveDelay); return(questPart_ShuttleLeaveDelay); }