예제 #1
0
 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));
         }
     }
 }