@robsonbittencourt/calc 0.10.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 (144) hide show
  1. package/.eslintignore +2 -0
  2. package/.eslintrc +12 -0
  3. package/bundle +107 -0
  4. package/dist/adaptable.d.ts +6 -0
  5. package/dist/adaptable.js +28 -0
  6. package/dist/adaptable.js.map +1 -0
  7. package/dist/calc.d.ts +6 -0
  8. package/dist/calc.js +26 -0
  9. package/dist/calc.js.map +1 -0
  10. package/dist/data/abilities.d.ts +15 -0
  11. package/dist/data/abilities.js +448 -0
  12. package/dist/data/abilities.js.map +1 -0
  13. package/dist/data/index.d.ts +2 -0
  14. package/dist/data/index.js +30 -0
  15. package/dist/data/index.js.map +1 -0
  16. package/dist/data/interface.d.ts +150 -0
  17. package/dist/data/interface.js +3 -0
  18. package/dist/data/interface.js.map +1 -0
  19. package/dist/data/items.d.ts +24 -0
  20. package/dist/data/items.js +708 -0
  21. package/dist/data/items.js.map +1 -0
  22. package/dist/data/moves.d.ts +86 -0
  23. package/dist/data/moves.js +5014 -0
  24. package/dist/data/moves.js.map +1 -0
  25. package/dist/data/natures.d.ts +17 -0
  26. package/dist/data/natures.js +127 -0
  27. package/dist/data/natures.js.map +1 -0
  28. package/dist/data/production.min.js +1 -0
  29. package/dist/data/species.d.ts +48 -0
  30. package/dist/data/species.js +10126 -0
  31. package/dist/data/species.js.map +1 -0
  32. package/dist/data/types.d.ts +23 -0
  33. package/dist/data/types.js +538 -0
  34. package/dist/data/types.js.map +1 -0
  35. package/dist/desc.d.ts +65 -0
  36. package/dist/desc.js +866 -0
  37. package/dist/desc.js.map +1 -0
  38. package/dist/field.d.ts +49 -0
  39. package/dist/field.js +111 -0
  40. package/dist/field.js.map +1 -0
  41. package/dist/index.d.ts +44 -0
  42. package/dist/index.js +99 -0
  43. package/dist/index.js.map +1 -0
  44. package/dist/items.d.ts +13 -0
  45. package/dist/items.js +434 -0
  46. package/dist/items.js.map +1 -0
  47. package/dist/mechanics/gen12.d.ts +6 -0
  48. package/dist/mechanics/gen12.js +271 -0
  49. package/dist/mechanics/gen12.js.map +1 -0
  50. package/dist/mechanics/gen3.d.ts +11 -0
  51. package/dist/mechanics/gen3.js +371 -0
  52. package/dist/mechanics/gen3.js.map +1 -0
  53. package/dist/mechanics/gen4.d.ts +11 -0
  54. package/dist/mechanics/gen4.js +596 -0
  55. package/dist/mechanics/gen4.js.map +1 -0
  56. package/dist/mechanics/gen56.d.ts +13 -0
  57. package/dist/mechanics/gen56.js +836 -0
  58. package/dist/mechanics/gen56.js.map +1 -0
  59. package/dist/mechanics/gen789.d.ts +14 -0
  60. package/dist/mechanics/gen789.js +1325 -0
  61. package/dist/mechanics/gen789.js.map +1 -0
  62. package/dist/mechanics/util.d.ts +39 -0
  63. package/dist/mechanics/util.js +675 -0
  64. package/dist/mechanics/util.js.map +1 -0
  65. package/dist/move.d.ts +50 -0
  66. package/dist/move.js +324 -0
  67. package/dist/move.js.map +1 -0
  68. package/dist/pokemon.d.ts +55 -0
  69. package/dist/pokemon.js +240 -0
  70. package/dist/pokemon.js.map +1 -0
  71. package/dist/production.min.js +1 -0
  72. package/dist/result.d.ts +34 -0
  73. package/dist/result.js +94 -0
  74. package/dist/result.js.map +1 -0
  75. package/dist/state.d.ts +77 -0
  76. package/dist/state.js +3 -0
  77. package/dist/state.js.map +1 -0
  78. package/dist/stats.d.ts +26 -0
  79. package/dist/stats.js +183 -0
  80. package/dist/stats.js.map +1 -0
  81. package/dist/test/calc.test.d.ts +1 -0
  82. package/dist/test/calc.test.js +1297 -0
  83. package/dist/test/calc.test.js.map +1 -0
  84. package/dist/test/data.test.d.ts +1 -0
  85. package/dist/test/data.test.js +368 -0
  86. package/dist/test/data.test.js.map +1 -0
  87. package/dist/test/gen.d.ts +135 -0
  88. package/dist/test/gen.js +636 -0
  89. package/dist/test/gen.js.map +1 -0
  90. package/dist/test/helper.d.ts +55 -0
  91. package/dist/test/helper.js +174 -0
  92. package/dist/test/helper.js.map +1 -0
  93. package/dist/test/move.test.d.ts +1 -0
  94. package/dist/test/move.test.js +14 -0
  95. package/dist/test/move.test.js.map +1 -0
  96. package/dist/test/pokemon.test.d.ts +1 -0
  97. package/dist/test/pokemon.test.js +102 -0
  98. package/dist/test/pokemon.test.js.map +1 -0
  99. package/dist/test/stats.test.d.ts +1 -0
  100. package/dist/test/stats.test.js +64 -0
  101. package/dist/test/stats.test.js.map +1 -0
  102. package/dist/test/utils.test.d.ts +1 -0
  103. package/dist/test/utils.test.js +19 -0
  104. package/dist/test/utils.test.js.map +1 -0
  105. package/dist/util.d.ts +17 -0
  106. package/dist/util.js +115 -0
  107. package/dist/util.js.map +1 -0
  108. package/jest.config.js +11 -0
  109. package/package.json +40 -0
  110. package/src/adaptable.ts +12 -0
  111. package/src/calc.ts +40 -0
  112. package/src/data/abilities.ts +383 -0
  113. package/src/data/index.ts +36 -0
  114. package/src/data/interface.ts +176 -0
  115. package/src/data/items.ts +632 -0
  116. package/src/data/moves.ts +5028 -0
  117. package/src/data/natures.ts +65 -0
  118. package/src/data/species.ts +10098 -0
  119. package/src/data/types.ts +478 -0
  120. package/src/desc.ts +1063 -0
  121. package/src/field.ts +124 -0
  122. package/src/index.ts +156 -0
  123. package/src/items.ts +423 -0
  124. package/src/mechanics/gen12.ts +297 -0
  125. package/src/mechanics/gen3.ts +444 -0
  126. package/src/mechanics/gen4.ts +702 -0
  127. package/src/mechanics/gen56.ts +1134 -0
  128. package/src/mechanics/gen789.ts +1788 -0
  129. package/src/mechanics/util.ts +676 -0
  130. package/src/move.ts +337 -0
  131. package/src/pokemon.ts +244 -0
  132. package/src/result.ts +106 -0
  133. package/src/state.ts +81 -0
  134. package/src/stats.ts +213 -0
  135. package/src/test/calc.test.ts +1588 -0
  136. package/src/test/data.test.ts +129 -0
  137. package/src/test/gen.ts +514 -0
  138. package/src/test/helper.ts +185 -0
  139. package/src/test/move.test.ts +13 -0
  140. package/src/test/pokemon.test.ts +121 -0
  141. package/src/test/stats.test.ts +84 -0
  142. package/src/test/utils.test.ts +18 -0
  143. package/src/util.ts +153 -0
  144. package/tsconfig.json +10 -0
