build_scripts/populate_player.js   A
last analyzed

Complexity

Total Complexity 8
Complexity/F 0

Size

Lines of Code 115
Function Count 0

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 8
wmc 8
nc 192
mnd 2
bc 8
fnc 0
dl 0
loc 115
rs 10
bpm 0
cpm 0
noi 0
c 0
b 0
f 0
1
/* eslint-env node */
2
/*jslint node: true */
3
'use strict';
4
5
let jsonfile = require('jsonfile');
6
7
let resources = jsonfile.readFileSync('build/data/resources.json');
8
let elements = jsonfile.readFileSync('build/data/elements.json');
9
let generators = jsonfile.readFileSync('build/data/generators.json');
10
let globalUpgrades = jsonfile.readFileSync('build/data/global_upgrades.json');
11
let exoticUpgrades = jsonfile.readFileSync('build/data/exotic_upgrades.json');
12
let darkUpgrades = jsonfile.readFileSync('build/data/dark_upgrades.json');
13
let achievements = jsonfile.readFileSync('build/data/achievements.json');
14
let unlocks = jsonfile.readFileSync('build/data/unlocks.json');
15
let element_slot = jsonfile.readFileSync('build/data/element_slot.json');
16
17
let startPlayer = {
18
  elements_unlocked: 1
19
};
20
21
// read the version from the npm config
22
let npm = jsonfile.readFileSync('package.json');
23
24
startPlayer.version = npm.version;
25
26
/**
27
     * Default numberformat to be used with swarm-numberformat.
28
     *
29
     * Formats are:
30
     *    - standard
31
     *    - scientific
32
     *    - hybrid
33
     *    - engineering
34
     * Flavors are:
35
     *    - full
36
     *    - short
37
     */
38
startPlayer.options = {};
39
startPlayer.options.numberformat = {format: 'scientific', flavor: 'short', maxSmall: '1', sigfigs: 4};
40
startPlayer.options.buyIndex = 0;
41
startPlayer.options.adjustIndex = 0;
42
startPlayer.options.elementBuyIndex = 0;
43
startPlayer.options.hideBought = false;
44
startPlayer.options.sortIndex = 0;
45
startPlayer.options.hideAchievements = false;
46
startPlayer.offline = 0;
47
startPlayer.resources = {};
48
for (let entry in resources) {
49
  startPlayer.resources[entry] = null;
50
}
51
52
startPlayer.elements = {};
53
for (let element in elements) {
54
  startPlayer.elements[element] = false;
55
}
56
57
startPlayer.global_upgrades = {};
58
startPlayer.global_upgrades_current = {};
59
for (let upgrade in globalUpgrades) {
60
  startPlayer.global_upgrades[upgrade] = 1;
61
  if(globalUpgrades[upgrade].adjustable){
62
    startPlayer.global_upgrades_current[upgrade] = 1;
63
  }
64
}
65
66
startPlayer.exotic_upgrades = {H:{}};
67
for (let upgrade in exoticUpgrades) {
68
  startPlayer.exotic_upgrades.H[upgrade] = false;
69
}
70
71
startPlayer.dark_upgrades = {};
72
for (let upgrade in darkUpgrades) {
73
  startPlayer.dark_upgrades[upgrade] = false;
74
}
75
76
startPlayer.achievements = {};
77
for (let entry in achievements) {
78
  startPlayer.achievements[entry] = 0;
79
}
80
81
startPlayer.unlocks = {};
82
for (let entry in unlocks) {
83
  startPlayer.unlocks[entry] = 0;
84
}
85
86
element_slot.element = 'H';
87
startPlayer.element_slots = [element_slot];
88
89
startPlayer.fusion = [{
90
  active: false,
91
  running: false,
92
  beam: {
93
    name: '1H',
94
    number: 0
95
  },
96
  target: {
97
    name: '1H',
98
    number: 0
99
  },
100
  eV: 0
101
}];
102
103
startPlayer.statistics = {};
104
startPlayer.statistics.exotic_run = {H:{}};
105
startPlayer.statistics.dark_run = {};
106
startPlayer.statistics.all_time = {};
107
108
startPlayer.elements.H = true;
109
110
let mainHydrogen = elements.H.main;
111
let first = Object.keys(generators)[0];
112
startPlayer.resources[mainHydrogen] = generators[first].price;
113
startPlayer.statistics.exotic_run.H['1H'] = 0;
114
115
jsonfile.writeFileSync('build/data/start_player.json', startPlayer, {
116
  spaces: 2
117
});
118