From 83662f05c2009b66992395299deb35f157896e75 Mon Sep 17 00:00:00 2001
From: Chomp <jonreid3@gmail.com>
Date: Sat, 21 Aug 2021 13:36:13 +0100
Subject: [PATCH] Add quest unlock links for mechanic items based on data from
 https://escapefromtarkov.fandom.com/wiki/Quests

---
 .../src/mechanic.js                           | 37 ++++++++++++++-----
 1 file changed, 28 insertions(+), 9 deletions(-)

diff --git a/Ereshkigal-BaseAssortGenerator/src/mechanic.js b/Ereshkigal-BaseAssortGenerator/src/mechanic.js
index e148218..313bf4f 100644
--- a/Ereshkigal-BaseAssortGenerator/src/mechanic.js
+++ b/Ereshkigal-BaseAssortGenerator/src/mechanic.js
@@ -987,6 +987,7 @@ class MechanicAssort{
     }
     static GenerateLL3() {
         const CoreMod = require("../../CoreMod/src/Core.js");
+		let id = null;
 
         //4.6x30mm subsonic sx
         CoreMod.CreateTraderAssort(HashUtil.generate(), "5ba26844d4351e00334c9475", "5a7c2eca46aef81a7ca2145d", 282, "RUB", 3, false, 100000);
@@ -1043,7 +1044,9 @@ class MechanicAssort{
         CoreMod.CreateTraderAssort(HashUtil.generate(), "5ef35f46382a846010715a96", "5a7c2eca46aef81a7ca2145d", 4480, "RUB", 3, false, 2000);
 
         //magpul afg grip (olive drab)
-        CoreMod.CreateTraderAssort(HashUtil.generate(), "588226ef24597767af46e39c", "5a7c2eca46aef81a7ca2145d", 7086, "RUB", 3, true, 999999);
+		id = HashUtil.generate();
+        CoreMod.CreateTraderAssort(id, "588226ef24597767af46e39c", "5a7c2eca46aef81a7ca2145d", 7086, "RUB", 3, true, 999999);
+		CoreMod.CreateTraderAssortUnlock("5a7c2eca46aef81a7ca2145d", "success", id, "5b47749f86f7746c5d6a5fd4"); // gunsmith part 12
 
         //Remington M700 .308 promag aa-70 10-round magazine
         CoreMod.CreateTraderAssort(HashUtil.generate(), "5d25af8f8abbc3055079fec5", "5a7c2eca46aef81a7ca2145d", 11256, "RUB", 3, false, 2000);
@@ -1193,7 +1196,9 @@ class MechanicAssort{
         CoreMod.CreateTraderAssort(HashUtil.generate(), "609bab8b455afd752b2e6138", "5a7c2eca46aef81a7ca2145d", 110357, "RUB", 3, false, 600);
 
         //steiner las/tac 2 tactical flashlight
-        CoreMod.CreateTraderAssort(HashUtil.generate(), "5b07dd285acfc4001754240d", "5a7c2eca46aef81a7ca2145d", 23416, "RUB", 3, true, 999999);
+		id = HashUtil.generate();
+        CoreMod.CreateTraderAssort(id, "5b07dd285acfc4001754240d", "5a7c2eca46aef81a7ca2145d", 23416, "RUB", 3, true, 999999);
+		CoreMod.CreateTraderAssortUnlock("5a7c2eca46aef81a7ca2145d", "success", id, "5b477b6f86f7747290681823"); // gunsmith part 14
 
         //zenit klesch-2u tactical flashlight
         CoreMod.CreateTraderAssort(HashUtil.generate(), "5b3a337e5acfc4704b4a19a0", "5a7c2eca46aef81a7ca2145d", 12767, "RUB", 3, false, 2000);
@@ -1469,7 +1474,9 @@ class MechanicAssort{
             ], "5a7c2eca46aef81a7ca2145d", 3, false, 1000, 1);
 
         //m4a1 sopmod I
-        CoreMod.CreateTraderAssortWithPreset(HashUtil.generate(), "5af08cc686f77424a61595f2", "5a7c2eca46aef81a7ca2145d", 67809, "RUB", 3, false, 200);
+		id = HashUtil.generate();
+        CoreMod.CreateTraderAssortWithPreset(id, "5af08cc686f77424a61595f2", "5a7c2eca46aef81a7ca2145d", 67809, "RUB", 3, false, 200);
+		CoreMod.CreateTraderAssortUnlock("5a7c2eca46aef81a7ca2145d", "success", id, "5ae327c886f7745c7b3f2f3f"); // gunsmith part 10
 
         //ak-74m zenitico
         CoreMod.CreateTraderBarterWithPreset(HashUtil.generate(), "5bbf1c1c88a45017144d28c5", "hideout", "hideout", [
@@ -1581,15 +1588,19 @@ class MechanicAssort{
     }
     static GenerateLL4() {
         const CoreMod = require("../../CoreMod/src/Core.js");
-
+		let id = null;
         //5.7x28mm r37.f
-        CoreMod.CreateTraderAssort(HashUtil.generate(), "5cc86832d7f00c000d3a6e6c", "5a7c2eca46aef81a7ca2145d", 277, "RUB", 4, false, 20000, 300);
+		id = HashUtil.generate();
+        CoreMod.CreateTraderAssort(id, "5cc86832d7f00c000d3a6e6c", "5a7c2eca46aef81a7ca2145d", 277, "RUB", 4, false, 20000, 300);
+		CoreMod.CreateTraderAssortUnlock("5a7c2eca46aef81a7ca2145d", "success", id, "5ae327c886f7745c7b3f2f3f"); // gunsmith part 10
 
         //.45 acp rip
         CoreMod.CreateTraderAssort(HashUtil.generate(), "5ea2a8e200685063ec28c05a", "5a7c2eca46aef81a7ca2145d", 391, "RUB", 4, false, 100000, 100);
 
         //.338 lapua magnum tac-x
-        CoreMod.CreateTraderAssort(HashUtil.generate(), "5fc382b6d6fa9c00c571bbc3", "5a7c2eca46aef81a7ca2145d", 1417, "RUB", 4, false, 20000, 40);
+		id = HashUtil.generate();
+        CoreMod.CreateTraderAssort(id, "5fc382b6d6fa9c00c571bbc3", "5a7c2eca46aef81a7ca2145d", 1417, "RUB", 4, false, 20000, 40);
+		CoreMod.CreateTraderAssortUnlock("5a7c2eca46aef81a7ca2145d", "success", id, "5c139eb686f7747878361a6f"); // import
 
         //m14 7.62x51 x-14 50-round drum magazine
         CoreMod.CreateTraderBarter(HashUtil.generate(), "5addccf45acfc400185c2989", "hideout", "hideout", [
@@ -1643,7 +1654,9 @@ class MechanicAssort{
         CoreMod.CreateTraderAssort(HashUtil.generate(), "5ef35bc243cb350a955a7ccd", "5a7c2eca46aef81a7ca2145d", 5488, "RUB", 4, false, 2000, 3);
 
         //hera arms cqr tactical grip
-        CoreMod.CreateTraderAssort(HashUtil.generate(), "5a7dbfc1159bd40016548fde", "5a7c2eca46aef81a7ca2145d", 186, "EUR", 4, false, 6000);
+		id = HashUtil.generate();
+        CoreMod.CreateTraderAssort(id, "5a7dbfc1159bd40016548fde", "5a7c2eca46aef81a7ca2145d", 186, "EUR", 4, false, 6000);
+		CoreMod.CreateTraderAssortUnlock("5a7c2eca46aef81a7ca2145d", "success", id, "5b47749f86f7746c5d6a5fd4"); // gunsmith part 12
 
         //stark se-5 express forward grip
         CoreMod.CreateTraderAssort(HashUtil.generate(), "5b057b4f5acfc4771e1bd3e9", "5a7c2eca46aef81a7ca2145d", 15237, "RUB", 4, false, 2000);
@@ -1724,7 +1737,8 @@ class MechanicAssort{
         CoreMod.CreateTraderAssort(HashUtil.generate(), "5c06595c0db834001a66af6c", "5a7c2eca46aef81a7ca2145d", 18209, "RUB", 4, false, 2000);
 
         //trijicon reap-ir thermal scope
-        CoreMod.CreateTraderBarter(HashUtil.generate(), "5a1eaa87fcdbcb001865f75e", "hideout", "hideout", [
+		id = HashUtil.generate();
+        CoreMod.CreateTraderBarter(id, "5a1eaa87fcdbcb001865f75e", "hideout", "hideout", [
                 [{
                         "count": 4,
                         "_tpl": "5d0377ce86f774186372f689"
@@ -1737,6 +1751,7 @@ class MechanicAssort{
                     }
                 ]
             ], "5a7c2eca46aef81a7ca2145d", 4, false, 50, 1);
+		CoreMod.CreateTraderAssortUnlock("5a7c2eca46aef81a7ca2145d", "success", id, "5b47825886f77468074618d3"); // gunsmith part 16
 
         //flir rs-32 2.25-9x 35mm 60hz thermal riflescope
         CoreMod.CreateTraderBarter(HashUtil.generate(), "5d1b5e94d7ad1a2b865a96b0", "hideout", "hideout", [
@@ -1931,7 +1946,8 @@ class MechanicAssort{
         CoreMod.CreateTraderAssortWithPreset(HashUtil.generate(), "5af08c4486f774223b094223", "5a7c2eca46aef81a7ca2145d", 122824, "RUB", 4, false, 2000);
 
         //T H I C C weapon case
-        CoreMod.CreateTraderBarter(HashUtil.generate(), "5b6d9ce188a4501afc1b2b25", "hideout", "hideout", [
+		id = HashUtil.generate();
+        CoreMod.CreateTraderBarter(id, "5b6d9ce188a4501afc1b2b25", "hideout", "hideout", [
                 [{
                         "count": 20,
                         "_tpl": "59faff1d86f7746c51718c9c"
@@ -1941,6 +1957,7 @@ class MechanicAssort{
                     }
                 ]
             ], "5a7c2eca46aef81a7ca2145d", 4, false, 200, 1);
+		CoreMod.CreateTraderAssortUnlock("5a7c2eca46aef81a7ca2145d", "success", id, "5f04886a3937dc337a6b8238"); // chemistry closet
 
     }
     static generateMechanicAssort() {
@@ -1948,6 +1965,8 @@ class MechanicAssort{
         MechanicAssort.GenerateLL2();
         MechanicAssort.GenerateLL3();
         MechanicAssort.GenerateLL4();
+		VFS.writeFile("./traders/5f04886a3937dc337a6b8238/assort.json", JsonUtil.serialize(DatabaseServer.tables.traders["5f04886a3937dc337a6b8238"].assort, true));
+        VFS.writeFile("./traders/5f04886a3937dc337a6b8238/questassort.json", JsonUtil.serialize(DatabaseServer.tables.traders["5f04886a3937dc337a6b8238"].questassort, true));
     }
 }