Completed
Push — master ( 614e02...3b7e3a )
by Andres
01:16
created

matter.js ➔ ... ➔ ct.buyGenerators   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
c 1
b 0
f 0
nc 2
dl 0
loc 12
rs 9.4285
nop 3
1
'use strict';
2
3
angular.module('game').component('matter', {
4
  templateUrl: 'views/matter.html',
5
  controller: ['state', 'visibility', 'data', matter],
6
  controllerAs: 'ct'
7
});
8
9
function matter(state, visibility, data) {
10
  let ct = this;
11
  ct.state = state;
12
  ct.visibility = visibility;
13
  ct.data = data;
14
15
  ct.generatorPrice = function(name, element) {
16
    let level = state.player.elements[element].generators[name];
17
    let price = data.generators[name].price * Math.pow(data.generators[name].priceIncrease, level);
18
    return Math.ceil(price);
19
  };
20
21
  ct.buyGenerators = function(name, element, number) {
22
    let price = this.generatorPrice(name, element);
23
    let i = 0;
24
    // we need a loop since we use the ceil operator
25
    let currency = data.elements[element].main;
26
    while (i < number && state.player.resources[currency].number >= price) {
27
      state.player.resources[currency].number -= price;
28
      state.player.elements[element].generators[name]++;
29
      price = this.generatorPrice(name, element);
30
      i++;
31
    }
32
  };
33
}
34