Completed
Push — master ( f61055...5ffead )
by Andres
31s
created

src/scripts/services/upgrade.js   A

Complexity

Total Complexity 7
Complexity/F 2.33

Size

Lines of Code 29
Function Count 3

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 0
wmc 7
c 2
b 0
f 0
nc 1
mnd 1
bc 7
fnc 3
dl 0
loc 29
rs 10
bpm 2.3333
cpm 2.3333
noi 0
1
/**
2
 upgrade
3
 Auxiliary services aimed to reduce duplication. The behaviour for upgrades,
4
 exotic upgrades and dark upgrades is almost the same. Also, both prestige loops
5
 require to reset an element.
6
7
 @namespace Services
8
 */
9
'use strict';
10
11
angular
12
  .module('game')
13
  .service('upgrade', ['data',
14
    function(data) {
15
      let sv = this;
16
17
      <%= fireOnceFunctions %>
18
19
      this.buyUpgrade = function (player, upgrades, upgradeData, name, price, currency) {
20
        if (upgrades[name]) {
21
          return;
22
        }
23
        if (player.resources[currency].number >= price) {
24
          player.resources[currency].number -= price;
25
          upgrades[name] = true;
26
          let func = upgradeData.fire_once_function;
27
          if(func){
28
            sv[func](player);
29
          }
30
        }
31
      };
32
33
      this.resetElement = function(player, element) {
34
        let exotic = data.elements[element].exotic;
35
        if (!player.resources[exotic].unlocked) {
36
          return;
37
        }
38
39
        let resources = player.resources;
40
        for (let resource of data.elements[element].includes) {
41
          resources[resource].number = 0;
42
        }
43
      };
44
    }
45
  ]);
46