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); }
public static QuestPart_BetrayalOffer BetrayalOffer(this Quest quest, IEnumerable <Pawn> pawns, ExtraFaction extraFaction, Pawn asker, Action success = null, Action failure = null, Action enabled = null, IEnumerable <string> inSignals = null, string inSignalEnable = null, QuestPart.SignalListenMode signalListenMode = QuestPart.SignalListenMode.OngoingOnly) { QuestPart_BetrayalOffer questPart_BetrayalOffer = new QuestPart_BetrayalOffer(); questPart_BetrayalOffer.pawns.AddRange(pawns); questPart_BetrayalOffer.asker = asker; questPart_BetrayalOffer.extraFaction = extraFaction; questPart_BetrayalOffer.inSignalEnable = inSignalEnable ?? QuestGen.slate.Get <string>("inSignal"); questPart_BetrayalOffer.signalListenMode = signalListenMode; if (inSignals != null) { questPart_BetrayalOffer.inSignals.AddRange(inSignals); } if (success != null) { string text = QuestGen.GenerateNewSignal("BetrayalOfferSuccess"); QuestGenUtility.RunInner(success, text); questPart_BetrayalOffer.outSignalSuccess = text; } if (failure != null) { string text2 = QuestGen.GenerateNewSignal("BetrayalOfferFailure"); QuestGenUtility.RunInner(failure, text2); questPart_BetrayalOffer.outSignalFailure = text2; } if (enabled != null) { string text3 = QuestGen.GenerateNewSignal("BetrayalOfferEnabled"); QuestGenUtility.RunInner(enabled, text3); questPart_BetrayalOffer.outSignalEnabled = text3; } quest.AddPart(questPart_BetrayalOffer); return(questPart_BetrayalOffer); }
public static QuestPart_ShuttleLeaveDelay ShuttleLeaveDelay(this Quest quest, Thing shuttle, int delayTicks, string inSignalEnable = null, IEnumerable <string> inSignalsDisable = null, string outSignalComplete = null, Action complete = null) { QuestPart_ShuttleLeaveDelay questPart_ShuttleLeaveDelay = new QuestPart_ShuttleLeaveDelay(); questPart_ShuttleLeaveDelay.inSignalEnable = inSignalEnable ?? QuestGen.slate.Get <string>("inSignal"); questPart_ShuttleLeaveDelay.delayTicks = delayTicks; questPart_ShuttleLeaveDelay.shuttle = shuttle; questPart_ShuttleLeaveDelay.expiryInfoPart = "ShuttleDepartsIn".Translate(); questPart_ShuttleLeaveDelay.expiryInfoPartTip = "ShuttleDepartsOn".Translate(); if (inSignalsDisable != null) { foreach (string item in inSignalsDisable) { questPart_ShuttleLeaveDelay.inSignalsDisable.Add(item); } } if (!outSignalComplete.NullOrEmpty()) { questPart_ShuttleLeaveDelay.outSignalsCompleted.Add(outSignalComplete); } if (complete != null) { string text = QuestGen.GenerateNewSignal("ShuttleLeaveDelay"); QuestGenUtility.RunInner(complete, text); questPart_ShuttleLeaveDelay.outSignalsCompleted.Add(text); } quest.AddPart(questPart_ShuttleLeaveDelay); return(questPart_ShuttleLeaveDelay); }
public static void SignalPass(this Quest quest, Action action = null, string inSignal = null, string outSignal = null) { QuestPart_Pass questPart_Pass = new QuestPart_Pass(); questPart_Pass.inSignal = inSignal ?? QuestGen.slate.Get <string>("inSignal"); if (action != null) { outSignal = outSignal ?? QuestGen.GenerateNewSignal("OuterNodeCompleted"); QuestGenUtility.RunInner(action, outSignal); } questPart_Pass.outSignal = outSignal; quest.AddPart(questPart_Pass); }
public static void SignalRandom(this Quest quest, IEnumerable <Action> actions, string inSignal = null, QuestPart.SignalListenMode signalListenMode = QuestPart.SignalListenMode.OngoingOnly) { QuestPart_PassOutRandom questPart_PassOutRandom = new QuestPart_PassOutRandom(); questPart_PassOutRandom.inSignal = QuestGenUtility.HardcodedSignalWithQuestID(inSignal) ?? QuestGen.slate.Get <string>("inSignal"); questPart_PassOutRandom.signalListenMode = signalListenMode; quest.AddPart(questPart_PassOutRandom); foreach (Action action in actions) { string text = QuestGen.GenerateNewSignal("OuterNodeCompleted"); questPart_PassOutRandom.outSignals.Add(text); QuestGenUtility.RunInner(action, text); } }
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); }
public static void SignalPassAllSequence(this Quest quest, Action action = null, List <string> inSignals = null, string outSignal = null) { QuestPart_PassAllSequence questPart_PassAllSequence = new QuestPart_PassAllSequence(); questPart_PassAllSequence.inSignals = inSignals ?? new List <string> { QuestGen.slate.Get <string>("inSignal") }; if (action != null) { outSignal = outSignal ?? QuestGen.GenerateNewSignal("OuterNodeCompleted"); QuestGenUtility.RunInner(action, outSignal); } questPart_PassAllSequence.outSignal = outSignal; quest.AddPart(questPart_PassAllSequence); }
public static QuestPart_Filter_FactionNonPlayer FactionNonPlayer(this Quest quest, Action action = null, Action elseAction = null, string inSignal = null, string outSignal = null, string outSignalElse = null, QuestPart.SignalListenMode signalListenMode = QuestPart.SignalListenMode.OngoingOnly) { QuestPart_Filter_FactionNonPlayer questPart_Filter_FactionNonPlayer = new QuestPart_Filter_FactionNonPlayer(); questPart_Filter_FactionNonPlayer.inSignal = QuestGenUtility.HardcodedSignalWithQuestID(inSignal) ?? QuestGen.slate.Get <string>("inSignal"); questPart_Filter_FactionNonPlayer.signalListenMode = signalListenMode; if (action != null) { QuestGenUtility.RunInner(action, questPart_Filter_FactionNonPlayer.outSignal = QuestGen.GenerateNewSignal("OuterNodeCompleted")); } if (elseAction != null) { QuestGenUtility.RunInner(elseAction, questPart_Filter_FactionNonPlayer.outSignalElse = QuestGen.GenerateNewSignal("OuterNodeCompleted")); } quest.AddPart(questPart_Filter_FactionNonPlayer); return(questPart_Filter_FactionNonPlayer); }
public static QuestPart_PawnJoinOffer PawnJoinOffer(this Quest quest, Pawn pawn, string letterLabel, string letterTitle, string letterText, Action accepted = null, string inSignal = null, string outSignalPawnAccepted = null) { QuestPart_PawnJoinOffer questPart_PawnJoinOffer = new QuestPart_PawnJoinOffer(); questPart_PawnJoinOffer.pawn = pawn; questPart_PawnJoinOffer.inSignalEnable = inSignal ?? QuestGen.slate.Get <string>("inSignal"); questPart_PawnJoinOffer.outSignalPawnAccepted = outSignalPawnAccepted ?? QuestGen.GenerateNewSignal("Accepted"); questPart_PawnJoinOffer.letterLabel = letterLabel; questPart_PawnJoinOffer.letterText = letterText; questPart_PawnJoinOffer.letterTitle = letterTitle; if (accepted != null) { QuestGenUtility.RunInner(accepted, questPart_PawnJoinOffer.outSignalPawnAccepted); } quest.AddPart(questPart_PawnJoinOffer); return(questPart_PawnJoinOffer); }
public static QuestPart_Filter_AnyPawnPlayerControlled AnyPawnPlayerControlled(this Quest quest, IEnumerable <Pawn> pawns, Action action = null, Action elseAction = null, string inSignal = null, string outSignal = null, string outSignalElse = null, string inSignalRemovePawn = null, QuestPart.SignalListenMode signalListenMode = QuestPart.SignalListenMode.OngoingOnly) { QuestPart_Filter_AnyPawnPlayerControlled questPart_Filter_AnyPawnPlayerControlled = new QuestPart_Filter_AnyPawnPlayerControlled(); questPart_Filter_AnyPawnPlayerControlled.inSignal = QuestGenUtility.HardcodedSignalWithQuestID(inSignal) ?? QuestGen.slate.Get <string>("inSignal"); questPart_Filter_AnyPawnPlayerControlled.signalListenMode = signalListenMode; questPart_Filter_AnyPawnPlayerControlled.pawns = pawns.ToList(); questPart_Filter_AnyPawnPlayerControlled.inSignalRemovePawn = inSignalRemovePawn; if (action != null) { QuestGenUtility.RunInner(action, questPart_Filter_AnyPawnPlayerControlled.outSignal = QuestGen.GenerateNewSignal("OuterNodeCompleted")); } if (elseAction != null) { QuestGenUtility.RunInner(elseAction, questPart_Filter_AnyPawnPlayerControlled.outSignalElse = QuestGen.GenerateNewSignal("OuterNodeCompleted")); } quest.AddPart(questPart_Filter_AnyPawnPlayerControlled); return(questPart_Filter_AnyPawnPlayerControlled); }
public static QuestPart_Filter_FactionHostileToOtherFaction FactionHostileToOtherFaction(this Quest quest, Faction faction, Faction other, Action action = null, Action elseAction = null, string inSignal = null, string outSignal = null, string outSignalElse = null, QuestPart.SignalListenMode signalListenMode = QuestPart.SignalListenMode.OngoingOnly) { QuestPart_Filter_FactionHostileToOtherFaction questPart_Filter_FactionHostileToOtherFaction = new QuestPart_Filter_FactionHostileToOtherFaction(); questPart_Filter_FactionHostileToOtherFaction.inSignal = QuestGenUtility.HardcodedSignalWithQuestID(inSignal) ?? QuestGen.slate.Get <string>("inSignal"); questPart_Filter_FactionHostileToOtherFaction.signalListenMode = signalListenMode; questPart_Filter_FactionHostileToOtherFaction.faction = faction; questPart_Filter_FactionHostileToOtherFaction.other = other; if (action != null) { QuestGenUtility.RunInner(action, questPart_Filter_FactionHostileToOtherFaction.outSignal = QuestGen.GenerateNewSignal("OuterNodeCompleted")); } if (elseAction != null) { QuestGenUtility.RunInner(elseAction, questPart_Filter_FactionHostileToOtherFaction.outSignalElse = QuestGen.GenerateNewSignal("OuterNodeCompleted")); } quest.AddPart(questPart_Filter_FactionHostileToOtherFaction); return(questPart_Filter_FactionHostileToOtherFaction); }
public static void SignalPassOutMany(this Quest quest, Action action = null, string inSignal = null, IEnumerable <string> outSignals = null) { QuestPart_PassOutMany questPart_PassOutMany = new QuestPart_PassOutMany(); questPart_PassOutMany.inSignal = inSignal ?? QuestGen.slate.Get <string>("inSignal"); if (action != null) { string innerNodeInSignal = QuestGen.GenerateNewSignal("OuterNodeCompleted"); QuestGenUtility.RunInner(action, innerNodeInSignal); } if (outSignals != null) { foreach (string outSignal in outSignals) { questPart_PassOutMany.outSignals.Add(outSignal); } } quest.AddPart(questPart_PassOutMany); }
public static QuestPart_Delay Delay(this Quest quest, int delayTicks, Action inner, string inSignalEnable = null, string inSignalDisable = null, string outSignalComplete = null, bool reactivatable = false, IEnumerable <ISelectable> inspectStringTargets = null, string inspectString = null, bool isQuestTimeout = false, string expiryInfoPart = null, string expiryInfoPartTip = null, string debugLabel = null, bool tickHistorically = false, QuestPart.SignalListenMode signalListenMode = QuestPart.SignalListenMode.OngoingOnly) { QuestPart_Delay questPart_Delay = new QuestPart_Delay(); questPart_Delay.delayTicks = delayTicks; questPart_Delay.inSignalEnable = QuestGenUtility.HardcodedSignalWithQuestID(inSignalEnable) ?? QuestGen.slate.Get <string>("inSignal"); questPart_Delay.inSignalDisable = QuestGenUtility.HardcodedSignalWithQuestID(inSignalDisable); questPart_Delay.reactivatable = reactivatable; questPart_Delay.signalListenMode = signalListenMode; if (!inspectStringTargets.EnumerableNullOrEmpty()) { questPart_Delay.inspectString = inspectString; questPart_Delay.inspectStringTargets = new List <ISelectable>(); questPart_Delay.inspectStringTargets.AddRange(inspectStringTargets); } if (isQuestTimeout) { questPart_Delay.isBad = true; questPart_Delay.expiryInfoPart = "QuestExpiresIn".Translate(); questPart_Delay.expiryInfoPartTip = "QuestExpiresOn".Translate(); } else { questPart_Delay.expiryInfoPart = expiryInfoPart; questPart_Delay.expiryInfoPartTip = expiryInfoPartTip; } if (inner != null) { QuestGenUtility.RunInner(inner, questPart_Delay); } if (!outSignalComplete.NullOrEmpty()) { questPart_Delay.outSignalsCompleted.Add(QuestGenUtility.HardcodedSignalWithQuestID(outSignalComplete)); } if (!debugLabel.NullOrEmpty()) { questPart_Delay.debugLabel = debugLabel; } quest.AddPart(questPart_Delay); return(questPart_Delay); }
public static QuestPart_Filter_AnyOnTransporter AnyOnTransporter(this Quest quest, IEnumerable <Pawn> pawns, Thing shuttle, Action action = null, Action elseAction = null, string inSignal = null, string outSignal = null, string outSignalElse = null, string inSignalRemovePawn = null, QuestPart.SignalListenMode signalListenMode = QuestPart.SignalListenMode.OngoingOnly) { QuestPart_Filter_AnyOnTransporter questPart_Filter_AnyOnTransporter = new QuestPart_Filter_AnyOnTransporter(); questPart_Filter_AnyOnTransporter.inSignal = QuestGenUtility.HardcodedSignalWithQuestID(inSignal) ?? QuestGen.slate.Get <string>("inSignal"); questPart_Filter_AnyOnTransporter.signalListenMode = signalListenMode; questPart_Filter_AnyOnTransporter.pawns = pawns.ToList(); questPart_Filter_AnyOnTransporter.outSignal = outSignal; questPart_Filter_AnyOnTransporter.outSignalElse = outSignalElse; questPart_Filter_AnyOnTransporter.transporter = shuttle; if (action != null) { QuestGenUtility.RunInner(action, questPart_Filter_AnyOnTransporter.outSignal = QuestGen.GenerateNewSignal("OuterNodeCompleted")); } if (elseAction != null) { QuestGenUtility.RunInner(elseAction, questPart_Filter_AnyOnTransporter.outSignalElse = QuestGen.GenerateNewSignal("OuterNodeCompleted")); } quest.AddPart(questPart_Filter_AnyOnTransporter); return(questPart_Filter_AnyOnTransporter); }
public static void SignalPassWithFaction(this Quest quest, Faction faction, Action action = null, Action outAction = null, string inSignal = null, string outSignal = null) { QuestPart_PassWithFactionArg questPart_PassWithFactionArg = new QuestPart_PassWithFactionArg(); questPart_PassWithFactionArg.inSignal = inSignal ?? QuestGen.slate.Get <string>("inSignal"); questPart_PassWithFactionArg.faction = faction; questPart_PassWithFactionArg.outSignal = outSignal; if (action != null) { string innerNodeInSignal = QuestGen.GenerateNewSignal("OuterNodeCompleted"); QuestGenUtility.RunInner(action, innerNodeInSignal); } if (outAction != null) { if (questPart_PassWithFactionArg.outSignal == null) { questPart_PassWithFactionArg.outSignal = QuestGen.GenerateNewSignal("OuterNodeCompleted"); } QuestGenUtility.RunInner(outAction, questPart_PassWithFactionArg.outSignal); } quest.AddPart(questPart_PassWithFactionArg); }
public static QuestPart_ShuttleDelay ShuttleDelay(this Quest quest, int delayTicks, IEnumerable <Pawn> lodgers, Action complete = null, string inSignalEnable = null, IEnumerable <string> inSignalsDisable = null, bool alert = false) { QuestPart_ShuttleDelay questPart_ShuttleDelay = new QuestPart_ShuttleDelay(); questPart_ShuttleDelay.inSignalEnable = inSignalEnable ?? QuestGen.slate.Get <string>("inSignal"); questPart_ShuttleDelay.delayTicks = delayTicks; questPart_ShuttleDelay.alert = alert; if (lodgers != null) { questPart_ShuttleDelay.lodgers.AddRange(lodgers); } questPart_ShuttleDelay.expiryInfoPart = "ShuttleArrivesIn".Translate(); questPart_ShuttleDelay.expiryInfoPartTip = "ShuttleArrivesOn".Translate(); if (complete != null) { string text = QuestGen.GenerateNewSignal("ShuttleDelay"); QuestGenUtility.RunInner(complete, text); questPart_ShuttleDelay.outSignalsCompleted.Add(text); } quest.AddPart(questPart_ShuttleDelay); return(questPart_ShuttleDelay); }