This repository has been archived by the owner on Oct 5, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathgenerateDynamicLootBaseFromPresets.js
71 lines (59 loc) · 2.23 KB
/
generateDynamicLootBaseFromPresets.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*
Made by TheMaoci for MTGA
This scripts generates 1 file with all the loot spawns with simplified names
and what items will be spawning on that locations based on presets in #presets folder in MTGA database
*/
"use strict";
const fs = require('fs');
const path = require('path');
const log = console.log;
const stringify = (data) => JSON.stringify(data, null, "\t");
const parse = (string) => JSON.parse(string);
const read = (file) => fs.readFileSync(file, 'utf8');
var WORKING_DIR = "../assets/database/locations";
var MapNames = fs.readdirSync(`${WORKING_DIR}`);
for(let mapName of MapNames)
{
if(mapName.includes(".")) continue;
let presetFileNames = fs.readdirSync(`${WORKING_DIR}/${mapName}/#presets`);
let presetLocationDynamicSpawnNames = {};
//let presetsData = [];
for(let presetName of presetFileNames)
{
let data = parse(read(`${WORKING_DIR}/${mapName}/#presets/${presetName}`));
if(typeof data.Location == "undefined"){
data = data.data;
} else {
data = data.Location;
}
if(typeof data.Loot == "undefined")
{
log(presetName + " undefined data.[Location or data].Loot")
continue;
}
let LootSpawns = data.Loot;
for(let loot in LootSpawns)
{
if(typeof LootSpawns[loot].IsStatic != undefined)
{
if(LootSpawns[loot].IsStatic == false)
{
let name = LootSpawns[loot].Id;
name = name.replace(/[\(\)\[\]0-9- ]{1,99}/g ,"");
name = name.replace("__", "");
if(name.includes("quest")){
continue;
}
if(typeof presetLocationDynamicSpawnNames[name] != "undefined"){
presetLocationDynamicSpawnNames[name].OrgId.push(LootSpawns[loot].Id)
} else {
log(name);
presetLocationDynamicSpawnNames[name] = { OrgId: [LootSpawns[loot].Id] }
}
}
}
}
//presetsData.push(data);
}
fs.writeFileSync("./dynamicLootAll.json", stringify(presetLocationDynamicSpawnNames));
}