public override void Notify_QuestSignalReceived(Signal signal) { if (signal.tag == inSignal) { SignalArgs args = new SignalArgs(signal.args); if (outSignalOutcomeArg.HasValue) { args.Add(outSignalOutcomeArg.Value.Named("OUTCOME")); } args.Add(faction.Named("FACTION")); Find.SignalManager.SendSignal(new Signal(outSignal, args)); } }
protected virtual void Complete(SignalArgs signalArgs) { if (state != QuestPartState.Enabled) { Log.Error("Tried to end QuestPart but its state is not Active. part=" + this); return; } state = QuestPartState.Disabled; if (outcomeCompletedSignalArg != 0) { signalArgs.Add(outcomeCompletedSignalArg.Named("OUTCOME")); } Find.SignalManager.SendSignal(new Signal(OutSignalCompleted, signalArgs)); if (outSignalsCompleted.NullOrEmpty()) { return; } for (int i = 0; i < outSignalsCompleted.Count; i++) { if (!outSignalsCompleted[i].NullOrEmpty()) { Find.SignalManager.SendSignal(new Signal(outSignalsCompleted[i], signalArgs)); } } }