Completed
Push — master ( 259c93...d87c9a )
by Andres
01:28
created

void.js ➔ ... ➔ ct.darkPrestige   C

Complexity

Conditions 8
Paths 34

Size

Total Lines 43

Duplication

Lines 43
Ratio 100 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 8
c 1
b 0
f 0
nc 34
dl 43
loc 43
rs 5.3846
nop 0
1 View Code Duplication
'use strict';
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
2
3
angular.module('game').component('void', {
4
  templateUrl: 'views/void.html',
5
  controller: ['state', 'format', 'visibility', 'data', 'util', _void],
6
  controllerAs: 'ct'
7
});
8
9
function _void(state, format, visibility, data, util) {
10
  let ct = this;
11
  ct.state = state;
12
  ct.visibility = visibility;
13
  ct.data = data;
14
  ct.util = util;
15
  ct.format = format;
16
17
  ct.darkProduction = function() {
18
    let production = 0;
19
    for (let element in data.elements) {
20
      let exotic = data.elements[element].exotic;
21
      if (!state.player.resources[exotic].unlocked) {
22
        continue;
23
      }
24
      production += Math.floor(Math.max(0, Math.log(state.player.resources[exotic].number)));
25
    }
26
27
    return production;
28
  };
29
30
  ct.darkPrestige = function() {
31
    let resources = state.player.resources;
32
    let production = ct.darkProduction();
33
34
    resources.dark_matter.number += production;
35
    resources.dark_matter.unlocked = true;
36
37
    for(let key in data.elements){
38
      let element = data.elements[key];
39
      if (!state.player.resources[element.exotic].unlocked) {
40
        continue;
41
      }
42
      state.player.resources[element.exotic].number = 0;
43
44
      for (let resource of element.includes) {
45
        resources[resource].number = 0;
46
      }
47
48
      let upgrades = state.player.elements[key].upgrades;
49
      for (let upgrade in upgrades) {
50
        upgrades[upgrade] = false;
51
      }
52
53
      let exoticUpgrades = state.player.elements[key].exotic_upgrades;
54
      for (let upgrade in exoticUpgrades) {
55
        exoticUpgrades[upgrade] = false;
56
      }
57
58
      let generators = state.player.elements[key].generators;
59
      for (let generator in generators) {
60
        generators[generator] = 0;
61
      }
62
63
      let syntheses = element.syntheses;
64
      for (let synthesis of syntheses) {
65
        state.player.syntheses[synthesis].active = 0;
66
      }
67
      delete generators['0'];
68
      let first = Object.keys(generators)[0];
69
70
      state.player.elements[key].generators[first] = 1;
71
    }
72
  };
73
74
  ct.buyDarkUpgrade = function(name) {
75
    if (state.player.dark_upgrades[name]) {
76
      return;
77
    }
78
    let price = data.dark_upgrades[name].price;
79
    let currency = 'dark_matter';
80
81
    if (state.player.resources[currency].number >= price) {
82
      state.player.resources[currency].number -= price;
83
      state.player.dark_upgrades[name] = true;
84
    }
85
  };
86
}
87