@@ -0,0 +1,55 @@
1
+ import type * as I from '../data/interface';
2
+ import { type Result, Pokemon, Move } from '../index';
3
+ import type { State } from '../state';
4
+ import { Field, Side } from '../field';
5
+ declare const calc: (gen: I.GenerationNum) => (attacker: Pokemon, defender: Pokemon, move: Move, field?: Field) => Result;
6
+ declare const move: (gen: I.GenerationNum) => (name: string, options?: Partial<Omit<State.Move, 'ability' | 'item' | 'species'>> & {
7
+ ability?: string;
8
+ item?: string;
9
+ species?: string;
10
+ }) => Move;
11
+ declare const pokemon: (gen: I.GenerationNum) => (name: string, options?: Partial<Omit<State.Pokemon, 'ability' | 'item' | 'nature' | 'moves'>> & {
12
+ ability?: string;
13
+ item?: string;
14
+ nature?: string;
15
+ moves?: string[];
16
+ curHP?: number;
17
+ ivs?: Partial<I.StatsTable> & {
18
+ spc?: number;
19
+ };
20
+ evs?: Partial<I.StatsTable> & {
21
+ spc?: number;
22
+ };
23
+ boosts?: Partial<I.StatsTable> & {
24
+ spc?: number;
25
+ };
26
+ }) => Pokemon;
27
+ declare const field: (field?: Partial<State.Field>) => Field;
28
+ declare const side: (side?: State.Side) => Side;
29
+ interface Gen {
30
+ gen: I.GenerationNum;
31
+ calculate: ReturnType<typeof calc>;
32
+ Pokemon: ReturnType<typeof pokemon>;
33
+ Move: ReturnType<typeof move>;
34
+ Field: typeof field;
35
+ Side: typeof side;
36
+ }
37
+ export declare function inGen(gen: I.GenerationNum, fn: (gen: Gen) => void): void;
38
+ export declare function inGens(from: I.GenerationNum, to: I.GenerationNum, fn: (gen: Gen) => void): void;
39
+ export declare function tests(name: string, fn: (gen: Gen) => void, type?: 'skip' | 'only'): void;
40
+ export declare function tests(name: string, from: I.GenerationNum, fn: (gen: Gen) => void, type?: 'skip' | 'only'): void;
41
+ export declare function tests(name: string, from: I.GenerationNum, to: I.GenerationNum, fn: (gen: Gen) => void, type?: 'skip' | 'only'): void;
42
+ declare global {
43
+ namespace jest {
44
+ interface Matchers<R, T> {
45
+ toMatch(gen: I.GenerationNum, notation?: '%' | 'px' | ResultDiff, diff?: ResultDiff): R;
46
+ }
47
+ }
48
+ }
49
+ type ResultDiff = Partial<Record<I.GenerationNum, Partial<ResultBreakdown>>>;
50
+ interface ResultBreakdown {
51
+ range: [number, number];
52
+ desc: string;
53
+ result: string;
54
+ }
55
+ export {};
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
13
+ var __read = (this && this.__read) || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o), r, ar = [], e;
17
+ try {
18
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
+ }
20
+ catch (error) { e = { error: error }; }
21
+ finally {
22
+ try {
23
+ if (r && !r.done && (m = i["return"])) m.call(i);
24
+ }
25
+ finally { if (e) throw e.error; }
26
+ }
27
+ return ar;
28
+ };
29
+ exports.__esModule = true;
30
+ exports.tests = exports.inGens = exports.inGen = void 0;
31
+ var index_1 = require("../index");
32
+ var field_1 = require("../field");
33
+ var calc = function (gen) { return function (attacker, defender, move, field) { return (0, index_1.calculate)(gen, attacker, defender, move, field); }; };
34
+ var move = function (gen) { return function (name, options) {
35
+ if (options === void 0) { options = {}; }
36
+ return new index_1.Move(gen, name, options);
37
+ }; };
38
+ var pokemon = function (gen) { return function (name, options) {
39
+ if (options === void 0) { options = {}; }
40
+ return new index_1.Pokemon(gen, name, options);
41
+ }; };
42
+ var field = function (field) {
43
+ if (field === void 0) { field = {}; }
44
+ return new field_1.Field(field);
45
+ };
46
+ var side = function (side) {
47
+ if (side === void 0) { side = {}; }
48
+ return new field_1.Side(side);
49
+ };
50
+ function inGen(gen, fn) {
51
+ fn({
52
+ gen: gen,
53
+ calculate: calc(gen),
54
+ Move: move(gen),
55
+ Pokemon: pokemon(gen),
56
+ Field: field,
57
+ Side: side
58
+ });
59
+ }
60
+ exports.inGen = inGen;
61
+ function inGens(from, to, fn) {
62
+ for (var gen = from; gen <= to; gen++) {
63
+ inGen(gen, fn);
64
+ }
65
+ }
66
+ exports.inGens = inGens;
67
+ function tests() {
68
+ var _a, _b, _c;
69
+ var args = [];
70
+ for (var _i = 0; _i < arguments.length; _i++) {
71
+ args[_i] = arguments[_i];
72
+ }
73
+ var name = args[0];
74
+ var from;
75
+ var to;
76
+ var fn;
77
+ var type = undefined;
78
+ if (typeof args[1] !== 'number') {
79
+ from = 1;
80
+ to = 9;
81
+ fn = args[1];
82
+ type = args[2];
83
+ }
84
+ else if (typeof args[2] !== 'number') {
85
+ from = (_a = args[1]) !== null && _a !== void 0 ? _a : 1;
86
+ to = 9;
87
+ fn = args[2];
88
+ type = args[3];
89
+ }
90
+ else {
91
+ from = (_b = args[1]) !== null && _b !== void 0 ? _b : 1;
92
+ to = (_c = args[2]) !== null && _c !== void 0 ? _c : 8;
93
+ fn = args[3];
94
+ type = args[4];
95
+ }
96
+ inGens(from, to, function (gen) {
97
+ var n = "".concat(name, " (gen ").concat(gen.gen, ")");
98
+ if (type === 'skip') {
99
+ test.skip(n, function () { return fn(gen); });
100
+ }
101
+ else if (type === 'only') {
102
+ test.only(n, function () { return fn(gen); });
103
+ }
104
+ else {
105
+ test(n, function () { return fn(gen); });
106
+ }
107
+ });
108
+ }
109
+ exports.tests = tests;
110
+ expect.extend({
111
+ toMatch: function (received, gen, notation, diff) {
112
+ var e_1, _a;
113
+ if (typeof notation !== 'string') {
114
+ diff = notation;
115
+ notation = '%';
116
+ }
117
+ if (!diff)
118
+ throw new Error('toMatch called with no diff!');
119
+ var breakdowns = Object.entries(diff).sort();
120
+ var expected = { range: undefined, desc: '', result: '' };
121
+ try {
122
+ for (var breakdowns_1 = __values(breakdowns), breakdowns_1_1 = breakdowns_1.next(); !breakdowns_1_1.done; breakdowns_1_1 = breakdowns_1.next()) {
123
+ var _b = __read(breakdowns_1_1.value, 2), g = _b[0], _c = _b[1], range = _c.range, desc = _c.desc, result = _c.result;
124
+ if (Number(g) > gen)
125
+ break;
126
+ if (range)
127
+ expected.range = range;
128
+ if (desc)
129
+ expected.desc = desc;
130
+ if (result)
131
+ expected.result = result;
132
+ }
133
+ }
134
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
135
+ finally {
136
+ try {
137
+ if (breakdowns_1_1 && !breakdowns_1_1.done && (_a = breakdowns_1["return"])) _a.call(breakdowns_1);
138
+ }
139
+ finally { if (e_1) throw e_1.error; }
140
+ }
141
+ if (!(expected.range || expected.desc || expected.result)) {
142
+ throw new Error("toMatch called with empty diff: ".concat(diff));
143
+ }
144
+ if (expected.range) {
145
+ if (this.isNot) {
146
+ expect(received.range()).not.toEqual(expected.range);
147
+ }
148
+ else {
149
+ expect(received.range()).toEqual(expected.range);
150
+ }
151
+ }
152
+ if (expected.desc) {
153
+ var r = received.fullDesc(notation).split(': ')[0];
154
+ if (this.isNot) {
155
+ expect(r).not.toEqual(expected.desc);
156
+ }
157
+ else {
158
+ expect(r).toEqual(expected.desc);
159
+ }
160
+ }
161
+ if (expected.result) {
162
+ var post = received.fullDesc(notation).split(': ')[1];
163
+ var r = "(".concat(post.split('(')[1]);
164
+ if (this.isNot) {
165
+ expect(r).not.toEqual(expected.result);
166
+ }
167
+ else {
168
+ expect(r).toEqual(expected.result);
169
+ }
170
+ }
171
+ return { pass: !this.isNot, message: function () { return ''; } };
172
+ }
173
+ });
174
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/test/helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ var index_1 = require("../index");
4
+ describe('Move', function () {
5
+ test('clone', function () {
6
+ var m = new index_1.Move(7, 'Blizzard', { useZ: true });
7
+ expect(m.name).toBe('Subzero Slammer');
8
+ expect(m.bp).toBe(185);
9
+ var clone = m.clone();
10
+ expect(clone.name).toBe('Subzero Slammer');
11
+ expect(clone.bp).toBe(185);
12
+ });
13
+ });
14
+ //# sourceMappingURL=move.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move.test.js","sourceRoot":"","sources":["../../src/test/move.test.ts"],"names":[],"mappings":";;AAAA,kCAA8B;AAE9B,QAAQ,CAAC,MAAM,EAAE;IACf,IAAI,CAAC,OAAO,EAAE;QACZ,IAAM,CAAC,GAAG,IAAI,YAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;QAChD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEvB,IAAM,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ var index_1 = require("../index");
4
+ describe('Pokemon', function () {
5
+ test('defaults', function () {
6
+ var p = new index_1.Pokemon(7, 'Gengar');
7
+ expect(p.name).toBe('Gengar');
8
+ expect(p.types).toEqual(['Ghost', 'Poison']);
9
+ expect(p.weightkg).toBe(40.5);
10
+ expect(p.level).toBe(100);
11
+ expect(p.gender).toBe('M');
12
+ expect(p.item).toBeUndefined();
13
+ expect(p.ability).toBe('Cursed Body');
14
+ expect(p.nature).toBe('Serious');
15
+ expect(p.status).toBe('');
16
+ expect(p.hasStatus()).toBe(false);
17
+ expect(p.toxicCounter).toBe(0);
18
+ expect(p.curHP()).toBe(p.stats.hp);
19
+ var stat;
20
+ for (stat in p.ivs) {
21
+ expect(p.ivs[stat]).toBe(31);
22
+ expect(p.evs[stat]).toBe(0);
23
+ expect(p.boosts[stat]).toBe(0);
24
+ }
25
+ expect(p.stats).toEqual({ hp: 261, atk: 166, def: 156, spa: 296, spd: 186, spe: 256 });
26
+ });
27
+ test('Pokemon full', function () {
28
+ var p = new index_1.Pokemon(7, 'Suicune', {
29
+ level: 50,
30
+ ability: 'Inner Focus',
31
+ item: 'Leftovers',
32
+ nature: 'Bold',
33
+ ivs: { spa: 30 },
34
+ evs: { spd: 4, def: 252, hp: 252 },
35
+ boosts: { atk: -1, spa: 2, spd: 1 },
36
+ curHP: 60,
37
+ status: 'tox',
38
+ toxicCounter: 2,
39
+ moves: ['Surf', 'Rest', 'Curse', 'Sleep Talk']
40
+ });
41
+ expect(p.name).toBe('Suicune');
42
+ expect(p.types).toEqual(['Water']);
43
+ expect(p.weightkg).toBe(187.0);
44
+ expect(p.level).toBe(50);
45
+ expect(p.gender).toBe('N');
46
+ expect(p.item).toBe('Leftovers');
47
+ expect(p.ability).toBe('Inner Focus');
48
+ expect(p.nature).toBe('Bold');
49
+ expect(p.status).toBe('tox');
50
+ expect(p.toxicCounter).toBe(2);
51
+ expect(p.curHP()).toBe(60);
52
+ expect(p.ivs).toEqual({ hp: 31, atk: 31, def: 31, spa: 30, spd: 31, spe: 31 });
53
+ expect(p.evs).toEqual({ hp: 252, atk: 0, def: 252, spa: 0, spd: 4, spe: 0 });
54
+ expect(p.boosts).toEqual({ hp: 0, atk: -1, def: 0, spa: 2, spd: 1, spe: 0 });
55
+ expect(p.stats).toEqual({ hp: 207, atk: 85, def: 183, spa: 110, spd: 136, spe: 105 });
56
+ expect(p.moves).toEqual(['Surf', 'Rest', 'Curse', 'Sleep Talk']);
57
+ });
58
+ test('gen1', function () {
59
+ var p = new index_1.Pokemon(1, 'Tauros', {
60
+ level: 100,
61
+ ivs: { spc: 20, def: 16 },
62
+ evs: { atk: 200 },
63
+ curHP: 500
64
+ });
65
+ expect(p.ivs).toEqual({ hp: 20, atk: 31, def: 16, spa: 20, spd: 20, spe: 31 });
66
+ expect(p.evs).toEqual({ hp: 252, atk: 200, def: 252, spa: 252, spd: 252, spe: 252 });
67
+ expect(p.stats).toEqual({ hp: 343, atk: 298, def: 274, spa: 228, spd: 228, spe: 318 });
68
+ expect(p.curHP()).toBe(p.maxHP());
69
+ });
70
+ test('getForme', function () {
71
+ expect(index_1.Pokemon.getForme(1, 'Gengar')).toBe('Gengar');
72
+ expect(index_1.Pokemon.getForme(7, 'Gengar', 'Black Sludge', 'Hypnosis')).toBe('Gengar');
73
+ expect(index_1.Pokemon.getForme(7, 'Gengar', 'Gengarite', 'Hypnosis')).toBe('Gengar-Mega');
74
+ expect(index_1.Pokemon.getForme(7, 'Charizard')).toBe('Charizard');
75
+ expect(index_1.Pokemon.getForme(7, 'Charizard', 'Charizardite X')).toBe('Charizard-Mega-X');
76
+ expect(index_1.Pokemon.getForme(7, 'Charizard', 'Charizardite Y')).toBe('Charizard-Mega-Y');
77
+ expect(index_1.Pokemon.getForme(7, 'Mewtwo', 'Choice Specs', 'Psystrike')).toBe('Mewtwo');
78
+ expect(index_1.Pokemon.getForme(7, 'Mewtwo', 'Mewtwonite X', 'Psystrike')).toBe('Mewtwo-Mega-X');
79
+ expect(index_1.Pokemon.getForme(7, 'Mewtwo', 'Mewtwonite Y', 'Psystrike')).toBe('Mewtwo-Mega-Y');
80
+ expect(index_1.Pokemon.getForme(7, 'Groudon', 'Choice Band', 'Earthquake')).toBe('Groudon');
81
+ expect(index_1.Pokemon.getForme(7, 'Groudon', 'Red Orb', 'Earthquake')).toBe('Groudon-Primal');
82
+ expect(index_1.Pokemon.getForme(7, 'Kyogre', 'Choice Specs', 'Surf')).toBe('Kyogre');
83
+ expect(index_1.Pokemon.getForme(7, 'Kyogre', 'Blue Orb', 'Surf')).toBe('Kyogre-Primal');
84
+ expect(index_1.Pokemon.getForme(7, 'Meloetta', 'Leftovers', 'Psychic')).toBe('Meloetta');
85
+ expect(index_1.Pokemon.getForme(7, 'Meloetta', 'Leftovers', 'Relic Song')).toBe('Meloetta-Pirouette');
86
+ expect(index_1.Pokemon.getForme(7, 'Rayquaza', undefined, 'Earthquake')).toBe('Rayquaza');
87
+ expect(index_1.Pokemon.getForme(7, 'Rayquaza', undefined, 'Dragon Ascent')).toBe('Rayquaza-Mega');
88
+ });
89
+ test('hasType', function () {
90
+ var p = new index_1.Pokemon(7, 'Gengar');
91
+ expect(p.hasType('Ghost')).toBe(true);
92
+ expect(p.hasType('Poison')).toBe(true);
93
+ expect(p.hasType('Fire')).toBe(false);
94
+ expect(p.hasType('Ice')).toBe(false);
95
+ });
96
+ test('Gigantamx weights', function () {
97
+ expect(new index_1.Pokemon(8, 'Venusaur-Gmax').weightkg).toBe(100);
98
+ expect(new index_1.Pokemon(8, 'Venusaur-Gmax', { isDynamaxed: true }).weightkg).toBe(0);
99
+ expect(new index_1.Pokemon(8, 'Venusaur-Gmax', { overrides: { weightkg: 50 } }).weightkg).toBe(50);
100
+ });
101
+ });
102
+ //# sourceMappingURL=pokemon.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pokemon.test.js","sourceRoot":"","sources":["../../src/test/pokemon.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ var data_1 = require("../data");
4
+ var stats_1 = require("../stats");
5
+ var util_1 = require("../mechanics/util");
6
+ describe('Stats', function () {
7
+ test('displayStat', function () {
8
+ expect(stats_1.Stats.displayStat('hp')).toBe('HP');
9
+ expect(stats_1.Stats.displayStat('atk')).toBe('Atk');
10
+ expect(stats_1.Stats.displayStat('def')).toBe('Def');
11
+ expect(stats_1.Stats.displayStat('spa')).toBe('SpA');
12
+ expect(stats_1.Stats.displayStat('spd')).toBe('SpD');
13
+ expect(stats_1.Stats.displayStat('spe')).toBe('Spe');
14
+ expect(stats_1.Stats.displayStat('spc')).toBe('Spc');
15
+ });
16
+ test('calcStat', function () {
17
+ var RBY = {
18
+ hp: 403,
19
+ atk: 298,
20
+ def: 298,
21
+ spa: 298,
22
+ spd: 298,
23
+ spe: 298
24
+ };
25
+ var ADV = { hp: 404, atk: 328, def: 299, spa: 269, spd: 299, spe: 299 };
26
+ for (var gen = 1; gen <= 9; gen++) {
27
+ for (var s in ADV) {
28
+ var stat = s;
29
+ var val = stats_1.Stats.calcStat(data_1.Generations.get(gen), stat, 100, 31, 252, 100, 'Adamant');
30
+ expect(val).toBe(gen < 3 ? RBY[stat] : ADV[stat]);
31
+ }
32
+ }
33
+ expect(stats_1.Stats.calcStat(data_1.Generations.get(8), 'hp', 1, 31, 252, 100, 'Jolly')).toBe(1);
34
+ expect(stats_1.Stats.calcStat(data_1.Generations.get(8), 'atk', 100, 31, 252, 100)).toBe(299);
35
+ });
36
+ test('dvs', function () {
37
+ for (var dv = 0; dv <= 15; dv++) {
38
+ expect(stats_1.Stats.IVToDV(stats_1.Stats.DVToIV(dv))).toBe(dv);
39
+ }
40
+ expect(stats_1.Stats.getHPDV({
41
+ atk: stats_1.Stats.DVToIV(15),
42
+ def: stats_1.Stats.DVToIV(15),
43
+ spc: stats_1.Stats.DVToIV(15),
44
+ spe: stats_1.Stats.DVToIV(15)
45
+ })).toBe(15);
46
+ expect(stats_1.Stats.getHPDV({
47
+ atk: stats_1.Stats.DVToIV(5),
48
+ def: stats_1.Stats.DVToIV(15),
49
+ spc: stats_1.Stats.DVToIV(13),
50
+ spe: stats_1.Stats.DVToIV(13)
51
+ })).toBe(15);
52
+ expect(stats_1.Stats.getHPDV({
53
+ atk: stats_1.Stats.DVToIV(15),
54
+ def: stats_1.Stats.DVToIV(3),
55
+ spc: stats_1.Stats.DVToIV(11),
56
+ spe: stats_1.Stats.DVToIV(10)
57
+ })).toBe(13);
58
+ });
59
+ test('gen 2 modifications', function () {
60
+ expect((0, util_1.getModifiedStat)(158, -1, data_1.Generations.get(2))).toBe(104);
61
+ expect((0, util_1.getModifiedStat)(238, -1, data_1.Generations.get(2))).toBe(157);
62
+ });
63
+ });
64
+ //# sourceMappingURL=stats.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.test.js","sourceRoot":"","sources":["../../src/test/stats.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ var util_1 = require("../util");
4
+ describe('util', function () {
5
+ test('extend', function () {
6
+ var obj1 = { a: 1, b: { c: 2 }, d: { e: 3 }, f: 4 };
7
+ var obj2 = { a: 2, b: { c: 3 }, d: 4, e: { f: 5 } };
8
+ expect((0, util_1.extend)(true, {}, obj1)).toEqual(obj1);
9
+ expect((0, util_1.extend)(true, {}, obj1, obj2)).toEqual({ a: 2, b: { c: 3 }, d: 4, e: { f: 5 }, f: 4 });
10
+ expect((0, util_1.extend)(true, {}, obj2, obj1)).toEqual({
11
+ a: 1,
12
+ b: { c: 2 },
13
+ d: { e: 3 },
14
+ e: { f: 5 },
15
+ f: 4
16
+ });
17
+ });
18
+ });
19
+ //# sourceMappingURL=utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../src/test/utils.test.ts"],"names":[],"mappings":";;AAAA,gCAA+B;AAE/B,QAAQ,CAAC,MAAM,EAAE;IACf,IAAI,CAAC,QAAQ,EAAE;QACb,IAAM,IAAI,GAAG,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;QAChD,IAAM,IAAI,GAAG,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAC,CAAC;QAEhD,MAAM,CAAC,IAAA,aAAM,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAA,aAAM,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;QACvF,MAAM,CAAC,IAAA,aAAM,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3C,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC;YACT,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC;YACT,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC;YACT,CAAC,EAAE,CAAC;SACL,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/dist/util.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ import type { ID } from './data/interface';
2
+ export declare function toID(text: any): ID;
3
+ export declare function error(err: boolean, msg: string): void;
4
+ export declare function assignWithout(a: {
5
+ [key: string]: any;
6
+ }, b: {
7
+ [key: string]: any;
8
+ }, exclude: Set<string>): void;
9
+ export type Primitive = string | number | boolean | bigint | symbol | undefined | null;
10
+ export type Builtin = Primitive | Function | Date | Error | RegExp;
11
+ export type IsTuple<T> = T extends [infer A] ? T : T extends [infer A, infer B] ? T : T extends [infer A, infer B, infer C] ? T : T extends [infer A, infer B, infer C, infer D] ? T : T extends [infer A, infer B, infer C, infer D, infer E] ? T : never;
12
+ export type DeepPartial<T> = T extends Builtin ? T : T extends Map<infer K, infer V> ? Map<DeepPartial<K>, DeepPartial<V>> : T extends ReadonlyMap<infer K, infer V> ? ReadonlyMap<DeepPartial<K>, DeepPartial<V>> : T extends Set<infer U> ? Set<DeepPartial<U>> : T extends ReadonlySet<infer U> ? ReadonlySet<DeepPartial<U>> : T extends Array<infer U> ? T extends IsTuple<T> ? {
13
+ [K in keyof T]?: DeepPartial<T[K]>;
14
+ } : Array<DeepPartial<U>> : T extends Promise<infer U> ? Promise<DeepPartial<U>> : T extends {} ? {
15
+ [K in keyof T]?: DeepPartial<T[K]>;
16
+ } : Partial<T>;
17
+ export declare function extend(this: any, ...args: any[]): any;
package/dist/util.js ADDED
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.extend = exports.assignWithout = exports.error = exports.toID = void 0;
4
+ function toID(text) {
5
+ return ('' + text).toLowerCase().replace(/[^a-z0-9]+/g, '');
6
+ }
7
+ exports.toID = toID;
8
+ function error(err, msg) {
9
+ if (err) {
10
+ throw new Error(msg);
11
+ }
12
+ else {
13
+ console.log(msg);
14
+ }
15
+ }
16
+ exports.error = error;
17
+ function assignWithout(a, b, exclude) {
18
+ for (var key in b) {
19
+ if (Object.prototype.hasOwnProperty.call(b, key) && !exclude.has(key)) {
20
+ a[key] = b[key];
21
+ }
22
+ }
23
+ }
24
+ exports.assignWithout = assignWithout;
25
+ var class2Type = {
26
+ '[object Boolean]': 'boolean',
27
+ '[object Number]': 'number',
28
+ '[object String]': 'string',
29
+ '[object Function]': 'function',
30
+ '[object Array]': 'array',
31
+ '[object Date]': 'date',
32
+ '[object RegExp]': 'regexp',
33
+ '[object Object]': 'object',
34
+ '[object Error]': 'error'
35
+ };
36
+ var coreToString = class2Type.toString;
37
+ var coreHasOwn = class2Type.hasOwnProperty;
38
+ function isFunction(obj) {
39
+ return getType(obj) === 'function';
40
+ }
41
+ function isWindow(obj) {
42
+ return obj != null && obj === obj.window;
43
+ }
44
+ function getType(obj) {
45
+ if (obj == null) {
46
+ return String(obj);
47
+ }
48
+ return typeof obj === 'object' || typeof obj === 'function'
49
+ ? class2Type[coreToString.call(obj)] || 'object'
50
+ : typeof obj;
51
+ }
52
+ function isPlainObject(obj) {
53
+ if (getType(obj) !== 'object' || obj.nodeType || isWindow(obj)) {
54
+ return false;
55
+ }
56
+ try {
57
+ if (obj.constructor && !coreHasOwn.call(obj.constructor.prototype, 'isPrototypeOf')) {
58
+ return false;
59
+ }
60
+ }
61
+ catch (e) {
62
+ return false;
63
+ }
64
+ return true;
65
+ }
66
+ function extend() {
67
+ var args = [];
68
+ for (var _i = 0; _i < arguments.length; _i++) {
69
+ args[_i] = arguments[_i];
70
+ }
71
+ var options, name, src, copy, copyIsArray, clone;
72
+ var target = args[0] || {};
73
+ var i = 1;
74
+ var deep = false;
75
+ var length = args.length;
76
+ if (typeof target === 'boolean') {
77
+ deep = target;
78
+ target = args[1] || {};
79
+ i = 2;
80
+ }
81
+ if (typeof target !== 'object' && !isFunction(target)) {
82
+ target = {};
83
+ }
84
+ if (length === i) {
85
+ target = this;
86
+ --i;
87
+ }
88
+ for (; i < length; i++) {
89
+ if ((options = args[i]) != null) {
90
+ for (name in options) {
91
+ src = target[name];
92
+ copy = options[name];
93
+ if (target === copy) {
94
+ continue;
95
+ }
96
+ if (deep && copy && (isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {
97
+ if (copyIsArray) {
98
+ copyIsArray = false;
99
+ clone = src && Array.isArray(src) ? src : [];
100
+ }
101
+ else {
102
+ clone = src && isPlainObject(src) ? src : {};
103
+ }
104
+ target[name] = extend(deep, clone, copy);
105
+ }
106
+ else if (copy !== undefined) {
107
+ target[name] = copy;
108
+ }
109
+ }
110
+ }
111
+ }
112
+ return target;
113
+ }
114
+ exports.extend = extend;
115
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/jest.config.js ADDED
@@ -0,0 +1,11 @@
1
+ module.exports = {
2
+ preset: 'ts-jest',
3
+ testEnvironment: 'node',
4
+ coverageDirectory: 'coverage',
5
+ testPathIgnorePatterns: ['<rootDir>/node_modules/', '<rootDir>/dist/'],
6
+ coveragePathIgnorePatterns: ['<rootDir>/node_modules/', '<rootDir>/dist/' ],
7
+ transform: {
8
+ '^.+\\.test\\.ts$': 'ts-jest',
9
+ },
10
+ };
11
+