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

src/scripts/component/matter.js   A

Complexity

Total Complexity 5
Complexity/F 1.67

Size

Lines of Code 33
Function Count 3

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 0
wmc 5
c 1
b 0
f 0
nc 1
mnd 1
bc 4
fnc 3
dl 0
loc 33
rs 10
bpm 1.3333
cpm 1.6666
noi 0

1 Function

Rating   Name   Duplication   Size   Complexity  
B matter.js ➔ matter 0 25 1
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