public static QuestPart_PassActivable SignalPassActivable(this Quest quest, Action action = null, string inSignalEnable = null, string inSignal = null, string outSignalCompleted = null, IEnumerable <string> outSignalsCompleted = null, string inSignalDisable = null, bool reactivatable = false) { QuestPart_PassActivable questPart_PassActivable = new QuestPart_PassActivable(); questPart_PassActivable.inSignalEnable = inSignalEnable ?? QuestGen.slate.Get <string>("inSignal"); questPart_PassActivable.inSignalDisable = inSignalDisable; questPart_PassActivable.inSignal = inSignal; questPart_PassActivable.reactivatable = reactivatable; if (action != null) { string text = QuestGen.GenerateNewSignal("OuterNodeCompleted"); QuestGenUtility.RunInner(action, text); questPart_PassActivable.outSignalsCompleted.Add(text); } if (outSignalsCompleted != null) { questPart_PassActivable.outSignalsCompleted.AddRange(outSignalsCompleted); } if (!outSignalCompleted.NullOrEmpty()) { questPart_PassActivable.outSignalsCompleted.Add(outSignalCompleted); } quest.AddPart(questPart_PassActivable); return(questPart_PassActivable); }
protected override void RunInt() { Slate slate = QuestGen.slate; if (((outSignals.GetValue(slate) != null) ? outSignals.GetValue(slate).Count() : 0) + ((node != null) ? 1 : 0) == 0) { return; } QuestPart_PassActivable questPart_PassActivable = new QuestPart_PassActivable(); QuestGen.quest.AddPart(questPart_PassActivable); questPart_PassActivable.inSignalEnable = QuestGenUtility.HardcodedSignalWithQuestID(inSignalEnable.GetValue(slate)) ?? slate.Get <string>("inSignal"); questPart_PassActivable.inSignalDisable = QuestGenUtility.HardcodedSignalWithQuestID(inSignalDisable.GetValue(slate)); questPart_PassActivable.inSignal = QuestGenUtility.HardcodedSignalWithQuestID(inSignal.GetValue(slate)); if (node != null) { QuestGenUtility.RunInnerNode(node, questPart_PassActivable.OutSignalCompleted); } IEnumerable <string> value = outSignals.GetValue(slate); if (value != null) { foreach (string item in value) { questPart_PassActivable.outSignalsCompleted.Add(QuestGenUtility.HardcodedSignalWithQuestID(item)); } } questPart_PassActivable.signalListenMode = signalListenMode.GetValue(slate) ?? QuestPart.SignalListenMode.OngoingOnly; }