ogamejs 2.1.4 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/package.json +22 -31
  2. package/{build → src}/buildings/crystal.js +16 -24
  3. package/{build → src}/buildings/deut.js +12 -22
  4. package/{build → src}/buildings/fusion-reactor.js +12 -22
  5. package/src/buildings/index.js +17 -0
  6. package/src/buildings/infocompte.js +91 -0
  7. package/{build → src}/buildings/metal.js +12 -21
  8. package/{build → src}/buildings/solar-plant.js +8 -17
  9. package/src/fleets/getDebris.js +20 -0
  10. package/src/fleets/index.js +7 -0
  11. package/src/index.js +17 -0
  12. package/{build → src}/models/buildings.js +14 -20
  13. package/{build → src}/models/destroyable.js +425 -332
  14. package/src/trades/crystal.js +16 -0
  15. package/src/trades/deut.js +16 -0
  16. package/src/trades/index.js +13 -0
  17. package/src/trades/metal.js +16 -0
  18. package/src/trades/parseRate.js +49 -0
  19. package/src/trades/utils.js +9 -0
  20. package/CHANGELOG.md +0 -50
  21. package/build/buildings/crystal.test.js +0 -32
  22. package/build/buildings/deut.test.js +0 -32
  23. package/build/buildings/fusion-reactor.test.js +0 -22
  24. package/build/buildings/index.js +0 -31
  25. package/build/buildings/infocompte.js +0 -150
  26. package/build/buildings/infocompte.test.js +0 -107
  27. package/build/buildings/metal.test.js +0 -32
  28. package/build/buildings/solar-plant.test.js +0 -21
  29. package/build/fleets/getDebris.js +0 -27
  30. package/build/fleets/getDebris.test.js +0 -26
  31. package/build/fleets/index.js +0 -16
  32. package/build/index.js +0 -30
  33. package/build/trades/crystal.js +0 -33
  34. package/build/trades/crystal.test.js +0 -16
  35. package/build/trades/deut.js +0 -33
  36. package/build/trades/deut.test.js +0 -16
  37. package/build/trades/index.js +0 -25
  38. package/build/trades/metal.js +0 -33
  39. package/build/trades/metal.test.js +0 -16
  40. package/build/trades/parseRate.js +0 -60
  41. package/build/trades/parseRate.test.js +0 -40
  42. package/build/trades/trades.js +0 -119
  43. package/build/trades/trades.test.js +0 -65
  44. package/build/trades/utils.js +0 -17
  45. package/build/trades/utils.test.js +0 -16
  46. package/build/winston.js +0 -16
