protected override void RunInt() { Slate slate = QuestGen.slate; switch (((outSignals.GetValue(slate) != null) ? outSignals.GetValue(slate).Count() : 0) + ((node != null) ? 1 : 0)) { case 0: return; case 1: { QuestPart_PassAll questPart_PassAll = new QuestPart_PassAll(); foreach (string item in inSignals.GetValue(slate)) { questPart_PassAll.inSignals.Add(QuestGenUtility.HardcodedSignalWithQuestID(item)); } if (node != null) { questPart_PassAll.outSignal = QuestGen.GenerateNewSignal("OuterNodeCompleted"); QuestGenUtility.RunInnerNode(node, questPart_PassAll.outSignal); } else { questPart_PassAll.outSignal = QuestGenUtility.HardcodedSignalWithQuestID(outSignals.GetValue(slate).First()); } questPart_PassAll.signalListenMode = (signalListenMode.GetValue(slate) ?? QuestPart.SignalListenMode.OngoingOnly); QuestGen.quest.AddPart(questPart_PassAll); return; } } QuestPart_PassAllOutMany questPart_PassAllOutMany = new QuestPart_PassAllOutMany(); foreach (string item2 in inSignals.GetValue(slate)) { questPart_PassAllOutMany.inSignals.Add(QuestGenUtility.HardcodedSignalWithQuestID(item2)); } if (node != null) { string text = QuestGen.GenerateNewSignal("OuterNodeCompleted"); questPart_PassAllOutMany.outSignals.Add(text); QuestGenUtility.RunInnerNode(node, text); } foreach (string item3 in outSignals.GetValue(slate)) { questPart_PassAllOutMany.outSignals.Add(QuestGenUtility.HardcodedSignalWithQuestID(item3)); } questPart_PassAllOutMany.signalListenMode = (signalListenMode.GetValue(slate) ?? QuestPart.SignalListenMode.OngoingOnly); QuestGen.quest.AddPart(questPart_PassAllOutMany); }
public static void SignalPassAll(this Quest quest, Action action = null, List <string> inSignals = null, string outSignal = null) { QuestPart_PassAll questPart_PassAll = new QuestPart_PassAll(); questPart_PassAll.inSignals = inSignals ?? new List <string> { QuestGen.slate.Get <string>("inSignal") }; if (action != null) { outSignal = outSignal ?? QuestGen.GenerateNewSignal("OuterNodeCompleted"); QuestGenUtility.RunInner(action, outSignal); } questPart_PassAll.outSignal = outSignal; quest.AddPart(questPart_PassAll); }