2021-09-15 16:23:41 +01:00

571 lines
56 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using QuestValidator.Common.Models;
using QuestValidator.Models;
using QuestValidator.Models.Other;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.Json;
namespace AssortGenerator.Common.Helpers
{
public static class QuestHelper
{
private static readonly Dictionary<string, string> questNames = new Dictionary<string, string>
{
{ "5936d90786f7742b1420ba5b", "Debut" },
{ "5936da9e86f7742d65037edf", "Checking"},
{ "59674cd986f7744ab26e32f2", "Shootout picnic"},
{ "59674eb386f774539f14813a", "Delivery from the past"},
{ "5967530a86f77462ba22226b", "Bad rep evidence"},
{ "59675d6c86f7740a842fc482", "Ice cream cones"},
{ "59675ea386f77414b32bded2", "Postman Pat"},
{ "596760e186f7741e11214d58", "Postman Pat, p. 2"},
{ "5967725e86f774601a446662", "Shaking up teller"},
{ "5967733e86f774602332fc84", "Shortage"},
{ "59689ee586f7740d1570bbd5", "Sanitary Standards, p. 1"},
{ "59689fbd86f7740d137ebfc4", "Operation Aquarius"},
{ "5968eb3186f7741dde183a4d", "Operation Aquarius, p. 2"},
{ "5969f90786f77420d2328015", "Painkiller"},
{ "5969f9e986f7741dde183a50", "Pharmacist"},
{ "596a0e1686f7741ddf17dbee", "Supply plans"},
{ "596a101f86f7741ddb481582", "Kind of sabotage" },
{ "596a1e6c86f7741ddc2d3206", "General wares"},
{ "596a204686f774576d4c95de", "Sanitary Standards, p. 2"},
{ "596a218586f77420d232807c", "Car repair"},
{ "596b36c586f77450d6045ad2", "Supplier"},
{ "596b43fb86f77457ca186186", "The Extortionist"},
{ "596b455186f77457cb50eccb", "Stirrup"},
{ "5979ed3886f77431307dc512", "Whats on the flash drive?"},
{ "5979eee086f774311955e614", "Golden swag"},
{ "5979f8bb86f7743ec214c7a6", "Polikhim hobo"},
{ "5979f9ba86f7740f6c3fe9f2", "Chemical, p.1"},
{ "597a0b2986f77426d66c0633", "Chemical, p. 2"},
{ "597a0e5786f77426d66c0636", "Chemical, p. 3"},
{ "597a0f5686f774273b74f676", "Chemical, p. 4"},
{ "597a160786f77477531d39d2", "Out of curiosity"},
{ "597a171586f77405ba6887d3", "Big customer"},
{ "59c124d686f774189b3c843f", "BP depot"},
{ "59c50a9e86f7745fef66f4ff", "The Punisher"},
{ "59c50c8886f7745fed3193bf", "The Punisher. Part 2."},
{ "59c512ad86f7741f0d09de9b", "The Punisher. Part 3."},
{ "59c9392986f7742f6923add2", "Trust regain"},
{ "59c93e8e86f7742a406989c4", "Loyalty buyout"},
{ "59ca1a6286f774509a270942", "No offence"},
{ "59ca264786f77445a80ed044", "The Punisher. Part 4."},
{ "59ca29fb86f77445ab465c87", "The Punisher. Part 5."},
{ "59ca2eb686f77445a80ed049", "The Punisher. Part 6."},
{ "59f9da6786f774714230d751", ""},
{ "5a03153686f77442d90e2171", "Spa Tour. Part 1"},
{ "5a03173786f77451cb427172", "Spa Tour. Part 2"},
{ "5a0327ba86f77456b9154236", "Spa Tour. Part 3" },
{ "5a03296886f774569778596a", "Spa Tour. Part 4"},
{ "5a0449d586f77474e66227b7", "Spa Tour. Part 5"},
{ "5a27b75b86f7742e97191958", "Fishing Gear"},
{ "5a27b7a786f774579c3eb376", "Tigr Safari"},
{ "5a27b7d686f77460d847e6a6", " Scrap Metal"},
{ "5a27b80086f774429a5d7e20", "Eagle Eye"},
{ "5a27b87686f77460de0252a8", "Humanitarian Supplies"},
{ "5a27b9de86f77464e5044585", "The Cult. Part 1"},
{ "5a27ba1c86f77461ea5a3c56", "The Cult. Part 2"},
{ "5a27ba9586f7741b543d8e85", "Spa Tour. Part 6"},
{ "5a27bafb86f7741c73584017", "Spa Tour. Part 7"},
{ "5a27bb1e86f7741f27621b7e", "Cargo X. Part 1"},
{ "5a27bb3d86f77411ea361a21", "Cargo X. Part 2"},
{ "5a27bb5986f7741dfb660900", "Cargo X. Part 3"},
{ "5a27bb8386f7741c770d2d0a", "Wet Job. Part 1"},
{ "5a27bbf886f774333a418eeb", "Wet Job. Part 2"},
{ "5a27bc1586f7741f6d40fa2f", "Wet Job. Part 3"},
{ "5a27bc3686f7741c73584026", "Wet Job. Part 4"},
{ "5a27bc6986f7741c7358402b", "Wet Job. Part 5"},
{ "5a27bc8586f7741b543d8ea4", "Wet Job. Part 6"},
{ "5a27c99a86f7747d2c6bdd8e", "Friend from the West. Part 1"},
{ "5a27d2af86f7744e1115b323", "Friend from the West. Part 2"},
{ "5a5642ce86f77445c63c3419", "Hippocratic Vow"},
{ "5a68661a86f774500f48afb0", "Health Care Privacy. Part 1"},
{ "5a68663e86f774501078f78a", "Health Care Privacy. Part 2"},
{ "5a68665c86f774255929b4c7", "Health Care Privacy. Part 3"},
{ "5a68667486f7742607157d28", "Health Care Privacy. Part 4"},
{ "5a68669a86f774255929b4d4", "Health Care Privacy. Part 5"},
{ "5ac23c6186f7741247042bad", "Gunsmith. Part 1"},
{ "5ac2426c86f774138762edfe", "Gunsmith. Part 2"},
{ "5ac2428686f77412450b42bf", "Gunsmith. Part 3"},
{ "5ac242ab86f77412464f68b4", "Gunsmith. Part 5"},
{ "5ac244c486f77413e12cf945", "Gunsmith. Part 6"},
{ "5ac244eb86f7741356335af1", "Gunsmith. Part 4"},
{ "5ac345dc86f774288030817f", "Farming. Part 1" },
{ "5ac3460c86f7742880308185", "Farming. Part 2" },
{ "5ac3462b86f7741d6118b983", "Farming. Part 3" },
{ "5ac3464c86f7741d651d6877", "Farming. Part 4" },
{ "5ac3467986f7741d6224abc2", "Signal. Part 1" },
{ "5ac346a886f7744e1b083d67", "Signal. Part 2" },
{ "5ac346cf86f7741d63233a02", "Signal. Part 3" },
{ "5ac346e886f7741d6118b99b", "Signal. Part 4" },
{ "5ac3475486f7741d6224abd3", "Bad habit" },
{ "5ac3477486f7741d651d6885", "Scout" },
{ "5ac3479086f7742880308199", "Insider" },
{ "5ae3267986f7742a413592fe", "Gunsmith. Part 7" },
{ "5ae3270f86f77445ba41d4dd", "Gunsmith. Part 8" },
{ "5ae3277186f7745973054106", "Gunsmith. Part 9" },
{ "5ae327c886f7745c7b3f2f3f", "Gunsmith. Part 10" },
{ "5ae3280386f7742a41359364", "Gunsmith. Part 11" },
{ "5ae448a386f7744d3730fff0", "Only business" },
{ "5ae448bf86f7744d733e55ee", "Make ULTRA Great Again" },
{ "5ae448e586f7744dcf0c2a67", "Big sale" },
{ "5ae448f286f77448d73c0131", "The Blood of War" },
{ "5ae4490786f7744ca822adcc", "Dressed to kill" },
{ "5ae4493486f7744efa289417", "Database. Part 1" },
{ "5ae4493d86f7744b8e15aa8f", "Database. Part 2" },
{ "5ae4495086f77443c122bc40", "Sew it good. Part 1" },
{ "5ae4495c86f7744e87761355", "Sew it good. Part 2" },
{ "5ae4496986f774459e77beb6", "Sew it good. Part 3" },
{ "5ae4497b86f7744cf402ed00", "Sew it good. Part 4" },
{ "5ae4498786f7744bde357695", "The key to success" },
{ "5ae4499a86f77449783815db", "Charisma brings success" },
{ "5ae449a586f7744bde357696", "No fuss needed" },
{ "5ae449b386f77446d8741719", "Gratitude" },
{ "5ae449c386f7744bde357697", "Sales Night" },
{ "5ae449d986f774453a54a7e1", "Supervisor" },
{ "5b47749f86f7746c5d6a5fd4", "Gunsmith. Part 12" },
{ "5b47799d86f7746c5d6a5fd8", "Gunsmith. Part 13" },
{ "5b477b6f86f7747290681823", "Gunsmith. Part 14" },
{ "5b477f7686f7744d1b23c4d2", "Gunsmith. Part 15" },
{ "5b47825886f77468074618d3", "Gunsmith. Part 16" },
{ "5b47876e86f7744d1c353205", "The Blood of War Part 2" },
{ "5b47891f86f7744d1b23c571", "Living high is not a crime" },
{ "5b478b1886f7744d1b23c57d", "Hot delivery"},
{ "5b478d0f86f7744d190d91b5", "Minibus"},
{ "5b478eca86f7744642012254", "Vitamins p.1"},
{ "5b478ff486f7744d184ecbbf", "Vitamins p. 2"},
{ "5b47926a86f7747ccc057c15", "Informed means armed"},
{ "5b4794cb86f774598100d5d4", "Lend lease pt 1"},
{ "5b4795fb86f7745876267770", "Chumming"},
{ "5bc4776586f774512d07cf05", "The Tarkov shooter Part 1"},
{ "5bc479e586f7747f376c7da3", "The Tarkov shooter Part 2"},
{ "5bc47dbf86f7741ee74e93b9", "The Tarkov shooter Part 3" },
{ "5bc480a686f7741af0342e29", "The Tarkov shooter Part 4" },
{ "5bc4826c86f774106d22d88b", "The Tarkov shooter Part 5" },
{ "5bc4836986f7740c0152911c", "The Tarkov shooter Part 6" },
{ "5bc4856986f77454c317bea7", "The Tarkov shooter Part 7" },
{ "5bc4893c86f774626f5ebf3e", "The Tarkov shooter Part 8" },
{ "5c0bbaa886f7746941031d82", "Bullshit" },
{ "5c0bc91486f7746ab41857a2", "Silent caliber" },
{ "5c0bd01e86f7747cdd799e56", "Insomnia" },
{ "5c0bd94186f7747a727f09b2", "Test drive. Pt. 1" },
{ "5c0bdb5286f774166e38eed4", "Flint" },
{ "5c0bde0986f77479cf22c2f8", "A Shooter Born in Heaven" },
{ "5c0be13186f7746f016734aa", "Psycho Sniper" },
{ "5c0be5fc86f774467a116593", "Private clinic" },
{ "5c0d0d5086f774363760aef2", "Athlete" },
{ "5c0d0f1886f77457b8210226", "Lend lease. Part 2" },
{ "5c0d190cd09282029f5390d8", "Grenadier" },
{ "5c0d1c4cd0928202a02a6f5c", "Decontamination service" },
{ "5c0d4c12d09282029f539173", "Peacekeeping mission" },
{ "5c0d4e61d09282029f53920e", "The guide" },
{ "5c10f94386f774227172c572", "The Blood of War Pt. 3" },
{ "5c1128e386f7746565181106", "Fertilizers" },
{ "5c112d7e86f7740d6f647486", "Scavenger" },
{ "5c1141f386f77430ff393792", "Living high is not a crime Pt.2" },
{ "5c1234c286f77406fa13baeb", "Setup" },
{ "5c12452c86f7744b83469073", "Perfect mediator" },
{ "5c139eb686f7747878361a6f", "Import" },
{ "5c51aac186f77432ea65c552", "Collector" },
{ "5d2495a886f77425cd51e403", "Introduction" },
{ "5d24b81486f77439c92d6ba8", "Acquaintance" },
{ "5d25aed386f77442734d25d2", "The survivalist path. Unprotected, but dangerous"},
{ "5d25b6be86f77444001e1b89", "The survivalist path. Thrifty" },
{ "5d25bfd086f77442734d3007", "The survivalist path. Zhivchik" },
{ "5d25c81b86f77443e625dd71", "The survivalist path. Wounded beast" },
{ "5d25cf2686f77443e75488d4", "The survivalist path. Tough guy" },
{ "5d25d2c186f77443e35162e5", "The survivalist path. Cold blooded" },
{ "5d25dae186f77443e55d2f78", "The survivalist path. Zatoichi" },
{ "5d25e29d86f7740a22516326", "The survivalist path. Eagle-owl" },
{ "5d25e2a986f77409dd5cdf2a", "The survivalist path. Combat medic" },
{ "5eaaaa7c93afa0558f3b5a1c", "The survivalist path. Junkie" },
{ "5d25e2b486f77409de05bba0", "Huntsman path. Secured perimeter" },
{ "5d25e2c386f77443e7549029", "Huntsman path. The trophy" },
{ "5d25e2cc86f77443e47ae019", "Huntsman path. Woods cleaning" },
{ "5d25e2d886f77442734d335e", "Huntsman path. Controller" },
{ "5d25e2e286f77444001e2e48", "Huntsman path. Sell-out" },
{ "5d25e2ee86f77443e35162ea", "Huntsman path. Woods keeper" },
{ "5d25e43786f7740a212217fa", "Huntsman path. Justice" },
{ "5d25e44386f77409453bce7b", "Huntsman path. Evil watchman" },
{ "60c0c018f7afb4354815096a", "Huntsman Path - Factory Chief"},
{ "5d25e44f86f77443e625e385", "Huntsman path. Eraser" },
{ "5d25e45e86f77408251c4bfa", "Huntsman path. Eraser pt. 2" },
{ "5d25e46e86f77409453bce7c", "Ambulance" },
{ "5d25e48186f77443e625e386", "Courtesy visit" },
{ "5d25e48d86f77408251c4bfb", "Shady business" },
{ "5d25e4ad86f77443e625e387", "Nostalgia" },
{ "5d25e4b786f77408251c4bfc", "Fishing place" },
{ "5d25e4ca86f77409dd5cdf2c", "Hunting trip" },
{ "5d25e4d586f77443e625e388", "Reserv" },
{ "5d4bec3486f7743cac246665", "Regulated materials"},
{ "5d6fb2c086f77449da599c24", "An apple a day - keeps the doctor away"},
{ "5d6fbc2886f77449d825f9d3", "Mentor"},
{ "5dc53acb86f77469c740c893", "The stylish one"},
{ "5e381b0286f77420e3417a74", "Textile. Part 1"},
{ "5e4d515e86f77438b2195244", "Textile. Part 2"},
{ "5ede55112c95834b583f052a", "Bunker. Part 1"},
{ "5ede567cfa6dc072ce15d6e3", "Bunker. Part 2"},
{ "5eda19f0edce541157209cee", "Anesthesia"},
{ "5edab4b1218d181e29451435", "Huntsman path. Sadist"},
{ "5edab736cc183c769d778bc2", "Colleagues. Pt.1"},
{ "5edaba7c0c502106f869bc02", "Colleagues. Pt.2"},
{ "5edac34d0bb72a50635c2bfa", "Colleagues. Pt.3"},
{ "5edabd13218d181e29451442", "Rigged game"},
{ "5edac020218d181e29451446", "Samples"},
{ "5edac63b930f5454f51e128b", "TerraGroup employee"},
{ "5f04886a3937dc337a6b8238", "The chemistry closet"},
{ "5fd9fad9c1ce6b1a3b486d00", "Search Mission"},
{ "600302d73b897b11364cd161", "Hunter"},
{ "6086c852c945025d41566124", "Revision"},
{ "608a768d82e40b3c727fd17d", "Pest control"},
{ "6089736efa70fc097863b8f6", "Back door"},
{ "6089743983426423753cd58a", "Safe corridor"},
{ "608974af4b05530f55550c21", "Inventory check"},
{ "608974d01a66564e74191fc0", "Fuel matter"},
{ "60896bca6ee58f38c417d4f2", "No place for renegades"},
{ "60896e28e4a85c72ef3fa301", "Disease history"},
{ "60896b7bfa70fc097863b8f5", "Documents"},
{ "6089732b59b92115597ad789", "Surplus goods"},
{ "60896888e4a85c72ef3fa300", "Experience exchange"},
{ "60e71dc0a94be721b065bbfc", "Long Line" },
{ "60e71dc67fcf9c556f325056", "Booze" },
{ "60e71e8ed54b755a3b53eb67", "Huntsman Path - Relentless" },
{ "60e729cf5698ee7b05057439", "Swift One" },
{ "60effd818b669d08a35bfad5", "The Choice" },
{ "60e71c11d54b755a3b53eb65", "Night Sweep" },
{ "60e71bb4e456d449cd47ca75", "Intimidator"},
{ "60e71c48c1bfa3050473b8e5", "Crisis"},
{ "60e71b9bbd90872cb85440f3", "Capturing Outposts" },
{ "60e71b62a0beca400d69efc4", "Escort" },
{ "60e71d23c1bfa3050473b8e6", "Calibration" },
{ "60e71c9ad54b755a3b53eb66", "Mutual Interest" }
};
// Quest to lookup is key, previous quest is PreceedingQuest value
private static readonly Dictionary<string, QuestRequirement> questWithPreceedingQuest = new Dictionary<string, QuestRequirement>
{
//{ "5936d90786f7742b1420ba5b", "" }, // Debut
{ "5936da9e86f7742d65037edf", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5936d90786f7742b1420ba5b"}}, // checking, debut
{ "59674cd986f7744ab26e32f2", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5936da9e86f7742d65037edf"}}, //Shootout picnic, checking
{ "59674eb386f774539f14813a", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5936da9e86f7742d65037edf"}}, //Delivery from the past, checking
{ "5967530a86f77462ba22226b", new QuestRequirement{QuestStatus = 4, PreceedingQuest="59c124d686f774189b3c843f"}}, // Bad rep evidence, bp depot
{ "59675d6c86f7740a842fc482", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5967530a86f77462ba22226b"}}, // Ice cream cones, Bad rep evidence
{ "59675ea386f77414b32bded2", new QuestRequirement{QuestStatus = 4, PreceedingQuest="59675d6c86f7740a842fc482"}}, // Postman Pat pt 1, ice cream cones
{ "596760e186f7741e11214d58", new QuestRequirement{QuestStatus = 4, PreceedingQuest="59675ea386f77414b32bded2" } }, // Postman Pat, p. 2
{ "5967725e86f774601a446662", new QuestRequirement{QuestStatus = 4, PreceedingQuest="59675d6c86f7740a842fc482"} }, // Shaking up teller, ice cream cones
{ "5967733e86f774602332fc84", new QuestRequirement{QuestStatus = 4, PreceedingQuest="" } }, // Shortage
{ "59689ee586f7740d1570bbd5", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5967733e86f774602332fc84"}}, //Sanitary Standards, pt1, Shortage
{ "59689fbd86f7740d137ebfc4", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5967733e86f774602332fc84"}}, // Operation Aquarius pt1, Shortage
{ "5968eb3186f7741dde183a4d", new QuestRequirement{QuestStatus = 4, PreceedingQuest="59689fbd86f7740d137ebfc4"}}, // Operation Aquarius, pt2, Operation Aquarius pt1
{ "5969f90786f77420d2328015", new QuestRequirement{QuestStatus = 4, PreceedingQuest="596a204686f774576d4c95de"}}, // Painkiller, sanitary standards pt2
{ "5969f9e986f7741dde183a50", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5969f90786f77420d2328015"}}, // Pharmacist, Painkiller
{ "596a0e1686f7741ddf17dbee", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5969f9e986f7741dde183a50"}}, // Supply plans, Pharmacist
{ "596a101f86f7741ddb481582", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5969f9e986f7741dde183a50"}}, //Kind of sabotage, Pharmacist
{ "596a1e6c86f7741ddc2d3206", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5969f9e986f7741dde183a50"}}, // General wares, Pharmacist
{ "596a204686f774576d4c95de", new QuestRequirement{QuestStatus = 4, PreceedingQuest="59689ee586f7740d1570bbd5"}}, // Sanitary Standards, pt2
{ "596a218586f77420d232807c", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5969f9e986f7741dde183a50"} } , // Car repair
{ "596b36c586f77450d6045ad2", new QuestRequirement{QuestStatus = 4, PreceedingQuest=""} }, // Supplier
{ "596b43fb86f77457ca186186", new QuestRequirement{QuestStatus = 4, PreceedingQuest="596b36c586f77450d6045ad2"} }, // The Extortionist, Supplier
{ "596b455186f77457cb50eccb", new QuestRequirement{QuestStatus = 4, PreceedingQuest="596b43fb86f77457ca186186"}}, // Stirrup, The Extortionist
{ "5979ed3886f77431307dc512", new QuestRequirement{QuestStatus = 4, PreceedingQuest="596b43fb86f77457ca186186"}}, // Whats on the flash drive?, The Extortionist
{ "5979eee086f774311955e614", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5979ed3886f77431307dc512"} }, // Golden swag, Whats on the flash drive?
{ "5979f8bb86f7743ec214c7a6", new QuestRequirement{QuestStatus = 2, PreceedingQuest="5979f9ba86f7740f6c3fe9f2"} }, // Polikhim hobo
{ "5979f9ba86f7740f6c3fe9f2", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5979eee086f774311955e614"}}, // Chemical pt1, Golden swag
{ "597a0b2986f77426d66c0633", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5979f9ba86f7740f6c3fe9f2"}}, // Chemical pt2, Chemical, p.1
{ "597a0e5786f77426d66c0636", new QuestRequirement{QuestStatus = 4, PreceedingQuest="597a0b2986f77426d66c0633"}}, // Chemical pt3, Chemical, p. 2
{ "597a0f5686f774273b74f676", new QuestRequirement{QuestStatus = 4, PreceedingQuest="597a0e5786f77426d66c0636"}}, // Chemical pt4, Chemical, p. 3
{ "597a160786f77477531d39d2", new QuestRequirement{QuestStatus = 4, PreceedingQuest="597a0e5786f77426d66c0636"}}, // Out of curiosity, Chemical, p. 3
{ "597a171586f77405ba6887d3", new QuestRequirement{QuestStatus = 4, PreceedingQuest="597a0e5786f77426d66c0636"}}, // Big customer, Chemical, p. 3
{ "59c124d686f774189b3c843f", new QuestRequirement{QuestStatus = 4, PreceedingQuest="59674eb386f774539f14813a"}}, // bp depot, delivery from the past
{ "59c50a9e86f7745fef66f4ff", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5967725e86f774601a446662"}}, // The Punisher part 1, shaking up teller
{ "59c50c8886f7745fed3193bf", new QuestRequirement{QuestStatus = 4, PreceedingQuest="59c50a9e86f7745fef66f4ff"}}, // The Punisher. Part 2
{ "59c512ad86f7741f0d09de9b", new QuestRequirement{QuestStatus = 4, PreceedingQuest="59c50c8886f7745fed3193bf"}}, // The Punisher. Part 3,
{ "59c9392986f7742f6923add2", new QuestRequirement{QuestStatus = 4, PreceedingQuest="597a0f5686f774273b74f676"}}, // Trust regain, chemical p4
{ "59c93e8e86f7742a406989c4", new QuestRequirement{QuestStatus = 4, PreceedingQuest="597a0e5786f77426d66c0636"}}, // Loyalty buyout, Chemical, pt3
{ "59ca1a6286f774509a270942", new QuestRequirement{QuestStatus = 5, PreceedingQuest="597a0f5686f774273b74f676"}}, // No offence, Chemical pt4
{ "59ca264786f77445a80ed044", new QuestRequirement{QuestStatus = 4, PreceedingQuest="59c512ad86f7741f0d09de9b"}}, // The Punisher. Part 4, The Punisher. Part 3
{ "59ca29fb86f77445ab465c87", new QuestRequirement{QuestStatus = 4, PreceedingQuest="59ca264786f77445a80ed044"}}, // The Punisher. Part 5, The Punisher. Part 4
{ "59ca2eb686f77445a80ed049", new QuestRequirement{QuestStatus = 4, PreceedingQuest="59ca29fb86f77445ab465c87"}}, // The Punisher. Part 6, The Punisher. Part 5
{ "59f9da6786f774714230d751", new QuestRequirement{QuestStatus = 4, PreceedingQuest=""} }, // no idea
{ "5a03153686f77442d90e2171", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27b87686f77460de0252a8"}}, // Spa Tour. Part 1, Humanitarian Supplies
{ "5a03173786f77451cb427172", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a03153686f77442d90e2171"}}, // Spa Tour. Part 2, Spa Tour. Part 1
{ "5a0327ba86f77456b9154236", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a03173786f77451cb427172"}},// Spa Tour. Part 3, Spa Tour. Part 2
{ "5a03296886f774569778596a", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a0327ba86f77456b9154236"}}, // Spa Tour. Part 4, Spa Tour. Part 3
{ "5a0449d586f77474e66227b7", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a03296886f774569778596a"}}, // Spa Tour. Part 5, Spa Tour. Part 4
{ "5a27b75b86f7742e97191958", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27d2af86f7744e1115b323"}}, // Fishing Gear, Friend from the west part 2
{ "5a27b7a786f774579c3eb376", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27b75b86f7742e97191958"}}, // Tigr Safari, Fishing Gear
{ "5a27b7d686f77460d847e6a6", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27b7a786f774579c3eb376"}}, // Scrap Metal, Tigr Safari
{ "5a27b80086f774429a5d7e20", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27b7d686f77460d847e6a6"}}, // Eagle Eye, Scrap Metal
{ "5a27b87686f77460de0252a8", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27b80086f774429a5d7e20"}}, // Humanitarian Supplies, Eagle Eye
{ "5a27b9de86f77464e5044585", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27b87686f77460de0252a8"}}, // The Cult. Part 1, Humanitarian Supplies
{ "5a27ba1c86f77461ea5a3c56", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27b9de86f77464e5044585"}}, // The Cult. Part 2, The Cult. Part 1
{ "5a27ba9586f7741b543d8e85", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a0449d586f77474e66227b7"}}, // Spa Tour. Part 6, Spa Tour. Part 5
{ "5a27bafb86f7741c73584017", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27ba9586f7741b543d8e85"}}, // Spa Tour. Part 7, Spa Tour. Part 6
{ "5a27bb1e86f7741f27621b7e", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27bafb86f7741c73584017"}}, // Cargo X. Part 1, Spa Tour. Part 7
{ "5a27bb3d86f77411ea361a21", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27bb1e86f7741f27621b7e"}}, // Cargo X. Part 2, Cargo X. Part 1
{ "5a27bb5986f7741dfb660900", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27bb3d86f77411ea361a21"}}, // Cargo X. Part 3, Cargo X. Part 2
{ "5a27bb8386f7741c770d2d0a", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27bafb86f7741c73584017"}}, // Wet Job. Part 1, Spa Tour. Part 7
{ "5a27bbf886f774333a418eeb", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27bb8386f7741c770d2d0a"}}, // Wet Job. Part 2, Wet Job. Part 1
{ "5a27bc1586f7741f6d40fa2f", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27bbf886f774333a418eeb"}}, // Wet Job. Part 3, Wet Job. Part 2
{ "5a27bc3686f7741c73584026", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27bc1586f7741f6d40fa2f"}}, // Wet Job. Part 4, Wet Job. Part 3
{ "5a27bc6986f7741c7358402b", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27bc3686f7741c73584026"}}, // Wet Job. Part 5, Wet Job. Part 4
{ "5a27bc8586f7741b543d8ea4", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27bc6986f7741c7358402b"}}, // Wet Job. Part 6, Wet Job. Part 5
{ "5a27c99a86f7747d2c6bdd8e", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5979eee086f774311955e614"}}, // Friend from the West. Part 1, golden swag
{ "5a27d2af86f7744e1115b323", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27c99a86f7747d2c6bdd8e"}}, // Friend from the West. Part 2, Friend from the West. Part 1
{ "5a5642ce86f77445c63c3419", new QuestRequirement{QuestStatus = 4, PreceedingQuest=""} }, // Hippocratic Oath,
{ "5a68661a86f774500f48afb0", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5969f9e986f7741dde183a50"}}, // Health Care Privacy. Part 1,
{ "5a68663e86f774501078f78a", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a68661a86f774500f48afb0"}}, // Health Care Privacy. Part 2, Health Care Privacy. Part 1
{ "5a68665c86f774255929b4c7", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a68663e86f774501078f78a"}}, // Health Care Privacy. Part 3, Health Care Privacy. Part 2
{ "5a68667486f7742607157d28", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a68665c86f774255929b4c7"}}, // Health Care Privacy. Part 4, Health Care Privacy. Part 3
{ "5a68669a86f774255929b4d4", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a68667486f7742607157d28"}}, // Health Care Privacy. Part 5, Health Care Privacy. Part 4
{ "5ac23c6186f7741247042bad", new QuestRequirement{QuestStatus = 4, PreceedingQuest=""}}, // Gunsmith. Part 1
{ "5ac2426c86f774138762edfe", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac23c6186f7741247042bad"}}, // Gunsmith. Part 2, Gunsmith. Part 1
{ "5ac2428686f77412450b42bf", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac2426c86f774138762edfe"}}, // Gunsmith. Part 3, Gunsmith. Part 2
{ "5ac242ab86f77412464f68b4", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac244eb86f7741356335af1"}}, // Gunsmith. Part 5, Gunsmith. Part 4
{ "5ac244c486f77413e12cf945", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac242ab86f77412464f68b4"}}, // Gunsmith. Part 6, Gunsmith. Part 5
{ "5ac244eb86f7741356335af1", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac2428686f77412450b42bf"}},// Gunsmith. Part 4, Gunsmith. Part 3
{ "5ac345dc86f774288030817f", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac23c6186f7741247042bad" }}, // Farming. Part 1, Gunsmith. Part 1
{ "5ac3460c86f7742880308185", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac345dc86f774288030817f" }}, // Farming. Part 2, Farming. Part 1
{ "5ac3462b86f7741d6118b983", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac3460c86f7742880308185" }}, // Farming. Part 3, Farming. Part 2
{ "5ac3464c86f7741d651d6877", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac3462b86f7741d6118b983" }}, // Farming. Part 4, Farming. Part 3
{ "5ac3467986f7741d6224abc2", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac2426c86f774138762edfe"}}, // Signal. Part 1, Gunsmith. Part 2
{ "5ac346a886f7744e1b083d67", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac3467986f7741d6224abc2"}}, // Signal. Part 2, Signal. Part 1
{ "5ac346cf86f7741d63233a02", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac346a886f7744e1b083d67"}}, // Signal. Part 3, Signal. Part 2
{ "5ac346e886f7741d6118b99b", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac346cf86f7741d63233a02"}}, // Signal. Part 4, Signal. Part 3
{ "5ac3475486f7741d6224abd3", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac3460c86f7742880308185"}}, // Bad habit, Farming. Part 2
{ "5ac3477486f7741d651d6885", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac346a886f7744e1b083d67"}}, // Scout, Signal. Part 2
{ "5ac3479086f7742880308199", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac3467986f7741d6224abc2"}}, // Insider, Signal. Part 1
{ "5ae3267986f7742a413592fe", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac244c486f77413e12cf945"}}, // Gunsmith. Part 7, Gunsmith. Part 6
{ "5ae3270f86f77445ba41d4dd", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae3267986f7742a413592fe"}}, // Gunsmith. Part 8, Gunsmith. Part 7
{ "5ae3277186f7745973054106", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae3270f86f77445ba41d4dd"}}, // Gunsmith. Part 9, Gunsmith. Part 8
{ "5ae327c886f7745c7b3f2f3f", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae3277186f7745973054106"}}, // Gunsmith. Part 10, Gunsmith. Part 9
{ "5ae3280386f7742a41359364", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae327c886f7745c7b3f2f3f"}}, // Gunsmith. Part 11, Gunsmith. Part 10
{ "5ae448a386f7744d3730fff0", new QuestRequirement{QuestStatus = 4, PreceedingQuest=""}}, // Only business
{ "5ae448bf86f7744d733e55ee", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae448a386f7744d3730fff0"}}, // Make ULTRA Great Again, Only business
{ "5ae448e586f7744dcf0c2a67", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae448a386f7744d3730fff0"}}, // Big sale, Only business
{ "5ae448f286f77448d73c0131", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae448e586f7744dcf0c2a67"}}, // The Blood of War pt 1, Big sale
{ "5ae4490786f7744ca822adcc", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae448f286f77448d73c0131"}}, // Dressed to kill, The Blood of War pt 1
{ "5ae4493486f7744efa289417", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae448e586f7744dcf0c2a67"}}, // Database. Part 1, Big sale
{ "5ae4493d86f7744b8e15aa8f", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae4493486f7744efa289417"}}, // Database. Part 2, Database. Part 1
{ "5ae4495086f77443c122bc40", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae4493d86f7744b8e15aa8f"}}, // Sew it good. Part 1, Database. Part 2
{ "5ae4495c86f7744e87761355", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae4495086f77443c122bc40"}}, // Sew it good. Part 2, Sew it good. Part 1
{ "5ae4496986f774459e77beb6", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae4495c86f7744e87761355"}}, // Sew it good. Part 3, Sew it good. Part 2
{ "5ae4497b86f7744cf402ed00", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae4496986f774459e77beb6"}}, // Sew it good. Part 4, Sew it good. Part 3
{ "5ae4498786f7744bde357695", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae4495c86f7744e87761355"}}, // The key to success, Sew it good. Part 2
{ "5ae4499a86f77449783815db", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae4497b86f7744cf402ed00"}}, // Charisma brings success, Sew it good. Part 4
{ "5ae449a586f7744bde357696", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae4498786f7744bde357695"}}, // No fuss needed, The key to success
{ "5ae449b386f77446d8741719", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae4490786f7744ca822adcc"}}, // Gratitude, Dressed to kill + Database. Part 2 TODO
{ "5ae449c386f7744bde357697", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae449b386f77446d8741719"}}, // Sales Night, Gratitude
{ "5ae449d986f774453a54a7e1", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae449c386f7744bde357697"}}, // Supervisor, Sales Night
{ "5b47749f86f7746c5d6a5fd4", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae3280386f7742a41359364"}}, // Gunsmith. Part 12, Gunsmith. Part 11
{ "5b47799d86f7746c5d6a5fd8", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5b47749f86f7746c5d6a5fd4"}}, // Gunsmith. Part 13, Gunsmith. Part 12
{ "5b477b6f86f7747290681823", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5b47799d86f7746c5d6a5fd8"}}, // Gunsmith. Part 14, Gunsmith. Part 13
{ "5b477f7686f7744d1b23c4d2", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5b477b6f86f7747290681823"}}, // Gunsmith. Part 15, Gunsmith. Part 14
{ "5b47825886f77468074618d3", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5b477f7686f7744d1b23c4d2"}}, // Gunsmith. Part 16, Gunsmith. Part 15
{ "5b47876e86f7744d1c353205", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae4495086f77443c122bc40"}}, // The Blood of War Part 2, Sew it good. Part 1
{ "5b47891f86f7744d1b23c571", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae4496986f774459e77beb6"}}, // Living high is not a crime, Sew it good. Part 3
{ "5b478b1886f7744d1b23c57d", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae449b386f77446d8741719"}}, // Hot delivery, Gratitude
{ "5b478d0f86f7744d190d91b5", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae4493d86f7744b8e15aa8f"}}, // Minibus, Database. Part 2
{ "5b478eca86f7744642012254", new QuestRequirement{QuestStatus = 4, PreceedingQuest="597a0e5786f77426d66c0636"}}, // Vitamins pt1, Chemical pt3
{ "5b478ff486f7744d184ecbbf", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5b478eca86f7744642012254"}}, // Vitamins pt2, Vitamins pt1
{ "5b47926a86f7747ccc057c15", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27d2af86f7744e1115b323"}}, // Informed means armed, friend from the west part 2
{ "5b4794cb86f774598100d5d4", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27d2af86f7744e1115b323"}}, // Lend lease, Friend from the west part 2
{ "5b4795fb86f7745876267770", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5b47926a86f7747ccc057c15"}}, // Chumming, Informed means armed
{ "5bc4776586f774512d07cf05", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac242ab86f77412464f68b4"}}, // The Tarkov shooter Part 1", Gunsmith. Part 5
{ "5bc479e586f7747f376c7da3", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5bc4776586f774512d07cf05"}}, // The Tarkov shooter Part 2", The Tarkov shooter Part 1
{ "5bc47dbf86f7741ee74e93b9", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5bc479e586f7747f376c7da3"}}, // The Tarkov shooter. Part 3, The Tarkov shooter Part 2
{ "5bc480a686f7741af0342e29", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5bc47dbf86f7741ee74e93b9"}}, // The Tarkov shooter. Part 4, The Tarkov shooter Part 3
{ "5bc4826c86f774106d22d88b", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5bc480a686f7741af0342e29"}}, // The Tarkov shooter. Part 5, The Tarkov shooter Part 4
{ "5bc4836986f7740c0152911c", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5bc4826c86f774106d22d88b"}}, // The Tarkov shooter. Part 6, The Tarkov shooter Part 5
{ "5bc4856986f77454c317bea7", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5bc4836986f7740c0152911c"}}, // The Tarkov shooter. Part 7, The Tarkov shooter Part 6
{ "5bc4893c86f774626f5ebf3e", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5bc4856986f77454c317bea7"}}, // The Tarkov shooter. Part 8, The Tarkov shooter Part 7
{ "5c0bbaa886f7746941031d82", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5b4795fb86f7745876267770"}}, // Bullshit, Chumming
{ "5c0bc91486f7746ab41857a2", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5b4795fb86f7745876267770"}}, // Silent caliber, Chumming
{ "5c0bd01e86f7747cdd799e56", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5c0d190cd09282029f5390d8"}}, // Insomnia, Grenadier
{ "5c0bd94186f7747a727f09b2", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5c0d190cd09282029f5390d8"}}, // Test drive. Pt. 1, Grenadier
{ "5c0bdb5286f774166e38eed4", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5b4795fb86f7745876267770"}}, // Flint, Chumming
{ "5c0bde0986f77479cf22c2f8", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac3462b86f7741d6118b983"}}, // A Shooter Born in Heaven, Farming. Part 3
{ "5c0be13186f7746f016734aa", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27bc8586f7741b543d8ea4"}}, // Psycho Sniper, Wet Job. Part 6
{ "5c0be5fc86f774467a116593", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a68667486f7742607157d28"}}, // Private clinic, Health Care Privacy. Part 4
{ "5c0d0d5086f774363760aef2", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a68667486f7742607157d28"}}, // Athlete, Health Care Privacy. Part 4
{ "5c0d0f1886f77457b8210226", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5b4794cb86f774598100d5d4"}}, // Lend lease. Part 2, Lend lease. Part 1
{ "5c0d190cd09282029f5390d8", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5967725e86f774601a446662"}}, // Grenadier, Shaking up teller
{ "5c0d1c4cd0928202a02a6f5c", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5c0be5fc86f774467a116593"}}, // Decontamination service, Private clinic
{ "5c0d4c12d09282029f539173", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5c0d0f1886f77457b8210226"}}, // Peacekeeping mission, Lend lease. Part 2
{ "5c0d4e61d09282029f53920e", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27bc8586f7741b543d8ea4"}}, // The guide, Wet Job. Part 6
{ "5c10f94386f774227172c572", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5b47876e86f7744d1c353205"}}, // The Blood of War Pt. 3, The Blood of War Pt. 2
{ "5c1128e386f7746565181106", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac3464c86f7741d651d6877"}}, // Fertilizers, Farming. part 4
{ "5c112d7e86f7740d6f647486", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5b478b1886f7744d1b23c57d"}}, // Scavenger, Hot Delivery
{ "5c1141f386f77430ff393792", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5c10f94386f774227172c572"}}, // Living high is not a crime Pt.2, The Blood of War Pt. 3
{ "5c1234c286f77406fa13baeb", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5c0bbaa886f7746941031d82"}}, // Setup, Bullshit
{ "5c12452c86f7744b83469073", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5967725e86f774601a446662"}}, // Perfect mediator, Shaking up teller
{ "5c139eb686f7747878361a6f", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac3464c86f7741d651d6877"}}, // Import, Farming. Part 4
{ "5c51aac186f77432ea65c552", new QuestRequirement{QuestStatus = 4, PreceedingQuest=""}}, // Collector
{ "5d2495a886f77425cd51e403", new QuestRequirement{QuestStatus = 4, PreceedingQuest=""}}, // Introduction
{ "5d24b81486f77439c92d6ba8", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d2495a886f77425cd51e403"}}, // Acquaintance, Introduction
{ "5d25aed386f77442734d25d2", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d24b81486f77439c92d6ba8"}}, // The survivalist path. Unprotected, but dangerous, Acquaintance
{ "5d25b6be86f77444001e1b89", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d24b81486f77439c92d6ba8"}}, // The survivalist path. Thrifty, Acquaintance
{ "5d25bfd086f77442734d3007", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25b6be86f77444001e1b89"}}, // The survivalist path. Zhivchik, The survivalist path. Thrifty
{ "5d25c81b86f77443e625dd71", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25bfd086f77442734d3007"}}, // The survivalist path. Wounded beast, The survivalist path. Zhivchik
{ "5d25cf2686f77443e75488d4", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25c81b86f77443e625dd71"}}, // The survivalist path. Tough guy, The survivalist path. Wounded beast
{ "5d25d2c186f77443e35162e5", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25c81b86f77443e625dd71"}}, // The survivalist path. Cold blooded, The survivalist path. Wounded beast
{ "5d25dae186f77443e55d2f78", new QuestRequirement{QuestStatus = 4, PreceedingQuest=""}}, // The survivalist path. Zatoichi, REMOVED QUEST MAY 2020
{ "5d25e29d86f7740a22516326", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25d2c186f77443e35162e5"}}, // The survivalist path. Eagle-owl, The survivalist path. Cold blooded
{ "5d25e2a986f77409dd5cdf2a", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25d2c186f77443e35162e5"}}, // The survivalist path. Combat medic, The survivalist path. Cold blooded
{ "5eaaaa7c93afa0558f3b5a1c", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25d2c186f77443e35162e5"}}, // The survivalist path. Junkie, The survivalist path. Cold blooded
{ "5d25e2b486f77409de05bba0", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25c81b86f77443e625dd71"}}, // Huntsman path. Secured perimeter, The survivalist path. Wounded beast
{ "5d25e2c386f77443e7549029", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25e2b486f77409de05bba0"}}, // Huntsman path. The trophy, Huntsman path. Secured perimeter
{ "5d25e2cc86f77443e47ae019", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25e2b486f77409de05bba0"}}, // Huntsman path. Woods cleaning, Huntsman path. Secured perimeter
{ "5d25e2d886f77442734d335e", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25e2cc86f77443e47ae019"}}, // Huntsman path. Controller, Huntsman path. Woods cleaning
{ "5d25e2e286f77444001e2e48", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25e2c386f77443e7549029"}}, // Huntsman path. Sell-out, Huntsman path. The trophy
{ "5d25e2ee86f77443e35162ea", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25e2e286f77444001e2e48"}}, // Huntsman path. Woods keeper, Huntsman path. Sell-out
{ "5d25e43786f7740a212217fa", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25e2c386f77443e7549029"}}, // Huntsman path. Justice, Huntsman path. The trophy
{ "5d25e44386f77409453bce7b", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25e2cc86f77443e47ae019"}}, // Huntsman path. Evil watchman, Huntsman path. Woods cleaning
{ "60c0c018f7afb4354815096a", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25e2ee86f77443e35162ea"}}, // Huntsman Path. Factory Chief, Huntsman path. Woods keeper
{ "5d25e44f86f77443e625e385", new QuestRequirement{QuestStatus = 4, PreceedingQuest="60c0c018f7afb4354815096a"}}, // Huntsman path. Eraser, Huntsman Path - Factory Chief
{ "5d25e45e86f77408251c4bfa", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25e44f86f77443e625e385"}}, // Huntsman path. Eraser pt. 2, Huntsman path. Eraser
{ "5d25e46e86f77409453bce7c", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25d2c186f77443e35162e5"}}, // Ambulance, The survivalist path. Cold blooded
{ "5d25e48186f77443e625e386", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25cf2686f77443e75488d4"}}, // Courtesy visit, Huntsman path. The survivalist path. tough guy
{ "5d25e48d86f77408251c4bfb", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5979ed3886f77431307dc512"}}, // Shady business, "Whats on the flash drive?,
{ "5d25e4ad86f77443e625e387", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25e48186f77443e625e386"}}, // Nostalgia, Courtesy visit
{ "5d25e4b786f77408251c4bfc", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25e2cc86f77443e47ae019"}}, // Fishing place, Huntsman path. Woods cleaning
{ "5d25e4ca86f77409dd5cdf2c", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25e2ee86f77443e35162ea"}}, // Hunting trip, Huntsman path. Woods keeper
{ "5d25e4d586f77443e625e388", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25e2b486f77409de05bba0"}}, // Reserv,
{ "5d4bec3486f7743cac246665", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5979f8bb86f7743ec214c7a6"}}, // Regulated materials, polikhim hobo
{ "5d6fb2c086f77449da599c24", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a68665c86f774255929b4c7"}}, // An apple a day - keeps the doctor away, Health Care Privacy. Part 3
{ "5d6fbc2886f77449d825f9d3", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27bc3686f7741c73584026"}}, // Mentor, Wet Job. Part 4
{ "5dc53acb86f77469c740c893", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae4498786f7744bde357695"}}, // The stylish one, The key to success
{ "5e381b0286f77420e3417a74", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae4497b86f7744cf402ed00"}}, // Textile. Part 1, Sew it good. Part 4
{ "5e4d515e86f77438b2195244", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5e381b0286f77420e3417a74"}}, // Textile. Part 2, Textile. Part 1
{ "5ede55112c95834b583f052a", new QuestRequirement{QuestStatus = 4, PreceedingQuest="59c124d686f774189b3c843f"}}, // Bunker. Part 1, BP depot
{ "5ede567cfa6dc072ce15d6e3", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ede55112c95834b583f052a"}}, // Bunker. Part 2, Bunker. Part 1
{ "5eda19f0edce541157209cee", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5967725e86f774601a446662"}}, // Anesthesia, Shaking up teller
{ "5edab4b1218d181e29451435", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5edaba7c0c502106f869bc02"}}, // Huntsman path. Sadist, Colleagues pt 2
{ "5edab736cc183c769d778bc2", new QuestRequirement{QuestStatus = 4, PreceedingQuest="596a1e6c86f7741ddc2d3206"}}, // Colleagues. Pt.1, General Wares
{ "5edaba7c0c502106f869bc02", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5edab736cc183c769d778bc2"}}, // Colleagues. Pt.2, Colleagues. Pt.1
{ "5edac34d0bb72a50635c2bfa", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5edaba7c0c502106f869bc02"}}, // Colleagues. Pt.3, Colleagues. Pt.2
{ "5edabd13218d181e29451442", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5eda19f0edce541157209cee"}}, // Rigged game, Anesthesia
{ "5edac020218d181e29451446", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5eda19f0edce541157209cee"}}, // Samples, Anesthesia
{ "5edac63b930f5454f51e128b", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5edab4b1218d181e29451435"}}, // TerraGroup employee , Huntsman path. Sadist
{ "5f04886a3937dc337a6b8238", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5edab736cc183c769d778bc2"}}, // The chemistry closet, Colleagues. Pt.1
{ "5fd9fad9c1ce6b1a3b486d00", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5936d90786f7742b1420ba5b"}}, // Search Mission, Debut
{ "600302d73b897b11364cd161", new QuestRequirement{QuestStatus = 4, PreceedingQuest=""}}, // Hunter
{ "6086c852c945025d41566124", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5a27b80086f774429a5d7e20"}}, // Revision, Eagle Eye
{ "608a768d82e40b3c727fd17d", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5d25e2ee86f77443e35162ea"}}, // Pest control, Huntsman path. Woods keeper
{ "6089736efa70fc097863b8f6", new QuestRequirement{QuestStatus = 4, PreceedingQuest="6089732b59b92115597ad789"}}, // Back door, Surplus goods
{ "6089743983426423753cd58a", new QuestRequirement{QuestStatus = 4, PreceedingQuest="597a0f5686f774273b74f676"}}, // Safe corridor, Chemical pt4
{ "608974af4b05530f55550c21", new QuestRequirement{QuestStatus = 4, PreceedingQuest="608974d01a66564e74191fc0"}}, // Inventory check, A fuel matter
{ "608974d01a66564e74191fc0", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae448a386f7744d3730fff0" }}, // Fuel matter, Only Business
{ "60896bca6ee58f38c417d4f2", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ede567cfa6dc072ce15d6e3"}}, // No place for renegades, Bunker. Part 2
{ "60896e28e4a85c72ef3fa301", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5969f9e986f7741dde183a50"}}, // Disease history, Pharmacist
{ "60896b7bfa70fc097863b8f5", new QuestRequirement{QuestStatus = 4, PreceedingQuest="60896bca6ee58f38c417d4f2"}}, // Documents, No place for renegades
{ "6089732b59b92115597ad789", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ac3477486f7741d651d6885"}}, // Surplus goods, Scout
{ "60896888e4a85c72ef3fa300", new QuestRequirement{QuestStatus = 4, PreceedingQuest=""}}, // Experience exchange, ????
{ "60e71dc0a94be721b065bbfc", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5ae449d986f774453a54a7e1" }}, // Long Line, Supervisor
{ "60e71dc67fcf9c556f325056", new QuestRequirement{QuestStatus = 4, PreceedingQuest="60e71dc0a94be721b065bbfc" }}, // Booze, Long line
//{ "60e71e8ed54b755a3b53eb67", new QuestRequirement{QuestStatus = 4, PreceedingQuest="" }}, // Huntsman Path - Relentless
{ "60e729cf5698ee7b05057439", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5edab4b1218d181e29451435" }}, // Swift One, Huntsman path - Sadist
{ "60effd818b669d08a35bfad5", new QuestRequirement{QuestStatus = 4, PreceedingQuest="59ca2eb686f77445a80ed049" }}, // The Choice, The Punisher. Part 6
//{ "60e71c11d54b755a3b53eb65", new QuestRequirement{QuestStatus = 4, PreceedingQuest="" }}, // Night Sweep
//{ "60e71bb4e456d449cd47ca75", new QuestRequirement{QuestStatus = 4, PreceedingQuest=""}}, // Intimidator
//{ "60e71c48c1bfa3050473b8e5", new QuestRequirement{QuestStatus = 4, PreceedingQuest=""}}, // Crisis
//{ "60e71b9bbd90872cb85440f3", new QuestRequirement{QuestStatus = 4, PreceedingQuest="" }}, // Capturing Outposts,
{ "60e71b62a0beca400d69efc4", new QuestRequirement{QuestStatus = 4, PreceedingQuest="59ca2eb686f77445a80ed049" }}, // Escort, The Punisher. Part 6
{ "60e71d23c1bfa3050473b8e6", new QuestRequirement{QuestStatus = 4, PreceedingQuest="" }}, // Calibration
{ "60e71c9ad54b755a3b53eb66", new QuestRequirement{QuestStatus = 4, PreceedingQuest="5c0d4e61d09282029f53920e" } } // Mutual Interest, The guide
};
private static QuestRoot _liveQuestData;
private static Dictionary<string, Quest> _questData;
private static List<AssortUnlocks> _assortUnlocks;
public static Dictionary<string, Quest> GetQuestData(string filename = "quests")
{
if (_questData == null)
{
var questFilePath = InputFileHelper.GetInputFilePaths().FirstOrDefault(x => x.Contains(filename));
if (questFilePath == null)
{
return null;
}
var questDataJson = File.ReadAllText(questFilePath);
_questData = JsonSerializer.Deserialize<Dictionary<string, Quest>>(questDataJson);
}
return _questData;
}
public static QuestRoot GetLiveQuestData(string filename = "resp.client.quest.list")
{
if (_liveQuestData == null)
{
var questFilePath = InputFileHelper.GetInputFilePaths().FirstOrDefault(x => x.Contains(filename));
if (questFilePath == null)
{
return null;
}
var questDataJson = File.ReadAllText(questFilePath);
_liveQuestData = JsonSerializer.Deserialize<QuestRoot>(questDataJson);
}
return _liveQuestData;
}
public static string GetQuestNameById(string id)
{
if (!questNames.ContainsKey(id))
{
return "Unknown quest";
}
return questNames[id];
}
public static List<AssortUnlocks> GetAssortUnlocks()
{
if (_assortUnlocks == null)
{
_assortUnlocks = new List<AssortUnlocks>();
foreach (var quest in GetQuestData())
{
foreach (var reward in quest.Value.rewards.Success)
{
if (string.Equals(reward.type, "assortmentunlock", System.StringComparison.OrdinalIgnoreCase))
{
_assortUnlocks.Add(new AssortUnlocks
{
AssortUnlockId = reward.id,
ItemUnlockedId = reward.target,
ItemUnlockedTemplateId = reward.items[0]._tpl,
LoyaltyLevel = (int)reward.loyaltyLevel,
QuestId = quest.Key,
QuestRewardId = reward.id,
TraderId = reward.traderId,
TraderType = TraderHelper.GetTraderTypeById(reward.traderId),
Criteria = "Success"
}
);
}
}
}
}
return _assortUnlocks;
}
public static QuestRequirement GetQuestDependancy(string questId)
{
if (questWithPreceedingQuest.ContainsKey(questId))
{
return questWithPreceedingQuest[questId];
}
return null;
}
}
}