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
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- var _getDebris = _interopRequireDefault(require("./getDebris"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
-
12
- var Fleets = {
13
- getDebris: _getDebris["default"]
14
- };
15
- var _default = Fleets;
16
- exports["default"] = _default;
package/build/index.js DELETED
@@ -1,30 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- var _trades = _interopRequireDefault(require("./trades"));
9
-
10
- var _buildings = _interopRequireDefault(require("./buildings"));
11
-
12
- var _fleets = _interopRequireDefault(require("./fleets"));
13
-
14
- var _buildings2 = _interopRequireDefault(require("./models/buildings"));
15
-
16
- var _destroyable = _interopRequireDefault(require("./models/destroyable"));
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
-
20
- var Ogame = {
21
- Trader: _trades["default"],
22
- Building: _buildings["default"],
23
- Fleets: _fleets["default"],
24
- models: {
25
- Buildings: _buildings2["default"],
26
- Destroyable: _destroyable["default"]
27
- }
28
- };
29
- var _default = Ogame;
30
- exports["default"] = _default;
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- var _parseRate2 = _interopRequireDefault(require("./parseRate"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
-
12
- function sellCrystal() {
13
- var crystal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
14
- var percentD = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 40;
15
- var percentM = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60;
16
- var rate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '2:1.5:1';
17
- var pDeut = percentD / 100;
18
- var pMetal = percentM / 100;
19
-
20
- var _parseRate = (0, _parseRate2["default"])(rate, 'crystal'),
21
- rateDeut = _parseRate.rateDeut,
22
- rateMetal = _parseRate.rateMetal;
23
-
24
- var deut = pDeut * rateDeut * crystal;
25
- var metal = pMetal * rateMetal * crystal;
26
- return {
27
- deut: Math.round(deut),
28
- metal: Math.round(metal)
29
- };
30
- }
31
-
32
- var _default = sellCrystal;
33
- exports["default"] = _default;
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- var _crystal = _interopRequireDefault(require("./crystal"));
4
-
5
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6
-
7
- describe('A crystal trade', function () {
8
- it('Sell 100000 at 50/50 at rate 2:1.5:1', function () {
9
- var _sellCrystal = (0, _crystal["default"])(100000, 50, 50, '2:1.5:1'),
10
- deut = _sellCrystal.deut,
11
- metal = _sellCrystal.metal;
12
-
13
- expect(deut).toBe(33333);
14
- expect(metal).toBe(66667);
15
- });
16
- });
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- var _parseRate2 = _interopRequireDefault(require("./parseRate"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
-
12
- function sellDeut() {
13
- var deut = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
14
- var percentM = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 60;
15
- var percentC = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 40;
16
- var rate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '2:1.5:1';
17
- var pMetal = percentM / 100;
18
- var pCrystal = percentC / 100;
19
-
20
- var _parseRate = (0, _parseRate2["default"])(rate, 'deut'),
21
- rateMetal = _parseRate.rateMetal,
22
- rateCrystal = _parseRate.rateCrystal;
23
-
24
- var metal = pMetal * rateMetal * deut;
25
- var crystal = pCrystal * rateCrystal * deut;
26
- return {
27
- metal: Math.round(metal),
28
- crystal: Math.round(crystal)
29
- };
30
- }
31
-
32
- var _default = sellDeut;
33
- exports["default"] = _default;
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- var _deut = _interopRequireDefault(require("./deut"));
4
-
5
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6
-
7
- describe('A deut trade', function () {
8
- it('Sell 100000 at 50/50 at rate 2:1.5:1', function () {
9
- var _sellDeut = (0, _deut["default"])(100000, 50, 50, '2:1.5:1'),
10
- metal = _sellDeut.metal,
11
- crystal = _sellDeut.crystal;
12
-
13
- expect(metal).toBe(100000);
14
- expect(crystal).toBe(75000);
15
- });
16
- });
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- var _parseRate = _interopRequireDefault(require("./parseRate"));
9
-
10
- var _deut = _interopRequireDefault(require("./deut"));
11
-
12
- var _crystal = _interopRequireDefault(require("./crystal"));
13
-
14
- var _metal = _interopRequireDefault(require("./metal"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
-
18
- var Trader = {
19
- parseRate: _parseRate["default"],
20
- sellDeut: _deut["default"],
21
- sellCrystal: _crystal["default"],
22
- sellMetal: _metal["default"]
23
- };
24
- var _default = Trader;
25
- exports["default"] = _default;
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- var _parseRate2 = _interopRequireDefault(require("./parseRate"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
-
12
- function sellMetal() {
13
- var metal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
14
- var percentD = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 40;
15
- var percentC = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60;
16
- var rate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '2:1.5:1';
17
- var pDeut = percentD / 100;
18
- var pCrystal = percentC / 100;
19
-
20
- var _parseRate = (0, _parseRate2["default"])(rate, 'metal'),
21
- rateDeut = _parseRate.rateDeut,
22
- rateCrystal = _parseRate.rateCrystal;
23
-
24
- var deut = pDeut * rateDeut * metal;
25
- var crystal = pCrystal * rateCrystal * metal;
26
- return {
27
- deut: Math.round(deut),
28
- crystal: Math.round(crystal)
29
- };
30
- }
31
-
32
- var _default = sellMetal;
33
- exports["default"] = _default;
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- var _metal = _interopRequireDefault(require("./metal"));
4
-
5
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6
-
7
- describe('A deut trade', function () {
8
- it('Sell 100000 at 50/50 at rate 2:1.5:1', function () {
9
- var _sellMetal = (0, _metal["default"])(100000, 50, 50, '2:1.5:1'),
10
- deut = _sellMetal.deut,
11
- crystal = _sellMetal.crystal;
12
-
13
- expect(deut).toBe(25000);
14
- expect(crystal).toBe(37500);
15
- });
16
- });
@@ -1,60 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = parseRate;
7
-
8
- var _utils = _interopRequireDefault(require("./utils"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
-
12
- function extract(rate, type) {
13
- var res = {};
14
- var split = rate.split(':').map(Number);
15
- var metal = split[0];
16
- var crystal = split[1];
17
- var deut = split[2];
18
-
19
- if (type === 'metal') {
20
- res = {
21
- rateMetal: 1,
22
- rateCrystal: crystal / metal,
23
- rateDeut: deut / metal
24
- };
25
- } else if (type === 'crystal') {
26
- res = {
27
- rateMetal: metal / crystal,
28
- rateCrystal: 1,
29
- rateDeut: deut / crystal
30
- };
31
- } else if (type === 'deut') {
32
- res = {
33
- rateMetal: metal,
34
- rateCrystal: crystal,
35
- rateDeut: 1
36
- };
37
- } else {
38
- throw new Error("".concat(type, " is not part of the game, try one of metal, crystal, deut"));
39
- }
40
-
41
- return res;
42
- }
43
-
44
- function parseRate() {
45
- var rate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '2:1.5:1';
46
- var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'deut';
47
- var split = rate.split(':');
48
-
49
- if (split.length !== 3) {
50
- throw new Error('rate not parsed correctly');
51
- }
52
-
53
- var res = extract(rate, type);
54
-
55
- if ((0, _utils["default"])(Object.values(res))) {
56
- throw new Error('rate not parsed correctly');
57
- }
58
-
59
- return res;
60
- }
@@ -1,40 +0,0 @@
1
- "use strict";
2
-
3
- var _parseRate = _interopRequireDefault(require("./parseRate"));
4
-
5
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6
-
7
- describe('Parse rate given a resource and a rate', function () {
8
- it('Parse rate by selling deut', function () {
9
- var res = (0, _parseRate["default"])('2:1.5:1', 'deut');
10
- expect(res).toEqual({
11
- rateMetal: 2,
12
- rateCrystal: 1.5,
13
- rateDeut: 1
14
- });
15
- });
16
- it('Parse rate by selling metal', function () {
17
- var res = (0, _parseRate["default"])('2:1.5:1', 'metal');
18
- expect(res).toEqual({
19
- rateMetal: 2 / 2,
20
- rateCrystal: 1.5 / 2,
21
- rateDeut: 1 / 2
22
- });
23
- });
24
- it('Parse rate by selling crystal', function () {
25
- var res = (0, _parseRate["default"])('2:1.5:1', 'crystal');
26
- expect(res).toEqual({
27
- rateMetal: 2 / 1.5,
28
- rateCrystal: 1.5 / 1.5,
29
- rateDeut: 1 / 1.5
30
- });
31
- });
32
- it('Should return an error if rate is not correctly specified', function () {
33
- try {
34
- var res = (0, _parseRate["default"])('3:toto:1');
35
- expect(res).toBe(true); // explicitly fail since we test the throw
36
- } catch (e) {
37
- expect(e).toEqual(new Error('rate not parsed correctly'));
38
- }
39
- });
40
- });
@@ -1,119 +0,0 @@
1
-
2
- Object.defineProperty(exports, '__esModule', {
3
- value: true,
4
- });
5
- exports.default = void 0;
6
-
7
- const _utils = _interopRequireDefault(require('./utils'));
8
-
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
-
11
- const Trader = {
12
- extract: function extract(rate, type) {
13
- let res = {};
14
- const split = rate.split(':').map(Number);
15
- const metal = split[0];
16
- const crystal = split[1];
17
- const deut = split[2];
18
-
19
- if (type === 'metal') {
20
- res = {
21
- rateMetal: 1,
22
- rateCrystal: crystal / metal,
23
- rateDeut: deut / metal,
24
- };
25
- } else if (type === 'crystal') {
26
- res = {
27
- rateMetal: metal / crystal,
28
- rateCrystal: 1,
29
- rateDeut: deut / crystal,
30
- };
31
- } else if (type === 'deut') {
32
- res = {
33
- rateMetal: metal,
34
- rateCrystal: crystal,
35
- rateDeut: 1,
36
- };
37
- } else {
38
- throw new Error(''.concat(type, ' is not part of the game, try one of metal, crystal, deut'));
39
- }
40
-
41
- return res;
42
- },
43
- parseRate: function parseRate() {
44
- const rate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '2:1.5:1';
45
- const type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'deut';
46
- const split = rate.split(':');
47
-
48
- if (split.length !== 3) {
49
- throw new Error('rate not parsed correctly');
50
- }
51
-
52
- const res = this.extract(rate, type);
53
-
54
- if ((0, _utils.default)(Object.values(res))) {
55
- throw new Error('rate not parsed correctly');
56
- }
57
-
58
- return res;
59
- },
60
- sellDeut: function sellDeut() {
61
- const deut = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
62
- const percentM = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 60;
63
- const percentC = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 40;
64
- const rate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '2:1.5:1';
65
- const pMetal = percentM / 100;
66
- const pCrystal = percentC / 100;
67
-
68
- const _this$parseRate = this.parseRate(rate, 'deut');
69
- const { rateMetal } = _this$parseRate;
70
- const { rateCrystal } = _this$parseRate;
71
-
72
- const metal = pMetal * rateMetal * deut;
73
- const crystal = pCrystal * rateCrystal * deut;
74
- return {
75
- metal: Math.round(metal),
76
- crystal: Math.round(crystal),
77
- };
78
- },
79
- sellMetal: function sellMetal() {
80
- const metal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
81
- const percentD = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 40;
82
- const percentC = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60;
83
- const rate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '2:1.5:1';
84
- const pDeut = percentD / 100;
85
- const pCrystal = percentC / 100;
86
-
87
- const _this$parseRate2 = this.parseRate(rate, 'metal');
88
- const { rateDeut } = _this$parseRate2;
89
- const { rateCrystal } = _this$parseRate2;
90
-
91
- const deut = pDeut * rateDeut * metal;
92
- const crystal = pCrystal * rateCrystal * metal;
93
- return {
94
- deut: Math.round(deut),
95
- crystal: Math.round(crystal),
96
- };
97
- },
98
- sellCrystal: function sellCrystal() {
99
- const crystal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
100
- const percentD = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 40;
101
- const percentM = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60;
102
- const rate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '2:1.5:1';
103
- const pDeut = percentD / 100;
104
- const pMetal = percentM / 100;
105
-
106
- const _this$parseRate3 = this.parseRate(rate, 'crystal');
107
- const { rateDeut } = _this$parseRate3;
108
- const { rateMetal } = _this$parseRate3;
109
-
110
- const deut = pDeut * rateDeut * crystal;
111
- const metal = pMetal * rateMetal * crystal;
112
- return {
113
- deut: Math.round(deut),
114
- metal: Math.round(metal),
115
- };
116
- },
117
- };
118
- const _default = Trader;
119
- exports.default = _default;
@@ -1,65 +0,0 @@
1
-
2
- const _trades = _interopRequireDefault(require('./trades'));
3
-
4
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
-
6
- test('Parse rate by selling deut', () => {
7
- const res = _trades.default.parseRate('2:1.5:1', 'deut');
8
-
9
- expect(res).toEqual({
10
- rateMetal: 2,
11
- rateCrystal: 1.5,
12
- rateDeut: 1,
13
- });
14
- });
15
- test('Parse rate by selling metal', () => {
16
- const res = _trades.default.parseRate('2:1.5:1', 'metal');
17
-
18
- expect(res).toEqual({
19
- rateMetal: 2 / 2,
20
- rateCrystal: 1.5 / 2,
21
- rateDeut: 1 / 2,
22
- });
23
- });
24
- test('Parse rate by selling crystal', () => {
25
- const res = _trades.default.parseRate('2:1.5:1', 'crystal');
26
-
27
- expect(res).toEqual({
28
- rateMetal: 2 / 1.5,
29
- rateCrystal: 1.5 / 1.5,
30
- rateDeut: 1 / 1.5,
31
- });
32
- });
33
- test('Should return an error if rate is not correctly specified', () => {
34
- try {
35
- const res = _trades.default.parseRate('3:toto:1');
36
-
37
- expect(res).toBe(true); // explicitly fail since we test the throw
38
- } catch (e) {
39
- expect(e).toEqual(new Error('rate not parsed correctly'));
40
- }
41
- });
42
- test('Should calc deut correclty', () => {
43
- const _Trader$sellDeut = _trades.default.sellDeut(100000, 50, 50, '2:1.5:1');
44
- const { metal } = _Trader$sellDeut;
45
- const { crystal } = _Trader$sellDeut;
46
-
47
- expect(metal).toBe(100000);
48
- expect(crystal).toBe(75000);
49
- });
50
- test('Should calc metal correclty', () => {
51
- const _Trader$sellMetal = _trades.default.sellMetal(100000, 50, 50, '2:1.5:1');
52
- const { deut } = _Trader$sellMetal;
53
- const { crystal } = _Trader$sellMetal;
54
-
55
- expect(deut).toBe(25000);
56
- expect(crystal).toBe(37500);
57
- });
58
- test('Should calc crystal correclty', () => {
59
- const _Trader$sellCrystal = _trades.default.sellCrystal(100000, 50, 50, '2:1.5:1');
60
- const { deut } = _Trader$sellCrystal;
61
- const { metal } = _Trader$sellCrystal;
62
-
63
- expect(deut).toBe(33333);
64
- expect(metal).toBe(66667);
65
- });
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = hasNaN;
7
-
8
- function hasNaN(args) {
9
- var response = false;
10
- args.forEach(function (val) {
11
- // eslint-disable-next-line no-restricted-globals
12
- if (isNaN(val)) {
13
- response = true;
14
- }
15
- });
16
- return response;
17
- }
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- var _utils = _interopRequireDefault(require("./utils"));
4
-
5
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6
-
7
- describe('Test has NaN function', function () {
8
- it('Giving a NaN should return true', function () {
9
- var res = (0, _utils["default"])([NaN, 10, 11]);
10
- expect(res).toBe(true);
11
- });
12
- it('Giving good number should return false', function () {
13
- var res = (0, _utils["default"])([15, 10, 11]);
14
- expect(res).toBe(false);
15
- });
16
- });
package/build/winston.js DELETED
@@ -1,16 +0,0 @@
1
- Object.defineProperty(exports, '__esModule', {
2
- value: true,
3
- });
4
- exports.default = void 0;
5
-
6
- const _winston = _interopRequireDefault(require('winston'));
7
-
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
-
10
- const _default = _winston.default.createLogger({
11
- transports: [new _winston.default.transports.Console({
12
- format: _winston.default.format.simple(),
13
- })],
14
- });
15
-
16
- exports.default = _default;