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_PassAny questPart_PassAny = new QuestPart_PassAny(); foreach (string item in inSignals.GetValue(slate)) { questPart_PassAny.inSignals.Add(QuestGenUtility.HardcodedSignalWithQuestID(item)); } if (node != null) { questPart_PassAny.outSignal = QuestGen.GenerateNewSignal("OuterNodeCompleted"); QuestGenUtility.RunInnerNode(node, questPart_PassAny.outSignal); } else { questPart_PassAny.outSignal = QuestGenUtility.HardcodedSignalWithQuestID(outSignals.GetValue(slate).First()); } questPart_PassAny.signalListenMode = signalListenMode.GetValue(slate) ?? QuestPart.SignalListenMode.OngoingOnly; QuestGen.quest.AddPart(questPart_PassAny); return; } } QuestPart_PassAnyOutMany questPart_PassAnyOutMany = new QuestPart_PassAnyOutMany(); foreach (string item2 in inSignals.GetValue(slate)) { questPart_PassAnyOutMany.inSignals.Add(QuestGenUtility.HardcodedSignalWithQuestID(item2)); } if (node != null) { string text = QuestGen.GenerateNewSignal("OuterNodeCompleted"); questPart_PassAnyOutMany.outSignals.Add(text); QuestGenUtility.RunInnerNode(node, text); } foreach (string item3 in outSignals.GetValue(slate)) { questPart_PassAnyOutMany.outSignals.Add(QuestGenUtility.HardcodedSignalWithQuestID(item3)); } questPart_PassAnyOutMany.signalListenMode = signalListenMode.GetValue(slate) ?? QuestPart.SignalListenMode.OngoingOnly; QuestGen.quest.AddPart(questPart_PassAnyOutMany); }
public static void AnySignal(this Quest quest, IEnumerable <string> inSignals = null, Action action = null, IEnumerable <string> outSignals = null, QuestPart.SignalListenMode signalListenMode = QuestPart.SignalListenMode.OngoingOnly) { _ = QuestGen.slate; switch ((outSignals?.Count() ?? 0) + ((action != null) ? 1 : 0)) { case 0: return; case 1: { QuestPart_PassAny questPart_PassAny = new QuestPart_PassAny(); foreach (string inSignal in inSignals) { questPart_PassAny.inSignals.Add(QuestGenUtility.HardcodedSignalWithQuestID(inSignal)); } if (action != null) { questPart_PassAny.outSignal = QuestGen.GenerateNewSignal("OuterNodeCompleted"); QuestGenUtility.RunInner(action, questPart_PassAny.outSignal); } else { questPart_PassAny.outSignal = QuestGenUtility.HardcodedSignalWithQuestID(outSignals.First()); } questPart_PassAny.signalListenMode = signalListenMode; quest.AddPart(questPart_PassAny); return; } } QuestPart_PassAnyOutMany questPart_PassAnyOutMany = new QuestPart_PassAnyOutMany(); foreach (string inSignal2 in inSignals) { questPart_PassAnyOutMany.inSignals.Add(QuestGenUtility.HardcodedSignalWithQuestID(inSignal2)); } if (action != null) { string text = QuestGen.GenerateNewSignal("OuterNodeCompleted"); questPart_PassAnyOutMany.outSignals.Add(text); QuestGenUtility.RunInner(action, text); } foreach (string outSignal in outSignals) { questPart_PassAnyOutMany.outSignals.Add(QuestGenUtility.HardcodedSignalWithQuestID(outSignal)); } questPart_PassAnyOutMany.signalListenMode = signalListenMode; quest.AddPart(questPart_PassAnyOutMany); }