protected override void RunInt() { Slate slate = QuestGen.slate; if (Rand.Chance(chance.GetValue(slate))) { if (node != null) { if (node.TestRun(QuestGen.slate.DeepCopy())) { node.Run(); } else if (elseNode != null && elseNode.TestRun(QuestGen.slate.DeepCopy())) { elseNode.Run(); } } } else if (elseNode != null) { if (elseNode.TestRun(QuestGen.slate.DeepCopy())) { elseNode.Run(); } else if (node != null && node.TestRun(QuestGen.slate.DeepCopy())) { node.Run(); } } }
protected override void RunInt() { QuestGen.quest.GiveRewards(parms.GetValue(QuestGen.slate), inSignal.GetValue(QuestGen.slate), customLetterLabel.GetValue(QuestGen.slate), customLetterText.GetValue(QuestGen.slate), customLetterLabelRules.GetValue(QuestGen.slate), customLetterTextRules.GetValue(QuestGen.slate), useDifficultyFactor.GetValue(QuestGen.slate), delegate { nodeIfChosenPawnSignalUsed?.Run(); }, variants.GetValue(QuestGen.slate), addCampLootReward.GetValue(QuestGen.slate), QuestGen.slate.Get <Pawn>("asker")); }
protected override void RunInt() { Slate slate = QuestGen.slate; if (QuestNodeEqualUtility.Equal(value1.GetValue(slate), value2.GetValue(slate), compareAs.GetValue(slate)) && node != null) { node.Run(); } }
public static void RunInnerNode(QuestNode node, string innerNodeInSignal) { Slate.VarRestoreInfo restoreInfo = QuestGen.slate.GetRestoreInfo("inSignal"); QuestGen.slate.Set("inSignal", innerNodeInSignal); try { node.Run(); } finally { QuestGen.slate.Restore(restoreInfo); } }
protected override void RunInt() { if (HasRoyalTitleInCurrentFaction(QuestGen.slate)) { if (node != null) { node.Run(); } } else if (elseNode != null) { elseNode.Run(); } }
protected override void RunInt() { if (IsHostile(QuestGen.slate)) { if (node != null) { node.Run(); } } else if (elseNode != null) { elseNode.Run(); } }
protected override void RunInt() { if (IsOfRoyalFaction(QuestGen.slate)) { if (node != null) { node.Run(); } } else if (elseNode != null) { elseNode.Run(); } }
protected override void RunInt() { if (IsFreeWorldPawn(QuestGen.slate)) { if (node != null) { node.Run(); } } else if (elseNode != null) { elseNode.Run(); } }
protected override void RunInt() { if (AnyHiddenSitePart(QuestGen.slate)) { if (node != null) { node.Run(); } } else if (elseNode != null) { elseNode.Run(); } }
protected override void RunInt() { if (IsPermanentEnemy(QuestGen.slate)) { if (node != null) { node.Run(); } } else if (elseNode != null) { elseNode.Run(); } }
protected override void RunInt() { Slate slate = QuestGen.slate; Slate.VarRestoreInfo restoreInfo = QuestGen.slate.GetRestoreInfo(name.GetValue(slate)); QuestGen.slate.Set(name.GetValue(slate), value.GetValue(slate)); try { node.Run(); } finally { QuestGen.slate.Restore(restoreInfo); } }
protected override void RunInt() { Slate slate = QuestGen.slate; if (Matches(value.GetValue(slate))) { if (node != null) { node.Run(); } } else if (elseNode != null) { elseNode.Run(); } }
protected override void RunInt() { Slate slate = QuestGen.slate; if (QuestGen.slate.Exists(name.GetValue(slate))) { if (node != null) { node.Run(); } } else if (elseNode != null) { elseNode.Run(); } }
protected override void RunInt() { Slate slate = QuestGen.slate; if (QuestGenUtility.IsInList(slate, name.GetValue(slate), value.GetValue(slate))) { if (node != null) { node.Run(); } } else if (elseNode != null) { elseNode.Run(); } }
protected override void RunInt() { Slate slate = QuestGen.slate; for (int i = 0; i < loopCount.GetValue(slate); i++) { if (storeLoopCounterAs.GetValue(slate) != null) { QuestGen.slate.Set(storeLoopCounterAs.GetValue(slate), i); } try { node.Run(); } finally { QuestGen.slate.PopPrefix(); } } }
protected override void RunInt() { Slate slate = QuestGen.slate; string value = prefix.GetValue(slate); List <Slate.VarRestoreInfo> varsRestoreInfo = QuestGenUtility.SetVarsForPrefix(parms, value, QuestGen.slate); if (!value.NullOrEmpty()) { QuestGen.slate.PushPrefix(value, allowNonPrefixedLookup.GetValue(slate)); } try { node.Run(); } finally { if (!value.NullOrEmpty()) { QuestGen.slate.PopPrefix(); } QuestGenUtility.GetReturnedVars(returnVarNames, value, QuestGen.slate); QuestGenUtility.RestoreVarsForPrefix(varsRestoreInfo, QuestGen.slate); } }
protected override void RunInt() { Slate slate = QuestGen.slate; Pawn pawn = slate.Get <Pawn>("asker"); bool num = useDifficultyFactor.GetValue(slate) ?? true; RewardsGeneratorParams value = parms.GetValue(slate); value.rewardValue = slate.Get("rewardValue", 0f); if (num) { value.rewardValue *= Find.Storyteller.difficulty.questRewardValueFactor; } if (slate.Get("debugDontGenerateRewardThings", defaultValue: false)) { DebugActionsQuests.lastQuestGeneratedRewardValue += Mathf.Max(value.rewardValue, 250f); return; } value.minGeneratedRewardValue = 250f; value.giverFaction = pawn?.Faction; value.populationIntent = QuestTuning.PopIncreasingRewardWeightByPopIntentCurve.Evaluate(StorytellerUtilityPopulation.PopulationIntentForQuest); if (value.giverFaction == null || value.giverFaction.def.permanentEnemy) { value.allowGoodwill = false; } if (value.giverFaction == null || pawn.royalty == null || !pawn.royalty.HasAnyTitleIn(pawn.Faction) || value.giverFaction.HostileTo(Faction.OfPlayer)) { value.allowRoyalFavor = false; } Slate.VarRestoreInfo restoreInfo = slate.GetRestoreInfo("inSignal"); if (!inSignal.GetValue(slate).NullOrEmpty()) { slate.Set("inSignal", QuestGenUtility.HardcodedSignalWithQuestID(inSignal.GetValue(slate))); } try { QuestPart_Choice questPart_Choice = new QuestPart_Choice(); questPart_Choice.inSignalChoiceUsed = slate.Get <string>("inSignal"); bool chosenPawnSignalUsed = false; int num2 = (value.allowGoodwill && value.giverFaction != null && value.giverFaction.HostileTo(Faction.OfPlayer)) ? 1 : (variants.GetValue(slate) ?? (QuestGen.quest.root.autoAccept ? 1 : 3)); generatedRewards.Clear(); for (int i = 0; i < num2; i++) { QuestPart_Choice.Choice choice = new QuestPart_Choice.Choice(); List <Reward> list = GenerateRewards(value, slate, i == 0, ref chosenPawnSignalUsed, choice, num2); if (list != null) { questPart_Choice.choices.Add(choice); generatedRewards.Add(list); } } generatedRewards.Clear(); if (addCampLootReward.GetValue(slate)) { for (int j = 0; j < questPart_Choice.choices.Count; j++) { questPart_Choice.choices[j].rewards.Add(new Reward_CampLoot()); } } questPart_Choice.choices.SortByDescending(GetDisplayPriority); QuestGen.quest.AddPart(questPart_Choice); if (chosenPawnSignalUsed && nodeIfChosenPawnSignalUsed != null) { tmpPrevQuestParts.Clear(); tmpPrevQuestParts.AddRange(QuestGen.quest.PartsListForReading); nodeIfChosenPawnSignalUsed.Run(); List <QuestPart> partsListForReading = QuestGen.quest.PartsListForReading; for (int k = 0; k < partsListForReading.Count; k++) { if (!tmpPrevQuestParts.Contains(partsListForReading[k])) { for (int l = 0; l < questPart_Choice.choices.Count; l++) { bool flag = false; for (int m = 0; m < questPart_Choice.choices[l].rewards.Count; m++) { if (questPart_Choice.choices[l].rewards[m].MakesUseOfChosenPawnSignal) { flag = true; break; } } if (flag) { questPart_Choice.choices[l].questParts.Add(partsListForReading[k]); } } } } tmpPrevQuestParts.Clear(); } } finally { slate.Restore(restoreInfo); } }