forked from chomp/ChompQuestVerifier
Update quest prereqs + add ability to merge multiple quest dumps
This commit is contained in:
parent
463e403ab2
commit
a28b4c6ede
File diff suppressed because it is too large
Load Diff
@ -7,6 +7,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace GenerateQuestFile
|
||||
@ -28,16 +29,22 @@ namespace GenerateQuestFile
|
||||
var existingQuestData = QuestHelper.GetQuestData();
|
||||
var liveQuestData = QuestHelper.GetLiveQuestData();
|
||||
|
||||
var mergedLiveData = QuestHelper.MergeLiveQuestFiles(liveQuestData);
|
||||
|
||||
//JsonWriter.WriteJson<QuestRoot>(mergedLiveData, "merged", Directory.GetCurrentDirectory(), "mergedlivejson");
|
||||
|
||||
// Find the quests that are missing from the live file from existing quest data
|
||||
var missingQuests = GetMissingQuestsNotInLiveFile(existingQuestData, liveQuestData);
|
||||
var missingQuests = GetMissingQuestsNotInLiveFile(existingQuestData, mergedLiveData);
|
||||
|
||||
|
||||
|
||||
// Create a list of quests to output
|
||||
// Use all quests in live file
|
||||
// Use quests from quests.json to fill in missing quests
|
||||
var questsToOutputToFile = new Dictionary<string, Quest>();
|
||||
|
||||
// Add live quests to collection to return later
|
||||
foreach (var liveQuest in liveQuestData.data)
|
||||
foreach (var liveQuest in mergedLiveData.data)
|
||||
{
|
||||
questsToOutputToFile.Add(liveQuest._id, liveQuest);
|
||||
}
|
||||
@ -51,6 +58,15 @@ namespace GenerateQuestFile
|
||||
questsToOutputToFile.Add(missingQuest._id, missingQuest);
|
||||
}
|
||||
|
||||
// Now old + new qeusts have been merged, check qeust list to see if any quests are missing
|
||||
foreach (var missingQuest in QuestNames.GetQuests())
|
||||
{
|
||||
if (!questsToOutputToFile.Any(x => x.Key == missingQuest.Value))
|
||||
{
|
||||
LoggingHelpers.LogWarning($" quest not found in new or old data: {missingQuest.Key}");
|
||||
}
|
||||
}
|
||||
|
||||
if (!questsToOutputToFile.ContainsKey("5e383a6386f77465910ce1f3")) // TextileP1Bear
|
||||
{
|
||||
// add textileP1Bear
|
||||
@ -187,17 +203,43 @@ namespace GenerateQuestFile
|
||||
// Iterate over quest requirements in existing quest file
|
||||
foreach (var questRequirementToAdd in originalQuest.conditions.AvailableForStart.ToList())
|
||||
{
|
||||
if (questToUpdate.Key == "60896bca6ee58f38c417d4f2")
|
||||
{
|
||||
var x = 2;
|
||||
}
|
||||
|
||||
//Exists already, skip
|
||||
if (questToUpdate.Value.conditions.AvailableForStart.Any(x => x._parent == questRequirementToAdd._parent
|
||||
&& x._props.target?.ToString() == questRequirementToAdd._props.target?.ToString()))
|
||||
if (questToUpdate.Value.conditions.AvailableForStart.Any(
|
||||
x => x._parent == questRequirementToAdd._parent
|
||||
&& x._props.target?.ToString() == questRequirementToAdd._props.target?.ToString())
|
||||
)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (questRequirementToAdd._parent == "Quest")
|
||||
{
|
||||
questRequirementToAdd._props.id = Sha256(new DateTime().ToString());
|
||||
questRequirementToAdd._props.availableAfter = 0;
|
||||
questRequirementToAdd._props.visibilityConditions = new List<object>();
|
||||
}
|
||||
|
||||
questToUpdate.Value.conditions.AvailableForStart.Add(questRequirementToAdd);
|
||||
}
|
||||
}
|
||||
|
||||
static string Sha256(string randomString)
|
||||
{
|
||||
var crypt = new System.Security.Cryptography.SHA256Managed();
|
||||
var hash = new System.Text.StringBuilder();
|
||||
byte[] crypto = crypt.ComputeHash(Encoding.UTF8.GetBytes(randomString));
|
||||
foreach (byte theByte in crypto)
|
||||
{
|
||||
hash.Append(theByte.ToString("x2"));
|
||||
}
|
||||
return hash.ToString().Substring(0, 24);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Look up the quests name by guid and add human readable string to quest object
|
||||
/// </summary>
|
||||
|
@ -1,6 +1,7 @@
|
||||
using QuestValidator.Common.Helpers;
|
||||
using QuestValidator.Models;
|
||||
using QuestValidator.Models.Other;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
@ -12,7 +13,7 @@ namespace AssortGenerator.Common.Helpers
|
||||
{
|
||||
// Quest to lookup is key, previous quest is PreceedingQuest value
|
||||
|
||||
private static QuestRoot _liveQuestData;
|
||||
private static List<QuestRoot> _liveQuestData;
|
||||
private static Dictionary<string, QuestValidator.Models.Quest> _questData;
|
||||
private static List<AssortUnlocks> _assortUnlocks;
|
||||
|
||||
@ -33,18 +34,54 @@ namespace AssortGenerator.Common.Helpers
|
||||
return _questData;
|
||||
}
|
||||
|
||||
public static QuestRoot GetLiveQuestData(string filename = "resp.client.quest.list")
|
||||
/// <summary>
|
||||
/// Merge all live quest dumps into one file
|
||||
/// </summary>
|
||||
/// <param name="liveQuestDataFiles"></param>
|
||||
/// <returns></returns>
|
||||
public static QuestRoot MergeLiveQuestFiles(List<QuestRoot> liveQuestDataFiles)
|
||||
{
|
||||
QuestRoot mergedResult = null;
|
||||
foreach (var liveQuestDataFile in liveQuestDataFiles)
|
||||
{
|
||||
if (mergedResult == null)
|
||||
{
|
||||
mergedResult = liveQuestDataFile;
|
||||
}
|
||||
|
||||
foreach (var quest in liveQuestDataFile.data)
|
||||
{
|
||||
if (mergedResult.data.Any(x => x._id == quest._id))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
LoggingHelpers.LogWarning($"missing quest {quest._id} found in second live quest dump");
|
||||
mergedResult.data.Add(quest);
|
||||
}
|
||||
}
|
||||
|
||||
return mergedResult;
|
||||
}
|
||||
|
||||
public static List<QuestRoot> GetLiveQuestData(string filename = "resp.client.quest.list")
|
||||
{
|
||||
if (_liveQuestData is null)
|
||||
{
|
||||
var questFilePath = InputFileHelper.GetInputFilePaths().FirstOrDefault(x => x.Contains(filename));
|
||||
if (questFilePath is null)
|
||||
_liveQuestData = new List<QuestRoot>();
|
||||
var questFilePaths = InputFileHelper.GetInputFilePaths().Where(x => x.Contains(filename));
|
||||
if (questFilePaths is null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var questDataJson = File.ReadAllText(questFilePath);
|
||||
_liveQuestData = JsonSerializer.Deserialize<QuestRoot>(questDataJson);
|
||||
foreach (var questFilepath in questFilePaths)
|
||||
{
|
||||
var questDataJson = File.ReadAllText(questFilepath);
|
||||
_liveQuestData.Add(JsonSerializer.Deserialize<QuestRoot>(questDataJson));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
return _liveQuestData;
|
||||
|
@ -48,7 +48,7 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.ThePunisherP4, "59ca264786f77445a80ed044"},
|
||||
{ Quest.ThePunisherP5, "59ca29fb86f77445ab465c87"},
|
||||
{ Quest.ThePunisherP6, "59ca2eb686f77445a80ed049"},
|
||||
{ Quest.NoQuestNameGiven, "59f9da6786f774714230d751"},
|
||||
//{ Quest.NoQuestNameGiven, "59f9da6786f774714230d751"}, // probably leftover in data, not well formed in en.json locale
|
||||
{ Quest.SpaTourP1, "5a03153686f77442d90e2171"},
|
||||
{ Quest.SpaTourP2, "5a03173786f77451cb427172"},
|
||||
{ Quest.SpaTourP3, "5a0327ba86f77456b9154236"},
|
||||
@ -171,7 +171,7 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.TheSurvivalistPathWoundedBeast, "5d25c81b86f77443e625dd71"},
|
||||
{ Quest.TheSurvivalistPathToughGuy, "5d25cf2686f77443e75488d4"},
|
||||
{ Quest.TheSurvivalistPathColdBlooded, "5d25d2c186f77443e35162e5"},
|
||||
{ Quest.TheSurvivalistPathZatoichi, "5d25dae186f77443e55d2f78"},
|
||||
//{ Quest.TheSurvivalistPathZatoichi, "5d25dae186f77443e55d2f78"}, // removed in patch
|
||||
{ Quest.TheSurvivalistPathEagleOwl, "5d25e29d86f7740a22516326"},
|
||||
{ Quest.TheSurvivalistPathCombatMedic, "5d25e2a986f77409dd5cdf2a"},
|
||||
{ Quest.TheSurvivalistPathJunkie, "5eaaaa7c93afa0558f3b5a1c"},
|
||||
@ -236,11 +236,10 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.CapturingOutposts, "60e71b9bbd90872cb85440f3"},
|
||||
{ Quest.Escort, "60e71b62a0beca400d69efc4"},
|
||||
{ Quest.Calibration, "60e71d23c1bfa3050473b8e6"},
|
||||
{ Quest.MutualInterest, "60e71c9ad54b755a3b53eb66"},
|
||||
{ Quest.EasyJobPart1, "6179ac7511973d018217d0b9" },
|
||||
{ Quest.EasyJobPart2, "6179acbdc760af5ad2053585" },
|
||||
{ Quest.EnergyCrisis, "6179b3a12153c15e937d52bc" },
|
||||
{ Quest.CommunicationDifficulties, "6179ad74bca27a099552e03a" },
|
||||
//{ Quest.CommunicationDifficulties, "6179ad74bca27a099552e03a" }, removed
|
||||
{ Quest.Overpopulation, "6179aff8f57fb279792c60a1" },
|
||||
{ Quest.SeasideVacation, "6179ad56c760af5ad2053587" },
|
||||
{ Quest.CorporateSecrets, "6179b3bdc7560e13d23eeb8d" },
|
||||
@ -263,7 +262,11 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.Reconnaissance, "626bd75c71bd851e971b82a5" },
|
||||
{ Quest.TopSecret, "626bd75d5bef5d7d590bd415" },
|
||||
{ Quest.Broadcast, "626bd75e47ea7f506e5493c5" },
|
||||
{ Quest.StrayDogs, "626bdcc3a371ee3a7a3514c5" }
|
||||
{ Quest.StrayDogs, "626bdcc3a371ee3a7a3514c5" },
|
||||
{ Quest.Trophies, "60e71ccb5688f6424c7bfec4" },
|
||||
{ Quest.TheCleaner, "60e71c9ad54b755a3b53eb66" },
|
||||
{ Quest.SpecialEquipment, "60e71ce009d7c801eb0c0ec6" },
|
||||
|
||||
};
|
||||
|
||||
private static readonly Dictionary<string, string> questNames = new Dictionary<string, string>
|
||||
@ -498,11 +501,10 @@ namespace QuestValidator.Common.Helpers
|
||||
{ "60e71b9bbd90872cb85440f3", "Capturing Outposts"},
|
||||
{ "60e71b62a0beca400d69efc4", "Escort"},
|
||||
{ "60e71d23c1bfa3050473b8e6", "Calibration"},
|
||||
{ "60e71c9ad54b755a3b53eb66", "Mutual Interest"},
|
||||
{ "6179ac7511973d018217d0b9", "Easy Job Part 1" },
|
||||
{ "6179acbdc760af5ad2053585", "Easy Job Part 2" },
|
||||
{ "6179b3a12153c15e937d52bc", "Energy Crisis" },
|
||||
{ "6179ad74bca27a099552e03a", "Communication Difficulties" },
|
||||
// { "6179ad74bca27a099552e03a", "Communication Difficulties" }, //removed
|
||||
{ "6179aff8f57fb279792c60a1", "Overpopulation" },
|
||||
{ "6179ad56c760af5ad2053587", "Seaside Vacation" },
|
||||
{ "6179b3bdc7560e13d23eeb8d", "Corporate Secrets" },
|
||||
@ -525,7 +527,10 @@ namespace QuestValidator.Common.Helpers
|
||||
{ "626bd75c71bd851e971b82a5", "Reconnaissance"},
|
||||
{ "626bd75d5bef5d7d590bd415", "Top Secret" },
|
||||
{ "626bd75e47ea7f506e5493c5", "Broadcast" },
|
||||
{ "626bdcc3a371ee3a7a3514c5", "Stray Dogs" }
|
||||
{ "626bdcc3a371ee3a7a3514c5", "Stray Dogs" },
|
||||
{ "60e71ccb5688f6424c7bfec4", "Trophies" },
|
||||
{ "60e71c9ad54b755a3b53eb66", "The Cleaner" },
|
||||
{ "60e71ce009d7c801eb0c0ec6", "Special Equipment" },
|
||||
};
|
||||
|
||||
public static string GetNameById(string id)
|
||||
@ -543,6 +548,11 @@ namespace QuestValidator.Common.Helpers
|
||||
return questLookup[quest];
|
||||
}
|
||||
|
||||
public static Dictionary<Quest, string> GetQuests()
|
||||
{
|
||||
return questLookup;
|
||||
}
|
||||
|
||||
internal static string GetNameByEnum(Quest quest)
|
||||
{
|
||||
var id = GetIdByEnum(quest);
|
||||
|
@ -64,7 +64,7 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.ThePunisherP2, GetQuestData(Quest.ThePunisherP2).AddPrerequisiteQuest(Quest.ThePunisherP1, QuestStatus.Success) },
|
||||
{ Quest.ThePunisherP3, GetQuestData(Quest.ThePunisherP3).AddPrerequisiteQuest(Quest.ThePunisherP2, QuestStatus.Success) },
|
||||
{ Quest.TrustRegain, GetQuestData(Quest.TrustRegain).AddPrerequisiteQuest(Quest.ChemicalP4, QuestStatus.Success) },
|
||||
{ Quest.LoyaltyBuyout, GetQuestData(Quest.LoyaltyBuyout).AddPrerequisiteQuest(Quest.ChemicalP3, QuestStatus.Success) },
|
||||
{ Quest.LoyaltyBuyout, GetQuestData(Quest.LoyaltyBuyout).AddPrerequisiteQuest(Quest.OutOfCuriosity, QuestStatus.Success) },
|
||||
{ Quest.NoOffence, GetQuestData(Quest.NoOffence).AddPrerequisiteQuest(Quest.BigCustomer, QuestStatus.Fail) },
|
||||
{ Quest.ThePunisherP4, GetQuestData(Quest.ThePunisherP4).AddPrerequisiteQuest(Quest.ThePunisherP3, QuestStatus.Success) },
|
||||
{ Quest.ThePunisherP5, GetQuestData(Quest.ThePunisherP5).AddPrerequisiteQuest(Quest.ThePunisherP4, QuestStatus.Success) },
|
||||
@ -80,7 +80,7 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.ScrapMetal, GetQuestData(Quest.ScrapMetal).AddPrerequisiteQuest(Quest.TigrSafari, QuestStatus.Success) },
|
||||
{ Quest.EagleEye, GetQuestData(Quest.EagleEye).AddPrerequisiteQuest(Quest.ScrapMetal, QuestStatus.Success) },
|
||||
{ Quest.HumanitarianSupplies, GetQuestData(Quest.HumanitarianSupplies).AddPrerequisiteQuest(Quest.EagleEye, QuestStatus.Success) },
|
||||
{ Quest.TheCultP1, GetQuestData(Quest.TheCultP1).AddPrerequisiteQuest(Quest.EagleEye, QuestStatus.Success) },
|
||||
{ Quest.TheCultP1, GetQuestData(Quest.TheCultP1).AddPrerequisiteQuest(Quest.HumanitarianSupplies, QuestStatus.Success) },
|
||||
{ Quest.TheCultP2, GetQuestData(Quest.TheCultP2).AddPrerequisiteQuest(Quest.TheCultP1, QuestStatus.Success) },
|
||||
{ Quest.SpaTourP6, GetQuestData(Quest.SpaTourP6).AddPrerequisiteQuest(Quest.SpaTourP5, QuestStatus.Success) },
|
||||
{ Quest.SpaTourP7, GetQuestData(Quest.SpaTourP7).AddPrerequisiteQuest(Quest.SpaTourP6, QuestStatus.Success) },
|
||||
@ -127,7 +127,7 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.SignalP4, GetQuestData(Quest.SignalP4).AddPrerequisiteQuest(Quest.SignalP3, QuestStatus.Success) },
|
||||
{ Quest.BadHabit, GetQuestData(Quest.BadHabit).AddPrerequisiteQuest(Quest.FarmingP2, QuestStatus.Success) },
|
||||
{ Quest.Scout, GetQuestData(Quest.Scout).AddPrerequisiteQuest(Quest.SignalP2, QuestStatus.Success) },
|
||||
{ Quest.Insider, GetQuestData(Quest.Insider).AddPrerequisiteQuest(Quest.SignalP1, QuestStatus.Success) },
|
||||
{ Quest.Insider, GetQuestData(Quest.Insider).AddPrerequisiteQuest(Quest.SignalP1, QuestStatus.Success).AddPrerequisiteQuest(Quest.GunsmithP3, QuestStatus.Success) },
|
||||
{ Quest.MakeUltraGreatAgain, GetQuestData(Quest.MakeUltraGreatAgain).AddPrerequisiteQuest(Quest.OnlyBusiness, QuestStatus.Success) },
|
||||
{ Quest.BigSale, GetQuestData(Quest.BigSale).AddPrerequisiteQuest(Quest.OnlyBusiness, QuestStatus.Success) },
|
||||
{ Quest.TheBloodOfWar, GetQuestData(Quest.TheBloodOfWar).AddPrerequisiteQuest(Quest.BigSale, QuestStatus.Success) },
|
||||
@ -151,7 +151,7 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.VitaminsP2, GetQuestData(Quest.VitaminsP2).AddPrerequisiteQuest(Quest.VitaminsP1, QuestStatus.Success) },
|
||||
{ Quest.InformedMeansArmed, GetQuestData(Quest.InformedMeansArmed).AddPrerequisiteQuest(Quest.FriendFromTheWestP2, QuestStatus.Success) },
|
||||
{ Quest.Chumming, GetQuestData(Quest.Chumming).AddPrerequisiteQuest(Quest.InformedMeansArmed, QuestStatus.Success) },
|
||||
{ Quest.TheTarkovShooterP1, GetQuestData(Quest.TheTarkovShooterP1).AddPrerequisiteQuest(Quest.GunsmithP5, QuestStatus.Success) },
|
||||
{ Quest.TheTarkovShooterP1, GetQuestData(Quest.TheTarkovShooterP1).AddPrerequisiteQuest(Quest.TheSurvivalistPathUnprotectedButDangerous, QuestStatus.Success) },
|
||||
{ Quest.TheTarkovShooterP2, GetQuestData(Quest.TheTarkovShooterP2).AddPrerequisiteQuest(Quest.TheTarkovShooterP1, QuestStatus.Success) },
|
||||
{ Quest.TheTarkovShooterP3, GetQuestData(Quest.TheTarkovShooterP3).AddPrerequisiteQuest(Quest.TheTarkovShooterP2, QuestStatus.Success) },
|
||||
{ Quest.TheTarkovShooterP4, GetQuestData(Quest.TheTarkovShooterP4).AddPrerequisiteQuest(Quest.TheTarkovShooterP3, QuestStatus.Success) },
|
||||
@ -171,7 +171,9 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.LendLeaseP1, GetQuestData(Quest.LendLeaseP1).AddPrerequisiteQuest(Quest.FriendFromTheWestP2, QuestStatus.Success) },
|
||||
{ Quest.LendLeaseP2, GetQuestData(Quest.LendLeaseP2).AddPrerequisiteQuest(Quest.LendLeaseP1, QuestStatus.Success) },
|
||||
{ Quest.Grenadier, GetQuestData(Quest.Grenadier).AddPrerequisiteQuest(Quest.ShakingUpTeller, QuestStatus.Success) },
|
||||
{ Quest.DecontaminationService, GetQuestData(Quest.DecontaminationService).AddPrerequisiteQuest(Quest.PrivateClinic, QuestStatus.Success) },
|
||||
{ Quest.DecontaminationService, GetQuestData(Quest.DecontaminationService)
|
||||
.AddPrerequisiteQuest(Quest.HealthCarePrivacyP5, QuestStatus.Success)
|
||||
.AddPrerequisiteQuest(Quest.PrivateClinic, QuestStatus.Success) },
|
||||
{ Quest.PeacekeepingMission, GetQuestData(Quest.PeacekeepingMission).AddPrerequisiteQuest(Quest.LendLeaseP2, QuestStatus.Success) },
|
||||
{ Quest.TheGuide, GetQuestData(Quest.TheGuide).AddPrerequisiteQuest(Quest.WetJobP6, QuestStatus.Success) },
|
||||
{ Quest.TheBloodOfWarP2, GetQuestData(Quest.TheBloodOfWarP2).AddPrerequisiteQuest(Quest.SewItGoodP1, QuestStatus.Success) },
|
||||
@ -188,7 +190,7 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.TheSurvivalistPathUnprotectedButDangerous, GetQuestData(Quest.TheSurvivalistPathUnprotectedButDangerous).AddPrerequisiteQuest(Quest.Acquaintance, QuestStatus.Success) },
|
||||
{ Quest.TheSurvivalistPathThrifty, GetQuestData(Quest.TheSurvivalistPathThrifty).AddPrerequisiteQuest(Quest.Acquaintance, QuestStatus.Success) },
|
||||
{ Quest.TheSurvivalistPathZhivchik, GetQuestData(Quest.TheSurvivalistPathZhivchik).AddPrerequisiteQuest(Quest.TheSurvivalistPathThrifty, QuestStatus.Success) },
|
||||
{ Quest.TheSurvivalistPathWoundedBeast, GetQuestData(Quest.TheSurvivalistPathWoundedBeast).AddPrerequisiteQuest(Quest.TheSurvivalistPathZhivchik, QuestStatus.Success) },
|
||||
{ Quest.TheSurvivalistPathWoundedBeast, GetQuestData(Quest.TheSurvivalistPathWoundedBeast).AddPrerequisiteQuest(Quest.TheSurvivalistPathThrifty, QuestStatus.Success) },
|
||||
{ Quest.TheSurvivalistPathToughGuy, GetQuestData(Quest.TheSurvivalistPathToughGuy).AddPrerequisiteQuest(Quest.TheSurvivalistPathWoundedBeast, QuestStatus.Success) },
|
||||
{ Quest.TheSurvivalistPathColdBlooded, GetQuestData(Quest.TheSurvivalistPathColdBlooded).AddPrerequisiteQuest(Quest.TheSurvivalistPathWoundedBeast, QuestStatus.Success) },
|
||||
{ Quest.TheSurvivalistPathEagleOwl, GetQuestData(Quest.TheSurvivalistPathEagleOwl).AddPrerequisiteQuest(Quest.TheSurvivalistPathColdBlooded, QuestStatus.Success) },
|
||||
@ -203,7 +205,10 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.HuntsmanPathJustice, GetQuestData(Quest.HuntsmanPathJustice).AddPrerequisiteQuest(Quest.HuntsmanPathTheTrophy, QuestStatus.Success) },
|
||||
{ Quest.HuntsmanPathEvilWatchman, GetQuestData(Quest.HuntsmanPathEvilWatchman).AddPrerequisiteQuest(Quest.HuntsmanPathWoodsCleaning, QuestStatus.Success) },
|
||||
{ Quest.HuntsmanPathFactoryChief, GetQuestData(Quest.HuntsmanPathFactoryChief).AddPrerequisiteQuest(Quest.HuntsmanPathWoodsKeeper, QuestStatus.Success) },
|
||||
{ Quest.HuntsmanPathEraser, GetQuestData(Quest.HuntsmanPathEraser).AddPrerequisiteQuest(Quest.HuntsmanPathFactoryChief, QuestStatus.Success) },
|
||||
{ Quest.HuntsmanPathEraser, GetQuestData(Quest.HuntsmanPathEraser)
|
||||
.AddPrerequisiteQuest(Quest.BunkerP2, QuestStatus.Success)
|
||||
.AddPrerequisiteQuest(Quest.HuntsmanPathSecuredPerimeter, QuestStatus.Success)
|
||||
},
|
||||
{ Quest.HuntsmanPathEraserP2, GetQuestData(Quest.HuntsmanPathEraserP2).AddPrerequisiteQuest(Quest.HuntsmanPathEraser, QuestStatus.Success) },
|
||||
{ Quest.Ambulance, GetQuestData(Quest.Ambulance).AddPrerequisiteQuest(Quest.TheSurvivalistPathColdBlooded, QuestStatus.Success) },
|
||||
{ Quest.CourtesyVisit, GetQuestData(Quest.CourtesyVisit).AddPrerequisiteQuest(Quest.TheSurvivalistPathToughGuy, QuestStatus.Success) },
|
||||
@ -224,10 +229,18 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.BunkerP2, GetQuestData(Quest.BunkerP2).AddPrerequisiteQuest(Quest.BunkerP1, QuestStatus.Success) },
|
||||
{ Quest.Anesthesia, GetQuestData(Quest.Anesthesia).AddPrerequisiteQuest(Quest.ShakingUpTeller, QuestStatus.Success) },
|
||||
{ Quest.Samples, GetQuestData(Quest.Samples).AddPrerequisiteQuest(Quest.Anesthesia, QuestStatus.Success) },
|
||||
{ Quest.HuntsmanPathSadist, GetQuestData(Quest.HuntsmanPathSadist).AddPrerequisiteQuest(Quest.ColleaguesP2, QuestStatus.Success) },
|
||||
{ Quest.HuntsmanPathSadist, GetQuestData(Quest.HuntsmanPathSadist)
|
||||
.AddPrerequisiteQuest(Quest.ColleaguesP2, QuestStatus.Success)
|
||||
.AddPrerequisiteQuest(Quest.RiggedGame, QuestStatus.Success)
|
||||
.AddPrerequisiteQuest(Quest.TheChemistryCloset, QuestStatus.Success)
|
||||
},
|
||||
{ Quest.ColleaguesP1, GetQuestData(Quest.ColleaguesP1).AddPrerequisiteQuest(Quest.GeneralWares, QuestStatus.Success) },
|
||||
{ Quest.ColleaguesP2, GetQuestData(Quest.ColleaguesP2).AddPrerequisiteQuest(Quest.ColleaguesP1, QuestStatus.Success) },
|
||||
{ Quest.ColleaguesP3, GetQuestData(Quest.ColleaguesP3).AddPrerequisiteQuest(Quest.ColleaguesP2, QuestStatus.Success) },
|
||||
{ Quest.ColleaguesP3, GetQuestData(Quest.ColleaguesP3)
|
||||
.AddPrerequisiteQuest(Quest.ColleaguesP2, QuestStatus.Success)
|
||||
.AddPrerequisiteQuest(Quest.RiggedGame, QuestStatus.Success)
|
||||
.AddPrerequisiteQuest(Quest.TheChemistryCloset, QuestStatus.Success)
|
||||
},
|
||||
{ Quest.RiggedGame, GetQuestData(Quest.RiggedGame).AddPrerequisiteQuest(Quest.Anesthesia, QuestStatus.Success) },
|
||||
{ Quest.TerraGroupEmployee, GetQuestData(Quest.TerraGroupEmployee).AddPrerequisiteQuest(Quest.HuntsmanPathSadist, QuestStatus.Success).AddPrerequisiteQuest(Quest.Samples, QuestStatus.Success) },
|
||||
{ Quest.TheChemistryCloset, GetQuestData(Quest.TheChemistryCloset).AddPrerequisiteQuest(Quest.ColleaguesP1, QuestStatus.Success) },
|
||||
@ -240,7 +253,10 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.InventoryCheck, GetQuestData(Quest.InventoryCheck).AddPrerequisiteQuest(Quest.FuelMatter, QuestStatus.Success) },
|
||||
{ Quest.FuelMatter, GetQuestData(Quest.FuelMatter).AddPrerequisiteQuest(Quest.OnlyBusiness, QuestStatus.Success) },
|
||||
{ Quest.DiseaseHistory, GetQuestData(Quest.DiseaseHistory).AddPrerequisiteQuest(Quest.Pharmacist, QuestStatus.Success) },
|
||||
{ Quest.Documents, GetQuestData(Quest.Documents).AddPrerequisiteQuest(Quest.NoPlaceForRenegades, QuestStatus.Success) },
|
||||
{ Quest.Documents, GetQuestData(Quest.Documents)
|
||||
.AddPrerequisiteQuest(Quest.NoPlaceForRenegades, QuestStatus.Success)
|
||||
.AddPrerequisiteQuest(Quest.IceCreamCones, QuestStatus.Success)
|
||||
},
|
||||
{ Quest.SurplusGoods, GetQuestData(Quest.SurplusGoods).AddPrerequisiteQuest(Quest.Scout, QuestStatus.Success) },
|
||||
{ Quest.ExperienceExchange, GetQuestData(Quest.ExperienceExchange).AddPrerequisiteQuest(Quest.Revision, QuestStatus.Success) },
|
||||
{ Quest.LongLine, GetQuestData(Quest.LongLine).AddPrerequisiteQuest(Quest.Supervisor, QuestStatus.Success) },
|
||||
@ -257,7 +273,7 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.MissingCargo, GetQuestData(Quest.MissingCargo).AddPrerequisiteQuest(Quest.LongRoad, QuestStatus.Success) },
|
||||
{ Quest.Counteraction, GetQuestData(Quest.Counteraction).AddPrerequisiteQuest(Quest.SpaTourP3, QuestStatus.Success) },
|
||||
{ Quest.Overpopulation, GetQuestData(Quest.Overpopulation).AddPrerequisiteQuest(Quest.SpaTourP1, QuestStatus.Success) },
|
||||
{ Quest.CommunicationDifficulties, GetQuestData(Quest.CommunicationDifficulties).AddPrerequisiteQuest(Quest.MakeUltraGreatAgain, QuestStatus.Success) },
|
||||
//{ Quest.CommunicationDifficulties, GetQuestData(Quest.CommunicationDifficulties).AddPrerequisiteQuest(Quest.MakeUltraGreatAgain, QuestStatus.Success) },
|
||||
{ Quest.EnergyCrisis, GetQuestData(Quest.EnergyCrisis).AddPrerequisiteQuest(Quest.PostmanPatP2, QuestStatus.Success) },
|
||||
{ Quest.CorporateSecrets, GetQuestData(Quest.CorporateSecrets).AddPrerequisiteQuest(Quest.FarmingP3, QuestStatus.Success) },
|
||||
{ Quest.HuntsmanPathOutcasts, GetQuestData(Quest.HuntsmanPathOutcasts).AddPrerequisiteQuest(Quest.HuntsmanPathTheTrophy, QuestStatus.Success) },
|
||||
@ -267,7 +283,7 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.CapturingOutposts, GetQuestData(Quest.CapturingOutposts).AddPrerequisiteQuest(Quest.ThePunisherP6, QuestStatus.Success) },
|
||||
{ Quest.Intimidator, GetQuestData(Quest.Intimidator).AddPrerequisiteQuest(Quest.ThePunisherP6, QuestStatus.Success) },
|
||||
{ Quest.Crisis, GetQuestData(Quest.Crisis) },
|
||||
{ Quest.MutualInterest, GetQuestData(Quest.MutualInterest) }, //TODO
|
||||
{ Quest.TheCleaner, GetQuestData(Quest.TheCleaner).AddPrerequisiteQuest(Quest.TheGuide, QuestStatus.Success) },
|
||||
{ Quest.Calibration, GetQuestData(Quest.Calibration) }, //TODO
|
||||
{ Quest.HuntsmanPathRelentless, GetQuestData(Quest.HuntsmanPathRelentless) },
|
||||
{ Quest.CompensationForDamageTrust, GetQuestData(Quest.CompensationForDamageTrust) },
|
||||
@ -280,6 +296,9 @@ namespace QuestValidator.Common.Helpers
|
||||
{ Quest.TopSecret, GetQuestData(Quest.TopSecret).AddPrerequisiteQuest(Quest.FriendFromTheWestP2, QuestStatus.Success)},
|
||||
{ Quest.Broadcast, GetQuestData(Quest.Broadcast).AddPrerequisiteQuest(Quest.FarmingP2, QuestStatus.Success)},
|
||||
{ Quest.StrayDogs, GetQuestData(Quest.StrayDogs).AddPrerequisiteQuest(Quest.HuntsmanPathOutcasts, QuestStatus.Success)},
|
||||
|
||||
{ Quest.Trophies, GetQuestData(Quest.Trophies).AddPrerequisiteQuest(Quest.TheCleaner, QuestStatus.Success)},
|
||||
{ Quest.SpecialEquipment, GetQuestData(Quest.SpecialEquipment).AddPrerequisiteQuest(Quest.Trophies, QuestStatus.Success)},
|
||||
};
|
||||
|
||||
private static QuestData GetQuestData(Quest quest)
|
||||
|
@ -63,6 +63,7 @@
|
||||
CargoXP1 = 58,
|
||||
CargoXP2 = 59,
|
||||
CargoXP3 = 60,
|
||||
CargoXP4 = 246,
|
||||
WetJobP1 = 61,
|
||||
WetJobP2 = 62,
|
||||
WetJobP3 = 63,
|
||||
@ -183,6 +184,9 @@
|
||||
HuntsmanPathFactoryChief = 178,
|
||||
HuntsmanPathEraser = 179,
|
||||
HuntsmanPathEraserP2 = 180,
|
||||
HuntsmanPathSadist = 197,
|
||||
HuntsmanPathRelentless = 220,
|
||||
HuntsmanPathOutcasts = 240,
|
||||
Ambulance = 181,
|
||||
CourtesyVisit = 182,
|
||||
ShadyBusiness = 183,
|
||||
@ -199,7 +203,6 @@
|
||||
BunkerP1 = 194,
|
||||
BunkerP2 = 195,
|
||||
Anesthesia = 196,
|
||||
HuntsmanPathSadist = 197,
|
||||
ColleaguesP1 = 198,
|
||||
ColleaguesP2 = 199,
|
||||
ColleaguesP3 = 200,
|
||||
@ -222,7 +225,6 @@
|
||||
ExperienceExchange = 217,
|
||||
LongLine = 218,
|
||||
Booze = 219,
|
||||
HuntsmanPathRelentless = 220,
|
||||
SwiftOne = 221,
|
||||
TheChoice = 222,
|
||||
NightSweep = 223,
|
||||
@ -231,7 +233,7 @@
|
||||
CapturingOutposts = 226,
|
||||
Escort = 227,
|
||||
Calibration = 228,
|
||||
MutualInterest = 229,
|
||||
// 229 free
|
||||
TextileP1Bear = 230,
|
||||
TextileP2Bear = 231,
|
||||
EasyJobPart1 = 232,
|
||||
@ -242,13 +244,11 @@
|
||||
SeasideVacation = 237,
|
||||
CorporateSecrets = 238,
|
||||
Counteraction = 239,
|
||||
HuntsmanPathOutcasts = 240,
|
||||
MissingCargo = 241,
|
||||
RevisionPart2 = 242,
|
||||
OurOwnLand = 243,
|
||||
TheHermit = 244,
|
||||
LongRoad = 245,
|
||||
CargoXP4 = 246,
|
||||
LostContact = 247,
|
||||
ActionTest = 248,
|
||||
CompensationForDamageTrust = 249,
|
||||
@ -261,5 +261,8 @@
|
||||
TopSecret = 256,
|
||||
Broadcast = 257,
|
||||
StrayDogs = 258,
|
||||
Trophies = 259,
|
||||
TheCleaner = 260,
|
||||
SpecialEquipment = 261
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user