@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,240 @@
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 __values = (this && this.__values) || function(o) {
14
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
15
+ if (m) return m.call(o);
16
+ if (o && typeof o.length === "number") return {
17
+ next: function () {
18
+ if (o && i >= o.length) o = void 0;
19
+ return { value: o && o[i++], done: !o };
20
+ }
21
+ };
22
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
23
+ };
24
+ exports.__esModule = true;
25
+ exports.Pokemon = void 0;
26
+ var stats_1 = require("./stats");
27
+ var util_1 = require("./util");
28
+ var STATS = ['hp', 'atk', 'def', 'spa', 'spd', 'spe'];
29
+ var SPC = new Set(['spc']);
30
+ var Pokemon = (function () {
31
+ function Pokemon(gen, name, options) {
32
+ var e_1, _a;
33
+ if (options === void 0) { options = {}; }
34
+ var _b;
35
+ this.species = (0, util_1.extend)(true, {}, gen.species.get((0, util_1.toID)(name)), options.overrides);
36
+ this.gen = gen;
37
+ this.name = options.name || name;
38
+ this.types = this.species.types;
39
+ this.weightkg = this.species.weightkg;
40
+ this.level = options.level || 100;
41
+ this.gender = options.gender || this.species.gender || 'M';
42
+ this.ability = options.ability || ((_b = this.species.abilities) === null || _b === void 0 ? void 0 : _b[0]) || undefined;
43
+ this.abilityOn = !!options.abilityOn;
44
+ this.isDynamaxed = !!options.isDynamaxed;
45
+ this.dynamaxLevel = this.isDynamaxed
46
+ ? (options.dynamaxLevel === undefined ? 10 : options.dynamaxLevel) : undefined;
47
+ this.isSaltCure = !!options.isSaltCure;
48
+ this.alliesFainted = options.alliesFainted;
49
+ this.boostedStat = options.boostedStat;
50
+ this.teraType = options.teraType;
51
+ this.item = options.item;
52
+ this.nature = options.nature || 'Serious';
53
+ this.ivs = Pokemon.withDefault(gen, options.ivs, 31);
54
+ this.evs = Pokemon.withDefault(gen, options.evs, gen.num >= 3 ? 0 : 252);
55
+ this.boosts = Pokemon.withDefault(gen, options.boosts, 0, false);
56
+ if (this.weightkg === 0 && !this.isDynamaxed && this.species.baseSpecies) {
57
+ this.weightkg = gen.species.get((0, util_1.toID)(this.species.baseSpecies)).weightkg;
58
+ }
59
+ if (gen.num < 3) {
60
+ this.ivs.hp = stats_1.Stats.DVToIV(stats_1.Stats.getHPDV({
61
+ atk: this.ivs.atk,
62
+ def: this.ivs.def,
63
+ spe: this.ivs.spe,
64
+ spc: this.ivs.spa
65
+ }));
66
+ }
67
+ this.rawStats = {};
68
+ this.stats = {};
69
+ try {
70
+ for (var STATS_1 = __values(STATS), STATS_1_1 = STATS_1.next(); !STATS_1_1.done; STATS_1_1 = STATS_1.next()) {
71
+ var stat = STATS_1_1.value;
72
+ var val = this.calcStat(gen, stat);
73
+ this.rawStats[stat] = val;
74
+ this.stats[stat] = val;
75
+ }
76
+ }
77
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
78
+ finally {
79
+ try {
80
+ if (STATS_1_1 && !STATS_1_1.done && (_a = STATS_1["return"])) _a.call(STATS_1);
81
+ }
82
+ finally { if (e_1) throw e_1.error; }
83
+ }
84
+ var curHP = options.curHP || options.originalCurHP;
85
+ this.originalCurHP = curHP && curHP <= this.rawStats.hp ? curHP : this.rawStats.hp;
86
+ this.status = options.status || '';
87
+ this.toxicCounter = options.toxicCounter || 0;
88
+ this.moves = options.moves || [];
89
+ }
90
+ Pokemon.prototype.maxHP = function (original) {
91
+ if (original === void 0) { original = false; }
92
+ if (!original && this.isDynamaxed && this.species.baseStats.hp !== 1) {
93
+ return Math.floor((this.rawStats.hp * (150 + 5 * this.dynamaxLevel)) / 100);
94
+ }
95
+ return this.rawStats.hp;
96
+ };
97
+ Pokemon.prototype.curHP = function (original) {
98
+ if (original === void 0) { original = false; }
99
+ if (!original && this.isDynamaxed && this.species.baseStats.hp !== 1) {
100
+ return Math.ceil((this.originalCurHP * (150 + 5 * this.dynamaxLevel)) / 100);
101
+ }
102
+ return this.originalCurHP;
103
+ };
104
+ Pokemon.prototype.hasAbility = function () {
105
+ var abilities = [];
106
+ for (var _i = 0; _i < arguments.length; _i++) {
107
+ abilities[_i] = arguments[_i];
108
+ }
109
+ return !!(this.ability && abilities.includes(this.ability));
110
+ };
111
+ Pokemon.prototype.hasItem = function () {
112
+ var items = [];
113
+ for (var _i = 0; _i < arguments.length; _i++) {
114
+ items[_i] = arguments[_i];
115
+ }
116
+ return !!(this.item && items.includes(this.item));
117
+ };
118
+ Pokemon.prototype.hasStatus = function () {
119
+ var statuses = [];
120
+ for (var _i = 0; _i < arguments.length; _i++) {
121
+ statuses[_i] = arguments[_i];
122
+ }
123
+ return !!(this.status && statuses.includes(this.status));
124
+ };
125
+ Pokemon.prototype.hasType = function () {
126
+ var e_2, _a;
127
+ var types = [];
128
+ for (var _i = 0; _i < arguments.length; _i++) {
129
+ types[_i] = arguments[_i];
130
+ }
131
+ try {
132
+ for (var types_1 = __values(types), types_1_1 = types_1.next(); !types_1_1.done; types_1_1 = types_1.next()) {
133
+ var type = types_1_1.value;
134
+ if (this.teraType ? this.teraType === type : this.types.includes(type))
135
+ return true;
136
+ }
137
+ }
138
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
139
+ finally {
140
+ try {
141
+ if (types_1_1 && !types_1_1.done && (_a = types_1["return"])) _a.call(types_1);
142
+ }
143
+ finally { if (e_2) throw e_2.error; }
144
+ }
145
+ return false;
146
+ };
147
+ Pokemon.prototype.hasOriginalType = function () {
148
+ var e_3, _a;
149
+ var types = [];
150
+ for (var _i = 0; _i < arguments.length; _i++) {
151
+ types[_i] = arguments[_i];
152
+ }
153
+ try {
154
+ for (var types_2 = __values(types), types_2_1 = types_2.next(); !types_2_1.done; types_2_1 = types_2.next()) {
155
+ var type = types_2_1.value;
156
+ if (this.types.includes(type))
157
+ return true;
158
+ }
159
+ }
160
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
161
+ finally {
162
+ try {
163
+ if (types_2_1 && !types_2_1.done && (_a = types_2["return"])) _a.call(types_2);
164
+ }
165
+ finally { if (e_3) throw e_3.error; }
166
+ }
167
+ return false;
168
+ };
169
+ Pokemon.prototype.named = function () {
170
+ var names = [];
171
+ for (var _i = 0; _i < arguments.length; _i++) {
172
+ names[_i] = arguments[_i];
173
+ }
174
+ return names.includes(this.name);
175
+ };
176
+ Pokemon.prototype.clone = function () {
177
+ return new Pokemon(this.gen, this.name, {
178
+ level: this.level,
179
+ ability: this.ability,
180
+ abilityOn: this.abilityOn,
181
+ isDynamaxed: this.isDynamaxed,
182
+ dynamaxLevel: this.dynamaxLevel,
183
+ isSaltCure: this.isSaltCure,
184
+ alliesFainted: this.alliesFainted,
185
+ boostedStat: this.boostedStat,
186
+ item: this.item,
187
+ gender: this.gender,
188
+ nature: this.nature,
189
+ ivs: (0, util_1.extend)(true, {}, this.ivs),
190
+ evs: (0, util_1.extend)(true, {}, this.evs),
191
+ boosts: (0, util_1.extend)(true, {}, this.boosts),
192
+ originalCurHP: this.originalCurHP,
193
+ status: this.status,
194
+ teraType: this.teraType,
195
+ toxicCounter: this.toxicCounter,
196
+ moves: this.moves.slice(),
197
+ overrides: this.species
198
+ });
199
+ };
200
+ Pokemon.prototype.calcStat = function (gen, stat) {
201
+ return stats_1.Stats.calcStat(gen, stat, this.species.baseStats[stat], this.ivs[stat], this.evs[stat], this.level, this.nature);
202
+ };
203
+ Pokemon.getForme = function (gen, speciesName, item, moveName) {
204
+ var species = gen.species.get((0, util_1.toID)(speciesName));
205
+ if (!(species === null || species === void 0 ? void 0 : species.otherFormes)) {
206
+ return speciesName;
207
+ }
208
+ var i = 0;
209
+ if ((item &&
210
+ ((item.includes('ite') && !item.includes('ite Y')) ||
211
+ (speciesName === 'Groudon' && item === 'Red Orb') ||
212
+ (speciesName === 'Kyogre' && item === 'Blue Orb'))) ||
213
+ (moveName && speciesName === 'Meloetta' && moveName === 'Relic Song') ||
214
+ (speciesName === 'Rayquaza' && moveName === 'Dragon Ascent')) {
215
+ i = 1;
216
+ }
217
+ else if (item === null || item === void 0 ? void 0 : item.includes('ite Y')) {
218
+ i = 2;
219
+ }
220
+ return i ? species.otherFormes[i - 1] : species.name;
221
+ };
222
+ Pokemon.withDefault = function (gen, current, val, match) {
223
+ if (match === void 0) { match = true; }
224
+ var cur = {};
225
+ if (current) {
226
+ (0, util_1.assignWithout)(cur, current, SPC);
227
+ if (current.spc) {
228
+ cur.spa = current.spc;
229
+ cur.spd = current.spc;
230
+ }
231
+ if (match && gen.num <= 2 && current.spa !== current.spd) {
232
+ throw new Error('Special Attack and Special Defense must match before Gen 3');
233
+ }
234
+ }
235
+ return __assign({ hp: val, atk: val, def: val, spa: val, spd: val, spe: val }, cur);
236
+ };
237
+ return Pokemon;
238
+ }());
239
+ exports.Pokemon = Pokemon;
240
+ //# sourceMappingURL=pokemon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pokemon.js","sourceRoot":"","sources":["../src/pokemon.ts"],"names":[],"mappings":"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"}