@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,636 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __generator = (this && this.__generator) || function (thisArg, body) {
14
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
15
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
16
+ function verb(n) { return function (v) { return step([n, v]); }; }
17
+ function step(op) {
18
+ if (f) throw new TypeError("Generator is already executing.");
19
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
20
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
21
+ if (y = 0, t) op = [op[0] & 2, t.value];
22
+ switch (op[0]) {
23
+ case 0: case 1: t = op; break;
24
+ case 4: _.label++; return { value: op[1], done: false };
25
+ case 5: _.label++; y = op[1]; op = [0]; continue;
26
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
27
+ default:
28
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
29
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
30
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
31
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
32
+ if (t[2]) _.ops.pop();
33
+ _.trys.pop(); continue;
34
+ }
35
+ op = body.call(thisArg, _);
36
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
37
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
38
+ }
39
+ };
40
+ var __read = (this && this.__read) || function (o, n) {
41
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
42
+ if (!m) return o;
43
+ var i = m.call(o), r, ar = [], e;
44
+ try {
45
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
46
+ }
47
+ catch (error) { e = { error: error }; }
48
+ finally {
49
+ try {
50
+ if (r && !r.done && (m = i["return"])) m.call(i);
51
+ }
52
+ finally { if (e) throw e.error; }
53
+ }
54
+ return ar;
55
+ };
56
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
57
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
58
+ if (ar || !(i in from)) {
59
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
60
+ ar[i] = from[i];
61
+ }
62
+ }
63
+ return to.concat(ar || Array.prototype.slice.call(from));
64
+ };
65
+ exports.__esModule = true;
66
+ exports.Natures = exports.Types = exports.Generations = exports.toID = void 0;
67
+ function toID(s) {
68
+ return ('' + s).toLowerCase().replace(/[^a-z0-9]+/g, '');
69
+ }
70
+ exports.toID = toID;
71
+ var GENERATIONS = Object.create(null);
72
+ var Generations = (function () {
73
+ function Generations(dex) {
74
+ this.dex = dex;
75
+ }
76
+ Generations.prototype.get = function (gen) {
77
+ if (GENERATIONS[gen])
78
+ return GENERATIONS[gen];
79
+ return (GENERATIONS[gen] = new Generation(this.dex.forGen(gen)));
80
+ };
81
+ return Generations;
82
+ }());
83
+ exports.Generations = Generations;
84
+ var Generation = (function () {
85
+ function Generation(dex) {
86
+ this.dex = dex;
87
+ this.abilities = new Abilities(dex);
88
+ this.items = new Items(dex);
89
+ this.moves = new Moves(dex);
90
+ this.species = new Species(dex);
91
+ this.types = new Types(dex);
92
+ this.natures = new Natures(dex);
93
+ this.num = this.dex.gen;
94
+ }
95
+ return Generation;
96
+ }());
97
+ var Abilities = (function () {
98
+ function Abilities(dex) {
99
+ this.dex = dex;
100
+ }
101
+ Abilities.prototype.get = function (name) {
102
+ var ability = this.dex.abilities.get(name);
103
+ if (ability.isNonstandard === 'CAP' && this.dex.gen < 4)
104
+ return undefined;
105
+ return exists(ability, this.dex.gen) ? new Ability(ability) : undefined;
106
+ };
107
+ Abilities.prototype[Symbol.iterator] = function () {
108
+ var _a, _b, _c, _i, id, a;
109
+ return __generator(this, function (_d) {
110
+ switch (_d.label) {
111
+ case 0:
112
+ _a = this.dex.data.Abilities;
113
+ _b = [];
114
+ for (_c in _a)
115
+ _b.push(_c);
116
+ _i = 0;
117
+ _d.label = 1;
118
+ case 1:
119
+ if (!(_i < _b.length)) return [3, 4];
120
+ _c = _b[_i];
121
+ if (!(_c in _a)) return [3, 3];
122
+ id = _c;
123
+ a = this.get(id);
124
+ if (!a) return [3, 3];
125
+ return [4, a];
126
+ case 2:
127
+ _d.sent();
128
+ _d.label = 3;
129
+ case 3:
130
+ _i++;
131
+ return [3, 1];
132
+ case 4: return [2];
133
+ }
134
+ });
135
+ };
136
+ return Abilities;
137
+ }());
138
+ var Ability = (function () {
139
+ function Ability(ability) {
140
+ this.kind = 'Ability';
141
+ this.id = ability.id;
142
+ this.name = ability.name;
143
+ }
144
+ return Ability;
145
+ }());
146
+ var Items = (function () {
147
+ function Items(dex) {
148
+ this.dex = dex;
149
+ }
150
+ Items.prototype.get = function (name) {
151
+ if (this.dex.gen < 2)
152
+ return undefined;
153
+ var item = this.dex.items.get(name);
154
+ if (this.dex.gen === 3 && item.id === 'enigmaberry') {
155
+ item = this.dex.forGen(4).items.get('enigmaberry');
156
+ }
157
+ return exists(item, this.dex.gen) ? new Item(item, this.dex.gen) : undefined;
158
+ };
159
+ Items.prototype[Symbol.iterator] = function () {
160
+ var _a, _b, _c, _i, id, i;
161
+ return __generator(this, function (_d) {
162
+ switch (_d.label) {
163
+ case 0:
164
+ _a = this.dex.data.Items;
165
+ _b = [];
166
+ for (_c in _a)
167
+ _b.push(_c);
168
+ _i = 0;
169
+ _d.label = 1;
170
+ case 1:
171
+ if (!(_i < _b.length)) return [3, 4];
172
+ _c = _b[_i];
173
+ if (!(_c in _a)) return [3, 3];
174
+ id = _c;
175
+ i = this.get(id);
176
+ if (!i) return [3, 3];
177
+ return [4, i];
178
+ case 2:
179
+ _d.sent();
180
+ _d.label = 3;
181
+ case 3:
182
+ _i++;
183
+ return [3, 1];
184
+ case 4: return [2];
185
+ }
186
+ });
187
+ };
188
+ return Items;
189
+ }());
190
+ var Item = (function () {
191
+ function Item(item, gen) {
192
+ this.kind = 'Item';
193
+ this.id = item.id;
194
+ this.name = item.name;
195
+ this.megaEvolves = item.megaEvolves;
196
+ this.isBerry = item.isBerry;
197
+ this.naturalGift = item.naturalGift && {
198
+ basePower: item.naturalGift.basePower - (gen === 2 ? 20 : 0),
199
+ type: item.naturalGift.type
200
+ };
201
+ }
202
+ return Item;
203
+ }());
204
+ var Moves = (function () {
205
+ function Moves(dex) {
206
+ this.dex = dex;
207
+ }
208
+ Moves.prototype.get = function (name) {
209
+ var move = this.dex.moves.get(name);
210
+ return exists(move, this.dex.gen) ? new Move(move, this.dex) : undefined;
211
+ };
212
+ Moves.prototype[Symbol.iterator] = function () {
213
+ var _a, _b, _c, _i, id, m;
214
+ return __generator(this, function (_d) {
215
+ switch (_d.label) {
216
+ case 0: return [4, NoMove(this.dex)];
217
+ case 1:
218
+ _d.sent();
219
+ _a = this.dex.data.Moves;
220
+ _b = [];
221
+ for (_c in _a)
222
+ _b.push(_c);
223
+ _i = 0;
224
+ _d.label = 2;
225
+ case 2:
226
+ if (!(_i < _b.length)) return [3, 5];
227
+ _c = _b[_i];
228
+ if (!(_c in _a)) return [3, 4];
229
+ id = _c;
230
+ m = this.get(id);
231
+ if (!m) return [3, 4];
232
+ return [4, m];
233
+ case 3:
234
+ _d.sent();
235
+ _d.label = 4;
236
+ case 4:
237
+ _i++;
238
+ return [3, 2];
239
+ case 5: return [2];
240
+ }
241
+ });
242
+ };
243
+ return Moves;
244
+ }());
245
+ var Move = (function () {
246
+ function Move(move, dex) {
247
+ var _a, _b, _c;
248
+ this.kind = 'Move';
249
+ this.id = move.id === 'hiddenpower' ? toID(move.name) : move.id;
250
+ this.name = move.name;
251
+ this.basePower = move.basePower;
252
+ this.type = move.type;
253
+ this.overrideOffensiveStat = move.overrideOffensiveStat;
254
+ this.overrideDefensiveStat = move.overrideDefensiveStat;
255
+ this.overrideOffensivePokemon = move.overrideOffensivePokemon;
256
+ this.overrideDefensivePokemon = move.overrideDefensivePokemon;
257
+ if (move.category === 'Status' || dex.gen >= 4) {
258
+ this.category = move.category;
259
+ }
260
+ if (move.recoil)
261
+ this.recoil = move.recoil;
262
+ if (move.hasCrashDamage)
263
+ this.hasCrashDamage = move.hasCrashDamage;
264
+ if (move.mindBlownRecoil)
265
+ this.mindBlownRecoil = move.mindBlownRecoil;
266
+ if (move.struggleRecoil)
267
+ this.struggleRecoil = move.struggleRecoil;
268
+ var stat = move.category === 'Special' ? 'spa' : 'atk';
269
+ if (((_a = move.self) === null || _a === void 0 ? void 0 : _a.boosts) && move.self.boosts[stat] && move.self.boosts[stat] < 0) {
270
+ this.self = move.self;
271
+ }
272
+ if (move.multihit)
273
+ this.multihit = move.multihit;
274
+ if (move.multiaccuracy)
275
+ this.multiaccuracy = move.multiaccuracy;
276
+ if (move.drain)
277
+ this.drain = move.drain;
278
+ if (move.willCrit)
279
+ this.willCrit = move.willCrit;
280
+ if (move.priority > 0)
281
+ this.priority = move.priority;
282
+ this.flags = {};
283
+ if (dex.gen >= 2) {
284
+ if (move.breaksProtect)
285
+ this.breaksProtect = move.breaksProtect;
286
+ }
287
+ if (dex.gen >= 3) {
288
+ if (move.flags.contact)
289
+ this.flags.contact = move.flags.contact;
290
+ if (move.flags.sound)
291
+ this.flags.sound = move.flags.sound;
292
+ if (['allAdjacent', 'allAdjacentFoes'].includes(move.target)) {
293
+ this.target = move.target;
294
+ }
295
+ }
296
+ if (dex.gen >= 4) {
297
+ if (move.flags.punch)
298
+ this.flags.punch = move.flags.punch;
299
+ if (move.flags.bite)
300
+ this.flags.bite = move.flags.bite;
301
+ }
302
+ if (dex.gen >= 5) {
303
+ if (move.ignoreDefensive)
304
+ this.ignoreDefensive = move.ignoreDefensive;
305
+ if ('secondaries' in move && ((_b = move.secondaries) === null || _b === void 0 ? void 0 : _b.length)) {
306
+ this.secondaries = true;
307
+ }
308
+ }
309
+ if (dex.gen >= 6) {
310
+ if (move.flags.bullet)
311
+ this.flags.bullet = move.flags.bullet;
312
+ if (move.flags.pulse)
313
+ this.flags.pulse = move.flags.pulse;
314
+ }
315
+ if (dex.gen >= 7) {
316
+ if (move.isZ)
317
+ this.isZ = true;
318
+ if ((_c = move.zMove) === null || _c === void 0 ? void 0 : _c.basePower)
319
+ this.zMove = { basePower: move.zMove.basePower };
320
+ }
321
+ if (dex.gen >= 8) {
322
+ if (move.isMax)
323
+ this.isMax = true;
324
+ if (move.maxMove)
325
+ this.maxMove = { basePower: move.maxMove.basePower };
326
+ }
327
+ if (dex.gen >= 9) {
328
+ if (move.flags.wind)
329
+ this.flags.wind = move.flags.wind;
330
+ if (move.flags.slicing)
331
+ this.flags.slicing = move.flags.slicing;
332
+ }
333
+ }
334
+ return Move;
335
+ }());
336
+ var Species = (function () {
337
+ function Species(dex) {
338
+ this.dex = dex;
339
+ }
340
+ Species.prototype.get = function (name) {
341
+ var species = this.dex.species.get(name);
342
+ if (this.dex.gen >= 6 && species.id === 'aegislashboth')
343
+ return AegislashBoth(this.dex);
344
+ return exists(species, this.dex.gen) ? new Specie(species, this.dex) : undefined;
345
+ };
346
+ Species.prototype[Symbol.iterator] = function () {
347
+ var _a, _b, _c, _i, id, s;
348
+ return __generator(this, function (_d) {
349
+ switch (_d.label) {
350
+ case 0:
351
+ _a = this.dex.data.Species;
352
+ _b = [];
353
+ for (_c in _a)
354
+ _b.push(_c);
355
+ _i = 0;
356
+ _d.label = 1;
357
+ case 1:
358
+ if (!(_i < _b.length)) return [3, 6];
359
+ _c = _b[_i];
360
+ if (!(_c in _a)) return [3, 5];
361
+ id = _c;
362
+ s = this.get(id);
363
+ if (!s) return [3, 5];
364
+ if (!(id === 'aegislash')) return [3, 3];
365
+ return [4, AegislashBoth(this.dex)];
366
+ case 2:
367
+ _d.sent();
368
+ _d.label = 3;
369
+ case 3: return [4, s];
370
+ case 4:
371
+ _d.sent();
372
+ _d.label = 5;
373
+ case 5:
374
+ _i++;
375
+ return [3, 1];
376
+ case 6: return [2];
377
+ }
378
+ });
379
+ };
380
+ return Species;
381
+ }());
382
+ function NoMove(dex) {
383
+ return new Move({
384
+ id: 'nomove',
385
+ name: '(No Move)',
386
+ basePower: 0,
387
+ type: 'Normal',
388
+ category: 'Status',
389
+ target: 'any',
390
+ flags: {},
391
+ gen: 1,
392
+ priority: 0
393
+ }, dex);
394
+ }
395
+ var Specie = (function () {
396
+ function Specie(species, dex) {
397
+ var _a, _b;
398
+ this.kind = 'Species';
399
+ this.id = (species.id === 'aegislash' ? 'aegislashshield' : species.id);
400
+ this.name = (species.name === 'Aegislash' ? 'Aegislash-Shield' : species.name);
401
+ this.types = species.types;
402
+ this.baseStats = species.baseStats;
403
+ this.weightkg = species.weightkg;
404
+ var nfe = !!((_a = species.evos) === null || _a === void 0 ? void 0 : _a.some(function (s) { return exists(dex.species.get(s), dex.gen); }));
405
+ if (nfe)
406
+ this.nfe = nfe;
407
+ if (species.gender === 'N' && dex.gen > 1)
408
+ this.gender = species.gender;
409
+ var formes = (_b = species.otherFormes) === null || _b === void 0 ? void 0 : _b.filter(function (s) { return exists(dex.species.get(s), dex.gen); });
410
+ if (species.id.startsWith('aegislash')) {
411
+ if (species.id === 'aegislashblade') {
412
+ this.otherFormes = ['Aegislash-Shield', 'Aegislash-Both'];
413
+ }
414
+ else {
415
+ this.baseSpecies = 'Aegislash-Blade';
416
+ }
417
+ }
418
+ else if (species.id === 'toxtricity') {
419
+ this.otherFormes = [
420
+ 'Toxtricity-Gmax', 'Toxtricity-Low-Key', 'Toxtricity-Low-Key-Gmax',
421
+ ];
422
+ }
423
+ else if (species.id === 'toxtricitylowkey') {
424
+ this.baseSpecies = 'Toxtricity';
425
+ }
426
+ else if (species.id === 'urshifu') {
427
+ this.otherFormes = [
428
+ 'Urshifu-Gmax', 'Urshifu-Rapid-Strike', 'Urshifu-Rapid-Strike-Gmax',
429
+ ];
430
+ }
431
+ else if (species.id === 'eternatus') {
432
+ this.otherFormes = ['Eternatus-Eternamax'];
433
+ }
434
+ else if (formes === null || formes === void 0 ? void 0 : formes.length) {
435
+ this.otherFormes = __spreadArray([], __read(formes), false).sort();
436
+ }
437
+ else if (species.baseSpecies !== this.name) {
438
+ this.baseSpecies = species.baseSpecies;
439
+ }
440
+ if (dex.gen === 8 && species.canGigantamax &&
441
+ !(species.id.startsWith('toxtricity') || species.id.startsWith('urshifu'))) {
442
+ var formes_1 = this.otherFormes || [];
443
+ var gmax = dex.species.get("".concat(species.name, "-Gmax"));
444
+ if (exists(gmax, dex.gen))
445
+ this.otherFormes = __spreadArray(__spreadArray([], __read(formes_1), false), [gmax.name], false).sort();
446
+ }
447
+ if (dex.gen > 2)
448
+ this.abilities = { 0: species.abilities[0] };
449
+ }
450
+ return Specie;
451
+ }());
452
+ function AegislashBoth(dex) {
453
+ var shield = dex.species.get('aegislash');
454
+ var blade = dex.species.get('aegislashblade');
455
+ var baseStats = {
456
+ hp: shield.baseStats.hp,
457
+ atk: blade.baseStats.atk,
458
+ def: shield.baseStats.def,
459
+ spa: blade.baseStats.spa,
460
+ spd: shield.baseStats.spd,
461
+ spe: shield.baseStats.spe
462
+ };
463
+ return new Specie(__assign(__assign({}, shield), { baseStats: baseStats, id: 'aegislashboth', name: 'Aegislash-Both' }), dex);
464
+ }
465
+ var DAMAGE_TAKEN = [1, 2, 0.5, 0];
466
+ var Types = (function () {
467
+ function Types(dex) {
468
+ this.dex = dex;
469
+ var unknown = {
470
+ kind: 'Type',
471
+ id: '',
472
+ name: '???',
473
+ effectiveness: {}
474
+ };
475
+ this.byID = {};
476
+ for (var id in this.dex.data.Types) {
477
+ if (!exists(this.dex.types.get(id), this.dex.gen))
478
+ continue;
479
+ var name_1 = id[0].toUpperCase() + id.slice(1);
480
+ var effectiveness = { '???': 1 };
481
+ for (var t2ID in this.dex.data.Types) {
482
+ if (!exists(this.dex.types.get(t2ID), this.dex.gen))
483
+ continue;
484
+ var t = t2ID[0].toUpperCase() + t2ID.slice(1);
485
+ effectiveness[t] = DAMAGE_TAKEN[this.dex.data.Types[t2ID].damageTaken[name_1]];
486
+ }
487
+ unknown.effectiveness[name_1] = 1;
488
+ this.byID[id] = { kind: 'Type', id: id, name: name_1, effectiveness: effectiveness };
489
+ }
490
+ this.byID[unknown.id] = unknown;
491
+ }
492
+ Types.prototype.get = function (name) {
493
+ return this.byID[toID(name)];
494
+ };
495
+ Types.prototype[Symbol.iterator] = function () {
496
+ var _a, _b, _c, _i, id;
497
+ return __generator(this, function (_d) {
498
+ switch (_d.label) {
499
+ case 0:
500
+ _a = this.byID;
501
+ _b = [];
502
+ for (_c in _a)
503
+ _b.push(_c);
504
+ _i = 0;
505
+ _d.label = 1;
506
+ case 1:
507
+ if (!(_i < _b.length)) return [3, 4];
508
+ _c = _b[_i];
509
+ if (!(_c in _a)) return [3, 3];
510
+ id = _c;
511
+ return [4, this.byID[id]];
512
+ case 2:
513
+ _d.sent();
514
+ _d.label = 3;
515
+ case 3:
516
+ _i++;
517
+ return [3, 1];
518
+ case 4: return [2];
519
+ }
520
+ });
521
+ };
522
+ return Types;
523
+ }());
524
+ exports.Types = Types;
525
+ var Natures = (function () {
526
+ function Natures(dex) {
527
+ this.dex = dex;
528
+ }
529
+ Natures.prototype.get = function (name) {
530
+ var nature = this.dex.natures.get(name);
531
+ return nature.exists ? new Nature(nature) : undefined;
532
+ };
533
+ Natures.prototype[Symbol.iterator] = function () {
534
+ var _a, _b, _c, _i, id, n;
535
+ return __generator(this, function (_d) {
536
+ switch (_d.label) {
537
+ case 0:
538
+ _a = this.dex.data.Natures;
539
+ _b = [];
540
+ for (_c in _a)
541
+ _b.push(_c);
542
+ _i = 0;
543
+ _d.label = 1;
544
+ case 1:
545
+ if (!(_i < _b.length)) return [3, 4];
546
+ _c = _b[_i];
547
+ if (!(_c in _a)) return [3, 3];
548
+ id = _c;
549
+ n = this.get(id);
550
+ if (!n) return [3, 3];
551
+ return [4, n];
552
+ case 2:
553
+ _d.sent();
554
+ _d.label = 3;
555
+ case 3:
556
+ _i++;
557
+ return [3, 1];
558
+ case 4: return [2];
559
+ }
560
+ });
561
+ };
562
+ return Natures;
563
+ }());
564
+ exports.Natures = Natures;
565
+ var Nature = (function () {
566
+ function Nature(nature) {
567
+ this.kind = 'Nature';
568
+ this.id = nature.id;
569
+ this.name = nature.name;
570
+ switch (nature.id) {
571
+ case 'hardy':
572
+ this.plus = 'atk';
573
+ this.minus = 'atk';
574
+ break;
575
+ case 'docile':
576
+ this.plus = 'def';
577
+ this.minus = 'def';
578
+ break;
579
+ case 'bashful':
580
+ this.plus = 'spa';
581
+ this.minus = 'spa';
582
+ break;
583
+ case 'quirky':
584
+ this.plus = 'spd';
585
+ this.minus = 'spd';
586
+ break;
587
+ case 'serious':
588
+ this.plus = 'spe';
589
+ this.minus = 'spe';
590
+ break;
591
+ default:
592
+ this.plus = nature.plus;
593
+ this.minus = nature.minus;
594
+ }
595
+ }
596
+ return Nature;
597
+ }());
598
+ var NATDEX_BANNED = [
599
+ 'Pikachu-Cosplay',
600
+ 'Pikachu-Rock-Star',
601
+ 'Pikachu-Belle',
602
+ 'Pikachu-Pop-Star',
603
+ 'Pikachu-PhD',
604
+ 'Pikachu-Libre',
605
+ 'Pichu-Spiky-eared',
606
+ 'Floette-Eternal',
607
+ ];
608
+ function exists(val, gen) {
609
+ if (!val.exists || val.id === 'noability')
610
+ return false;
611
+ if (gen === 7 && val.isNonstandard === 'LGPE')
612
+ return true;
613
+ if (gen >= 8) {
614
+ if (gen === 8) {
615
+ if (('isMax' in val && val.isMax) || val.isNonstandard === 'Gigantamax')
616
+ return true;
617
+ if (['eternatuseternamax', 'zarude', 'zarudedada'].includes(val.id))
618
+ return true;
619
+ if (val.isNonstandard === 'Future')
620
+ return false;
621
+ }
622
+ if (val.isNonstandard === 'Past' && !NATDEX_BANNED.includes(val.name))
623
+ return true;
624
+ if (gen > 8 && 'isZ' in val && val.isZ)
625
+ return false;
626
+ if (gen > 8 && val.isNonstandard === 'Unobtainable')
627
+ return true;
628
+ }
629
+ if (gen >= 6 && ['floetteeternal'].includes(val.id))
630
+ return true;
631
+ if (val.isNonstandard && !['CAP', 'Unobtainable', 'Gigantamax'].includes(val.isNonstandard)) {
632
+ return false;
633
+ }
634
+ return !('tier' in val && ['Illegal', 'Unreleased'].includes(val.tier));
635
+ }
636
+ //# sourceMappingURL=gen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gen.js","sourceRoot":"","sources":["../../src/test/gen.ts"],"names":[],"mappings":"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"}