@@ -0,0 +1,16 @@
1
+ import parseRate from './parseRate.js';
2
+
3
+ function sellCrystal(crystal = 0, percentD = 40, percentM = 60, rate = '2:1.5:1') {
4
+ const pDeut = percentD / 100;
5
+ const pMetal = percentM / 100;
6
+ const { rateDeut, rateMetal } = parseRate(rate, 'crystal');
7
+ const deut = pDeut * rateDeut * crystal;
8
+ const metal = pMetal * rateMetal * crystal;
9
+
10
+ return {
11
+ deut: Math.round(deut),
12
+ metal: Math.round(metal),
13
+ };
14
+ }
15
+
16
+ export default sellCrystal;
@@ -0,0 +1,16 @@
1
+ import parseRate from './parseRate.js';
2
+
3
+ function sellDeut(deut = 0, percentM = 60, percentC = 40, rate = '2:1.5:1') {
4
+ const pMetal = percentM / 100;
5
+ const pCrystal = percentC / 100;
6
+ const { rateMetal, rateCrystal } = parseRate(rate, 'deut');
7
+ const metal = pMetal * rateMetal * deut;
8
+ const crystal = pCrystal * rateCrystal * deut;
9
+
10
+ return {
11
+ metal: Math.round(metal),
12
+ crystal: Math.round(crystal),
13
+ };
14
+ }
15
+
16
+ export default sellDeut;
@@ -0,0 +1,13 @@
1
+ import parseRate from './parseRate.js';
2
+ import sellDeut from './deut.js';
3
+ import sellCrystal from './crystal.js';
4
+ import sellMetal from './metal.js';
5
+
6
+ const Trader = {
7
+ parseRate,
8
+ sellDeut,
9
+ sellCrystal,
10
+ sellMetal,
11
+ };
12
+
13
+ export default Trader;
@@ -0,0 +1,16 @@
1
+ import parseRate from './parseRate.js';
2
+
3
+ function sellMetal(metal = 0, percentD = 40, percentC = 60, rate = '2:1.5:1') {
4
+ const pDeut = percentD / 100;
5
+ const pCrystal = percentC / 100;
6
+ const { rateDeut, rateCrystal } = parseRate(rate, 'metal');
7
+ const deut = pDeut * rateDeut * metal;
8
+ const crystal = pCrystal * rateCrystal * metal;
9
+
10
+ return {
11
+ deut: Math.round(deut),
12
+ crystal: Math.round(crystal),
13
+ };
14
+ }
15
+
16
+ export default sellMetal;
@@ -0,0 +1,49 @@
1
+ import hasNaN from './utils.js';
2
+
3
+ function extract(rate, type) {
4
+ let res = {};
5
+ const split = rate.split(':').map(Number);
6
+ const metal = split[0];
7
+ const crystal = split[1];
8
+ const deut = split[2];
9
+
10
+ if (type === 'metal') {
11
+ res = {
12
+ rateMetal: 1,
13
+ rateCrystal: crystal / metal,
14
+ rateDeut: deut / metal,
15
+ };
16
+ } else if (type === 'crystal') {
17
+ res = {
18
+ rateMetal: metal / crystal,
19
+ rateCrystal: 1,
20
+ rateDeut: deut / crystal,
21
+ };
22
+ } else if (type === 'deut') {
23
+ res = {
24
+ rateMetal: metal,
25
+ rateCrystal: crystal,
26
+ rateDeut: 1,
27
+ };
28
+ } else {
29
+ throw new Error(`${type} is not part of the game, try one of metal, crystal, deut`);
30
+ }
31
+
32
+ return res;
33
+ }
34
+
35
+ export default function parseRate(rate = '2:1.5:1', type = 'deut') {
36
+ const split = rate.split(':');
37
+
38
+ if (split.length !== 3) {
39
+ throw new Error('rate not parsed correctly');
40
+ }
41
+
42
+ const res = extract(rate, type);
43
+
44
+ if (hasNaN(Object.values(res))) {
45
+ throw new Error('rate not parsed correctly');
46
+ }
47
+
48
+ return res;
49
+ }
@@ -0,0 +1,9 @@
1
+ export default function hasNaN(args) {
2
+ let response = false;
3
+ args.forEach((val) => {
4
+ if (Number.isNaN(Number(val))) {
5
+ response = true;
6
+ }
7
+ });
8
+ return response;
9
+ }
package/CHANGELOG.md DELETED
@@ -1,50 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
-
5
- ### [2.1.3](https://github.com/rolljee/ogamejs/compare/v2.1.2...v2.1.3) (2020-04-16)
6
-
7
- ### [2.1.2](https://github.com/rolljee/ogamejs/compare/v2.1.1...v2.1.2) (2020-04-12)
8
-
9
- ### [2.1.1](https://github.com/rolljee/ogamejs/compare/v2.1.0...v2.1.1) (2020-04-12)
10
-
11
- ### [2.0.4](https://github.com/rolljee/ogamejs/compare/v2.0.3...v2.0.4) (2020-04-08)
12
-
13
- ### [2.0.3](https://github.com/rolljee/ogamejs/compare/v2.0.2...v2.0.3) (2020-04-08)
14
-
15
- ### [2.0.2](https://github.com/rolljee/ogamejs/compare/v2.0.0...v2.0.2) (2020-04-02)
16
-
17
- ## [2.0.0](https://github.com/rolljee/ogamejs/compare/v2.0.0-beta.0...v2.0.0) (2020-03-20)
18
-
19
- ## [2.0.0-beta.0](https://github.com/rolljee/ogamejs/compare/v1.1.2...v2.0.0-beta.0) (2020-03-06)
20
-
21
- <a name="1.1.2"></a>
22
- ## [1.1.2](https://github.com/rolljee/ogamejs/compare/v1.1.1...v1.1.2) (2019-02-08)
23
-
24
-
25
-
26
- <a name="1.1.1"></a>
27
- ## [1.1.1](https://github.com/rolljee/ogamejs/compare/v1.1.0...v1.1.1) (2019-01-30)
28
-
29
-
30
- ### Bug Fixes
31
-
32
- * 🐛 Fix issues in tests ([82bce05](https://github.com/rolljee/ogamejs/commit/82bce05))
33
-
34
-
35
-
36
- <a name="1.1.0"></a>
37
- # 1.1.0 (2019-01-29)
38
-
39
-
40
- ### Features
41
-
42
- * 🎸 added metal and crystal calcul ([07371e0](https://github.com/rolljee/ogamejs/commit/07371e0))
43
- * 🎸 Rework the way of parsing rates ([aa63c19](https://github.com/rolljee/ogamejs/commit/aa63c19))
44
- * 🎸 SellDeut & ParseRate ([47b83f2](https://github.com/rolljee/ogamejs/commit/47b83f2))
45
-
46
-
47
-
48
- # Change Log
49
-
50
- All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- var _crystal = _interopRequireDefault(require("./crystal"));
4
-
5
- var _buildings = _interopRequireDefault(require("../models/buildings"));
6
-
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8
-
9
- describe('Crystal mine informations should be correctly return when', function () {
10
- it('Level 30 is given and universe speed is 5 and position is 1', function () {
11
- var mine = _buildings["default"][2].base;
12
- var crystalMine = (0, _crystal["default"])(mine, 30, 1, 5);
13
- expect(crystalMine).toEqual({
14
- production: 68052,
15
- energy: 5234,
16
- metal: 39876839,
17
- crystal: 19938419,
18
- deuterium: 0
19
- });
20
- });
21
- it('Level 30 is given and universe speed is 5 and position is 15', function () {
22
- var mine = _buildings["default"][2].base;
23
- var crystalMine = (0, _crystal["default"])(mine, 30, 15, 5);
24
- expect(crystalMine).toEqual({
25
- production: 52348,
26
- energy: 5234,
27
- metal: 39876839,
28
- crystal: 19938419,
29
- deuterium: 0
30
- });
31
- });
32
- });
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- var _deut = _interopRequireDefault(require("./deut"));
4
-
5
- var _buildings = _interopRequireDefault(require("../models/buildings"));
6
-
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8
-
9
- describe('Deut mine informations should be correctly return when', function () {
10
- it('Level 30 is given and universe speed is 5 and average temperature is 37', function () {
11
- var mine = _buildings["default"][3].base;
12
- var crystalMine = (0, _deut["default"])(mine, 30, 37, 5);
13
- expect(crystalMine).toEqual({
14
- production: 31721,
15
- energy: 10469,
16
- metal: 28762658,
17
- crystal: 9587552,
18
- deuterium: 0
19
- });
20
- });
21
- it('Level 32 is given and universe speed is 5 and average temperature is 138', function () {
22
- var mine = _buildings["default"][3].base;
23
- var crystalMine = (0, _deut["default"])(mine, 31, -138, 5);
24
- expect(crystalMine).toEqual({
25
- production: 56882,
26
- energy: 11900,
27
- metal: 43143988,
28
- crystal: 14381329,
29
- deuterium: 0
30
- });
31
- });
32
- });
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- var _fusionReactor = _interopRequireDefault(require("./fusion-reactor"));
4
-
5
- var _buildings = _interopRequireDefault(require("../models/buildings"));
6
-
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8
-
9
- describe('Fusion reactor informations should be correctly return when', function () {
10
- it('Level 19 is given with ernergy tech 17', function () {
11
- var reactor = _buildings["default"][5].base;
12
- var fusionReact = (0, _fusionReactor["default"])(reactor, 19, 17, 5);
13
- expect(fusionReact).toEqual({
14
- production: 24929,
15
- energy: 0,
16
- metal: 35411767,
17
- crystal: 14164706,
18
- deuterium: 7082353,
19
- consumption: 5810
20
- });
21
- });
22
- });
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- var _crystal = _interopRequireDefault(require("./crystal"));
9
-
10
- var _deut = _interopRequireDefault(require("./deut"));
11
-
12
- var _metal = _interopRequireDefault(require("./metal"));
13
-
14
- var _solarPlant = _interopRequireDefault(require("./solar-plant"));
15
-
16
- var _fusionReactor = _interopRequireDefault(require("./fusion-reactor"));
17
-
18
- var _infocompte = _interopRequireDefault(require("./infocompte"));
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
-
22
- var Buildings = {
23
- getCrystalMine: _crystal["default"],
24
- getDeutSynth: _deut["default"],
25
- getMetalMine: _metal["default"],
26
- getSolarPlant: _solarPlant["default"],
27
- getFusionReactor: _fusionReactor["default"],
28
- parseInfoCompteData: _infocompte["default"]
29
- };
30
- var _default = Buildings;
31
- exports["default"] = _default;
@@ -1,150 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
9
-
10
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
11
-
12
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
-
14
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
-
16
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
17
-
18
- function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
19
-
20
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
-
22
- function toNumber() {
23
- var number = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
24
- return Number(number.split('.').join(''));
25
- }
26
- /**
27
- *
28
- * Return information about the crystal mine given a specific level
29
- * @param {object} data The infocompte bb-code
30
- * @returns {Object} The parsed JSON object of infocompte
31
- */
32
-
33
-
34
- function parseInfoCompteData(data) {
35
- var universeDataRe = new RegExp('([0-9]{3}-[a-z]{2})');
36
-
37
- var _data$match$1$split = data.match(universeDataRe)[1].split('-'),
38
- _data$match$1$split2 = _slicedToArray(_data$match$1$split, 2),
39
- universe = _data$match$1$split2[0],
40
- lang = _data$match$1$split2[1]; // eslint-disable-next-line security/detect-unsafe-regex
41
-
42
-
43
- var planetsRe = new RegExp('(?:Planète [0-9]+(.+))(?:s+(?:Planète [0-9]+))*', 'g');
44
- var planets = data.matchAll(planetsRe);
45
- var metalPointRe = new RegExp('Points dans les mines de métal : (.+)');
46
- var metalPoint = toNumber(data.match(metalPointRe)[1]);
47
- var crystalPointRe = new RegExp('Points dans les mines de cristal : (.+)');
48
- var crystalPoint = toNumber(data.match(crystalPointRe)[1]);
49
- var deutRe = new RegExp('Points dans les mines de deut : (.+)');
50
- var deutPoint = toNumber(data.match(deutRe)[1]);
51
- var plasmaRe = new RegExp('Technologie Plasma : (.+)');
52
- var plasmaTechLevel = toNumber(data.match(plasmaRe)[1]);
53
- var hourlyRe = new RegExp('Par heure : (.+)');
54
- var hourly = data.match(hourlyRe);
55
-
56
- var _hourly$1$split = hourly[1].split('/'),
57
- _hourly$1$split2 = _slicedToArray(_hourly$1$split, 3),
58
- hourlyMetal = _hourly$1$split2[0],
59
- hourlyCristal = _hourly$1$split2[1],
60
- hourlyDeut = _hourly$1$split2[2];
61
-
62
- var _hourlyMetal$split = hourlyMetal.split(' '),
63
- _hourlyMetal$split2 = _slicedToArray(_hourlyMetal$split, 1),
64
- hourlyMetalValue = _hourlyMetal$split2[0];
65
-
66
- var hourlyMetalNumber = toNumber(hourlyMetalValue);
67
-
68
- var _hourlyCristal$split$ = hourlyCristal.split(' ').filter(Boolean),
69
- _hourlyCristal$split$2 = _slicedToArray(_hourlyCristal$split$, 1),
70
- hourlyCristalValue = _hourlyCristal$split$2[0];
71
-
72
- var hourlyCristalNumber = toNumber(hourlyCristalValue);
73
-
74
- var _hourlyDeut$split$fil = hourlyDeut.split(' ').filter(Boolean),
75
- _hourlyDeut$split$fil2 = _slicedToArray(_hourlyDeut$split$fil, 1),
76
- hourlyDeutValue = _hourlyDeut$split$fil2[0];
77
-
78
- var hourlyDeutNumber = toNumber(hourlyDeutValue);
79
- var response = {
80
- planets: [],
81
- production: {
82
- hourly: {
83
- metal: hourlyMetalNumber,
84
- crystal: hourlyCristalNumber,
85
- deut: hourlyDeutNumber
86
- },
87
- daily: {
88
- metal: hourlyMetalNumber * 24,
89
- crystal: hourlyCristalNumber * 24,
90
- deut: hourlyDeutNumber * 24
91
- },
92
- weekly: {
93
- metal: hourlyMetalNumber * 24 * 7,
94
- crystal: hourlyCristalNumber * 24 * 7,
95
- deut: hourlyDeutNumber * 24 * 7
96
- }
97
- },
98
- points: {
99
- metal: metalPoint,
100
- crystal: crystalPoint,
101
- deut: deutPoint,
102
- total: metalPoint + crystalPoint + deutPoint
103
- },
104
- plasma: plasmaTechLevel,
105
- universe: Number(universe),
106
- lang: lang
107
- }; // eslint-disable-next-line no-restricted-syntax
108
-
109
- var _iterator = _createForOfIteratorHelper(planets),
110
- _step;
111
-
112
- try {
113
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
114
- var planet = _step.value;
115
-
116
- var _planet$0$split = planet[0].split('/'),
117
- _planet$0$split2 = _slicedToArray(_planet$0$split, 4),
118
- planetMetal = _planet$0$split2[0],
119
- crystal = _planet$0$split2[1],
120
- deut = _planet$0$split2[2],
121
- temperatureText = _planet$0$split2[3];
122
-
123
- var _temperatureText$spli = temperatureText.split('°'),
124
- _temperatureText$spli2 = _slicedToArray(_temperatureText$spli, 1),
125
- temperature = _temperatureText$spli2[0];
126
-
127
- var _planetMetal$split = planetMetal.split(':'),
128
- _planetMetal$split2 = _slicedToArray(_planetMetal$split, 2),
129
- thePlanet = _planetMetal$split2[0],
130
- metal = _planetMetal$split2[1];
131
-
132
- response.planets.push({
133
- planet: thePlanet.trim(),
134
- metal: metal.trim().split(' ')[1],
135
- crystal: crystal.trim().split(' ')[1],
136
- deut: deut.trim().split(' ')[1],
137
- temperature: Number.parseInt(temperature.trim(), 10)
138
- });
139
- }
140
- } catch (err) {
141
- _iterator.e(err);
142
- } finally {
143
- _iterator.f();
144
- }
145
-
146
- return response;
147
- }
148
-
149
- var _default = parseInfoCompteData;
150
- exports["default"] = _default;
@@ -1,107 +0,0 @@
1
- "use strict";
2
-
3
- var _infocompte = _interopRequireDefault(require("./infocompte"));
4
-
5
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6
-
7
- describe('Infocompte informations should be correctly return when', function () {
8
- it('Version is ', function () {
9
- var params = "\n Niveau des mines du joueur Rolljee ( s165-fr ) le 07/04/2020, 16:40:32 :\n\n Plan\xE8te 01 : M\xE9tal 36 / Cristal 31 / Deut\xE9rium 31 / -94\xB0C\n Plan\xE8te 02 : M\xE9tal 36 / Cristal 31 / Deut\xE9rium 31 / -95\xB0C\n Plan\xE8te 03 : M\xE9tal 36 / Cristal 31 / Deut\xE9rium 31 / 56\xB0C\n Plan\xE8te 04 : M\xE9tal 36 / Cristal 31 / Deut\xE9rium 31 / -118\xB0C\n Plan\xE8te 05 : M\xE9tal 36 / Cristal 31 / Deut\xE9rium 31 / -122\xB0C\n Plan\xE8te 06 : M\xE9tal 36 / Cristal 31 / Deut\xE9rium 31 / -97\xB0C\n Plan\xE8te 07 : M\xE9tal 36 / Cristal 31 / Deut\xE9rium 31 / -96\xB0C\n Plan\xE8te 08 : M\xE9tal 36 / Cristal 31 / Deut\xE9rium 33 / -108\xB0C\n Plan\xE8te 09 : M\xE9tal 38 / Cristal 31 / Deut\xE9rium 34 / -103\xB0C\n Plan\xE8te 10 : M\xE9tal 38 / Cristal 31 / Deut\xE9rium 34 / -76\xB0C\n Plan\xE8te 11 : M\xE9tal 38 / Cristal 31 / Deut\xE9rium 34 / -116\xB0C\n\n Points dans les mines de m\xE9tal : 4.832.457\n Points dans les mines de cristal : 2.807.321\n Points dans les mines de deut : 3.343.660\n Points dans les mines : 10.983.438\n Technologie Plasma : 15\n\n Par heure : 2.292.692 M\xE9tal / 726.693 Cristal / 718.186 Deut\xE9rium\n\n Par jour : 55.024.608 M\xE9tal / 17.440.632 Cristal / 17.236.464 Deut\xE9rium\n\n Par semaine : 385.172.256 M\xE9tal / 122.084.424 Cristal / 120.655.248 Deut\xE9rium\n\n Export with Infocompte v7.0.10\n ";
10
- var response = (0, _infocompte["default"])(params);
11
- expect(response).toEqual({
12
- planets: [{
13
- planet: 'Planète 01',
14
- metal: '36',
15
- crystal: '31',
16
- deut: '31',
17
- temperature: -94
18
- }, {
19
- planet: 'Planète 02',
20
- metal: '36',
21
- crystal: '31',
22
- deut: '31',
23
- temperature: -95
24
- }, {
25
- planet: 'Planète 03',
26
- metal: '36',
27
- crystal: '31',
28
- deut: '31',
29
- temperature: 56
30
- }, {
31
- planet: 'Planète 04',
32
- metal: '36',
33
- crystal: '31',
34
- deut: '31',
35
- temperature: -118
36
- }, {
37
- planet: 'Planète 05',
38
- metal: '36',
39
- crystal: '31',
40
- deut: '31',
41
- temperature: -122
42
- }, {
43
- planet: 'Planète 06',
44
- metal: '36',
45
- crystal: '31',
46
- deut: '31',
47
- temperature: -97
48
- }, {
49
- planet: 'Planète 07',
50
- metal: '36',
51
- crystal: '31',
52
- deut: '31',
53
- temperature: -96
54
- }, {
55
- planet: 'Planète 08',
56
- metal: '36',
57
- crystal: '31',
58
- deut: '33',
59
- temperature: -108
60
- }, {
61
- planet: 'Planète 09',
62
- metal: '38',
63
- crystal: '31',
64
- deut: '34',
65
- temperature: -103
66
- }, {
67
- planet: 'Planète 10',
68
- metal: '38',
69
- crystal: '31',
70
- deut: '34',
71
- temperature: -76
72
- }, {
73
- planet: 'Planète 11',
74
- metal: '38',
75
- crystal: '31',
76
- deut: '34',
77
- temperature: -116
78
- }],
79
- production: {
80
- hourly: {
81
- metal: 2292692,
82
- crystal: 726693,
83
- deut: 718186
84
- },
85
- daily: {
86
- metal: 55024608,
87
- crystal: 17440632,
88
- deut: 17236464
89
- },
90
- weekly: {
91
- metal: 385172256,
92
- crystal: 122084424,
93
- deut: 120655248
94
- }
95
- },
96
- points: {
97
- metal: 4832457,
98
- crystal: 2807321,
99
- deut: 3343660,
100
- total: 10983438
101
- },
102
- plasma: 15,
103
- universe: 165,
104
- lang: 'fr'
105
- });
106
- });
107
- });
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- var _metal = _interopRequireDefault(require("./metal"));
4
-
5
- var _buildings = _interopRequireDefault(require("../models/buildings"));
6
-
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8
-
9
- describe('Metal mine informations should be correctly return when', function () {
10
- it('Level 10 is given and universe speed is 5', function () {
11
- var mine = _buildings["default"][1].base;
12
- var metalMine = (0, _metal["default"])(mine, 10, 5);
13
- expect(metalMine).toEqual({
14
- production: 3890,
15
- energy: 259,
16
- metal: 2306,
17
- crystal: 576,
18
- deuterium: 0
19
- });
20
- });
21
- it('Level 36 is given and universe speed is 5', function () {
22
- var mine = _buildings["default"][1].base;
23
- var metalMine = (0, _metal["default"])(mine, 36, 5);
24
- expect(metalMine).toEqual({
25
- production: 166928,
26
- energy: 11128,
27
- metal: 87366576,
28
- crystal: 21841644,
29
- deuterium: 0
30
- });
31
- });
32
- });
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- var _solarPlant = _interopRequireDefault(require("./solar-plant"));
4
-
5
- var _buildings = _interopRequireDefault(require("../models/buildings"));
6
-
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8
-
9
- describe('Solar plant informations should be correctly return when', function () {
10
- it('Level 25 is given', function () {
11
- var mine = _buildings["default"][4].base;
12
- var solarPlant = (0, _solarPlant["default"])(mine, 25);
13
- expect(solarPlant).toEqual({
14
- production: 5417,
15
- energy: 0,
16
- metal: 1262558,
17
- crystal: 505023,
18
- deuterium: 0
19
- });
20
- });
21
- });
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- /**
9
- *
10
- * Returns the number of debris generated
11
- * @param {number} shipId The ship identifier
12
- * @param {number} number The number of ship
13
- * @param {number} factor The universe debris factor
14
- * @return {Object} The debris generated
15
- */
16
- function getDebris(ship, number, factor) {
17
- var cost = ship.cost;
18
- var metalDebris = cost.metal ? cost.metal * factor : 0;
19
- var crystalDebris = cost.crystal ? cost.crystal * factor : 0;
20
- return {
21
- metal: metalDebris * number,
22
- crystal: crystalDebris * number
23
- };
24
- }
25
-
26
- var _default = getDebris;
27
- exports["default"] = _default;
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- var _getDebris = _interopRequireDefault(require("./getDebris"));
4
-
5
- var _destroyable = _interopRequireDefault(require("../models/destroyable"));
6
-
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8
-
9
- describe('Debris should be correctly return when', function () {
10
- it('A 10 light fighter crash with 60% in harvest fields', function () {
11
- var ship = _destroyable["default"][1];
12
- var debris = (0, _getDebris["default"])(ship, 10, 0.6);
13
- expect(debris).toEqual({
14
- metal: 18000,
15
- crystal: 6000
16
- });
17
- });
18
- it('A 10 light fighter crash with 30% in harvest fields', function () {
19
- var ship = _destroyable["default"][1];
20
- var debris = (0, _getDebris["default"])(ship, 10, 0.3);
21
- expect(debris).toEqual({
22
- metal: 9000,
23
- crystal: 3000
24
- });
25
- });
26
- });