Update quest prereqs + add ability to merge multiple quest dumps

This commit is contained in:
Chomp 2022-09-07 08:51:30 +01:00
parent 463e403ab2
commit a28b4c6ede
6 changed files with 59088 additions and 50371 deletions

File diff suppressed because it is too large Load Diff

View File

@ -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,8 +29,14 @@ 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
@ -37,7 +44,7 @@ namespace GenerateQuestFile
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>

View File

@ -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;

View File

@ -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);

View File

@ -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)

View File

@ -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
}
}