@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 @@
1
+ {"version":3,"file":"desc.js","sourceRoot":"","sources":["../src/desc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { State } from './state';
2
+ import type { GameType, Weather, Terrain } from './data/interface';
3
+ export declare class Field implements State.Field {
4
+ gameType: GameType;
5
+ weather?: Weather;
6
+ terrain?: Terrain;
7
+ isMagicRoom: boolean;
8
+ isWonderRoom: boolean;
9
+ isGravity: boolean;
10
+ isAuraBreak?: boolean;
11
+ isFairyAura?: boolean;
12
+ isDarkAura?: boolean;
13
+ isBeadsOfRuin?: boolean;
14
+ isSwordOfRuin?: boolean;
15
+ isTabletsOfRuin?: boolean;
16
+ isVesselOfRuin?: boolean;
17
+ attackerSide: Side;
18
+ defenderSide: Side;
19
+ constructor(field?: Partial<State.Field>);
20
+ hasWeather(...weathers: Weather[]): boolean;
21
+ hasTerrain(...terrains: Terrain[]): boolean;
22
+ swap(): this;
23
+ clone(): Field;
24
+ }
25
+ export declare class Side implements State.Side {
26
+ spikes: number;
27
+ steelsurge: boolean;
28
+ vinelash: boolean;
29
+ wildfire: boolean;
30
+ cannonade: boolean;
31
+ volcalith: boolean;
32
+ isSR: boolean;
33
+ isReflect: boolean;
34
+ isLightScreen: boolean;
35
+ isProtected: boolean;
36
+ isSeeded: boolean;
37
+ isForesight: boolean;
38
+ isTailwind: boolean;
39
+ isHelpingHand: boolean;
40
+ isFlowerGift: boolean;
41
+ isFriendGuard: boolean;
42
+ isAuroraVeil: boolean;
43
+ isBattery: boolean;
44
+ isPowerSpot: boolean;
45
+ isSteelySpirit: boolean;
46
+ isSwitching?: 'out' | 'in';
47
+ constructor(side?: State.Side);
48
+ clone(): Side;
49
+ }
package/dist/field.js ADDED
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ exports.__esModule = true;
19
+ exports.Side = exports.Field = void 0;
20
+ var Field = (function () {
21
+ function Field(field) {
22
+ if (field === void 0) { field = {}; }
23
+ this.gameType = field.gameType || 'Singles';
24
+ this.terrain = field.terrain;
25
+ this.weather = field.weather;
26
+ this.isMagicRoom = !!field.isMagicRoom;
27
+ this.isWonderRoom = !!field.isWonderRoom;
28
+ this.isGravity = !!field.isGravity;
29
+ this.isAuraBreak = field.isAuraBreak || false;
30
+ this.isFairyAura = field.isFairyAura || false;
31
+ this.isDarkAura = field.isDarkAura || false;
32
+ this.isBeadsOfRuin = field.isBeadsOfRuin || false;
33
+ this.isSwordOfRuin = field.isSwordOfRuin || false;
34
+ this.isTabletsOfRuin = field.isTabletsOfRuin || false;
35
+ this.isVesselOfRuin = field.isVesselOfRuin || false;
36
+ this.attackerSide = new Side(field.attackerSide || {});
37
+ this.defenderSide = new Side(field.defenderSide || {});
38
+ }
39
+ Field.prototype.hasWeather = function () {
40
+ var weathers = [];
41
+ for (var _i = 0; _i < arguments.length; _i++) {
42
+ weathers[_i] = arguments[_i];
43
+ }
44
+ return !!(this.weather && weathers.includes(this.weather));
45
+ };
46
+ Field.prototype.hasTerrain = function () {
47
+ var terrains = [];
48
+ for (var _i = 0; _i < arguments.length; _i++) {
49
+ terrains[_i] = arguments[_i];
50
+ }
51
+ return !!(this.terrain && terrains.includes(this.terrain));
52
+ };
53
+ Field.prototype.swap = function () {
54
+ var _a;
55
+ _a = __read([this.defenderSide, this.attackerSide], 2), this.attackerSide = _a[0], this.defenderSide = _a[1];
56
+ return this;
57
+ };
58
+ Field.prototype.clone = function () {
59
+ return new Field({
60
+ gameType: this.gameType,
61
+ weather: this.weather,
62
+ terrain: this.terrain,
63
+ isMagicRoom: this.isMagicRoom,
64
+ isWonderRoom: this.isWonderRoom,
65
+ isGravity: this.isGravity,
66
+ attackerSide: this.attackerSide,
67
+ defenderSide: this.defenderSide,
68
+ isAuraBreak: this.isAuraBreak,
69
+ isDarkAura: this.isDarkAura,
70
+ isFairyAura: this.isFairyAura,
71
+ isBeadsOfRuin: this.isBeadsOfRuin,
72
+ isSwordOfRuin: this.isSwordOfRuin,
73
+ isTabletsOfRuin: this.isTabletsOfRuin,
74
+ isVesselOfRuin: this.isVesselOfRuin
75
+ });
76
+ };
77
+ return Field;
78
+ }());
79
+ exports.Field = Field;
80
+ var Side = (function () {
81
+ function Side(side) {
82
+ if (side === void 0) { side = {}; }
83
+ this.spikes = side.spikes || 0;
84
+ this.steelsurge = !!side.steelsurge;
85
+ this.vinelash = !!side.vinelash;
86
+ this.wildfire = !!side.wildfire;
87
+ this.cannonade = !!side.cannonade;
88
+ this.volcalith = !!side.volcalith;
89
+ this.isSR = !!side.isSR;
90
+ this.isReflect = !!side.isReflect;
91
+ this.isLightScreen = !!side.isLightScreen;
92
+ this.isProtected = !!side.isProtected;
93
+ this.isSeeded = !!side.isSeeded;
94
+ this.isForesight = !!side.isForesight;
95
+ this.isTailwind = !!side.isTailwind;
96
+ this.isHelpingHand = !!side.isHelpingHand;
97
+ this.isFlowerGift = !!side.isFlowerGift;
98
+ this.isFriendGuard = !!side.isFriendGuard;
99
+ this.isAuroraVeil = !!side.isAuroraVeil;
100
+ this.isBattery = !!side.isBattery;
101
+ this.isPowerSpot = !!side.isPowerSpot;
102
+ this.isSteelySpirit = !!side.isSteelySpirit;
103
+ this.isSwitching = side.isSwitching;
104
+ }
105
+ Side.prototype.clone = function () {
106
+ return new Side(this);
107
+ };
108
+ return Side;
109
+ }());
110
+ exports.Side = Side;
111
+ //# sourceMappingURL=field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.js","sourceRoot":"","sources":["../src/field.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAGA;IAiBE,eAAY,KAAgC;QAAhC,sBAAA,EAAA,UAAgC;QAC1C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC;QAEpD,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,0BAAU,GAAV;QAAW,kBAAsB;aAAtB,UAAsB,EAAtB,qBAAsB,EAAtB,IAAsB;YAAtB,6BAAsB;;QAC/B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,0BAAU,GAAV;QAAW,kBAAsB;aAAtB,UAAsB,EAAtB,qBAAsB,EAAtB,IAAsB;YAAtB,6BAAsB;;QAC/B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,oBAAI,GAAJ;;QACE,KAAA,OAAyC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAA,EAA9E,IAAI,CAAC,YAAY,QAAA,EAAE,IAAI,CAAC,YAAY,QAAA,CAA2C;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAK,GAAL;QACE,OAAO,IAAI,KAAK,CAAC;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;IACL,CAAC;IACH,YAAC;AAAD,CAAC,AApED,IAoEC;AApEY,sBAAK;AAsElB;IAuBE,cAAY,IAAqB;QAArB,qBAAA,EAAA,SAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACtC,CAAC;IAED,oBAAK,GAAL;QACE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACH,WAAC;AAAD,CAAC,AAlDD,IAkDC;AAlDY,oBAAI"}
@@ -0,0 +1,44 @@
1
+ import type { State } from './state';
2
+ import type * as I from './data/interface';
3
+ import * as A from './adaptable';
4
+ export declare function calculate(gen: I.GenerationNum | I.Generation, attacker: A.Pokemon, defender: A.Pokemon, move: A.Move, field?: A.Field): A.Result;
5
+ export declare class Move extends A.Move {
6
+ constructor(gen: I.GenerationNum | I.Generation, name: string, options?: Partial<Omit<State.Move, 'ability' | 'item' | 'species'>> & {
7
+ ability?: string;
8
+ item?: string;
9
+ species?: string;
10
+ });
11
+ }
12
+ export declare class Pokemon extends A.Pokemon {
13
+ constructor(gen: I.GenerationNum | I.Generation, name: string, options?: Partial<Omit<State.Pokemon, 'ability' | 'item' | 'nature' | 'moves'>> & {
14
+ ability?: string;
15
+ item?: string;
16
+ nature?: string;
17
+ moves?: string[];
18
+ curHP?: number;
19
+ ivs?: Partial<I.StatsTable> & {
20
+ spc?: number;
21
+ };
22
+ evs?: Partial<I.StatsTable> & {
23
+ spc?: number;
24
+ };
25
+ boosts?: Partial<I.StatsTable> & {
26
+ spc?: number;
27
+ };
28
+ });
29
+ static getForme(gen: I.GenerationNum | I.Generation, speciesName: string, item?: string, moveName?: string): string;
30
+ }
31
+ export declare function calcStat(gen: I.GenerationNum | I.Generation, stat: I.StatID | 'spc', base: number, iv: number, ev: number, level: number, nature?: string): number;
32
+ export { Field, Side } from './field';
33
+ export { Result } from './result';
34
+ export { type GenerationNum, type StatsTable, type StatID } from './data/interface';
35
+ export { Generations } from './data/index';
36
+ export { toID } from './util';
37
+ export { type State } from './state';
38
+ export { ABILITIES } from './data/abilities';
39
+ export { ITEMS, MEGA_STONES } from './data/items';
40
+ export { MOVES } from './data/moves';
41
+ export { SPECIES } from './data/species';
42
+ export { NATURES } from './data/natures';
43
+ export { TYPE_CHART } from './data/types';
44
+ export { STATS, Stats } from './stats';
package/dist/index.js ADDED
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ exports.__esModule = true;
41
+ exports.Stats = exports.STATS = exports.TYPE_CHART = exports.NATURES = exports.SPECIES = exports.MOVES = exports.MEGA_STONES = exports.ITEMS = exports.ABILITIES = exports.toID = exports.Generations = exports.Result = exports.Side = exports.Field = exports.calcStat = exports.Pokemon = exports.Move = exports.calculate = void 0;
42
+ var data_1 = require("./data");
43
+ var A = __importStar(require("./adaptable"));
44
+ var Acalculate = exports.calculate;
45
+ function calculate(gen, attacker, defender, move, field) {
46
+ return (Acalculate || A.calculate)(typeof gen === 'number' ? data_1.Generations.get(gen) : gen, attacker, defender, move, field);
47
+ }
48
+ exports.calculate = calculate;
49
+ var Move = (function (_super) {
50
+ __extends(Move, _super);
51
+ function Move(gen, name, options) {
52
+ if (options === void 0) { options = {}; }
53
+ return _super.call(this, typeof gen === 'number' ? data_1.Generations.get(gen) : gen, name, options) || this;
54
+ }
55
+ return Move;
56
+ }(A.Move));
57
+ exports.Move = Move;
58
+ var Pokemon = (function (_super) {
59
+ __extends(Pokemon, _super);
60
+ function Pokemon(gen, name, options) {
61
+ if (options === void 0) { options = {}; }
62
+ return _super.call(this, typeof gen === 'number' ? data_1.Generations.get(gen) : gen, name, options) || this;
63
+ }
64
+ Pokemon.getForme = function (gen, speciesName, item, moveName) {
65
+ return A.Pokemon.getForme(typeof gen === 'number' ? data_1.Generations.get(gen) : gen, speciesName, item, moveName);
66
+ };
67
+ return Pokemon;
68
+ }(A.Pokemon));
69
+ exports.Pokemon = Pokemon;
70
+ function calcStat(gen, stat, base, iv, ev, level, nature) {
71
+ return A.Stats.calcStat(typeof gen === 'number' ? data_1.Generations.get(gen) : gen, stat === 'spc' ? 'spa' : stat, base, iv, ev, level, nature);
72
+ }
73
+ exports.calcStat = calcStat;
74
+ var field_1 = require("./field");
75
+ __createBinding(exports, field_1, "Field");
76
+ __createBinding(exports, field_1, "Side");
77
+ var result_1 = require("./result");
78
+ __createBinding(exports, result_1, "Result");
79
+ var index_1 = require("./data/index");
80
+ __createBinding(exports, index_1, "Generations");
81
+ var util_1 = require("./util");
82
+ __createBinding(exports, util_1, "toID");
83
+ var abilities_1 = require("./data/abilities");
84
+ __createBinding(exports, abilities_1, "ABILITIES");
85
+ var items_1 = require("./data/items");
86
+ __createBinding(exports, items_1, "ITEMS");
87
+ __createBinding(exports, items_1, "MEGA_STONES");
88
+ var moves_1 = require("./data/moves");
89
+ __createBinding(exports, moves_1, "MOVES");
90
+ var species_1 = require("./data/species");
91
+ __createBinding(exports, species_1, "SPECIES");
92
+ var natures_1 = require("./data/natures");
93
+ __createBinding(exports, natures_1, "NATURES");
94
+ var types_1 = require("./data/types");
95
+ __createBinding(exports, types_1, "TYPE_CHART");
96
+ var stats_1 = require("./stats");
97
+ __createBinding(exports, stats_1, "STATS");
98
+ __createBinding(exports, stats_1, "Stats");
99
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,+BAAmC;AAGnC,6CAAiC;AASjC,IAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;AAErC,SAAgB,SAAS,CACvB,GAAmC,EACnC,QAAmB,EACnB,QAAmB,EACnB,IAAY,EACZ,KAAe;IAEf,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,CAAC,CAChC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EACpD,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,KAAK,CACN,CAAC;AACJ,CAAC;AAdD,8BAcC;AAED;IAA0B,wBAAM;IAC9B,cACE,GAAmC,EACnC,IAAY,EACZ,OAIM;QAJN,wBAAA,EAAA,YAIM;eAEN,kBAAM,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,OAAc,CAAC;IACnF,CAAC;IACH,WAAC;AAAD,CAAC,AAZD,CAA0B,CAAC,CAAC,IAAI,GAY/B;AAZY,oBAAI;AAcjB;IAA6B,2BAAS;IACpC,iBACE,GAAmC,EACnC,IAAY,EACZ,OASM;QATN,wBAAA,EAAA,YASM;eAEN,kBAAM,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,OAAc,CAAC;IACnF,CAAC;IAEM,gBAAQ,GAAf,UACE,GAAmC,EACnC,WAAmB,EACnB,IAAa,EACb,QAAiB;QAEjB,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CACvB,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EACpD,WAAW,EACX,IAAkB,EAClB,QAAsB,CACvB,CAAC;IACJ,CAAC;IACH,cAAC;AAAD,CAAC,AA/BD,CAA6B,CAAC,CAAC,OAAO,GA+BrC;AA/BY,0BAAO;AAiCpB,SAAgB,QAAQ,CACtB,GAAmC,EACnC,IAAsB,EACtB,IAAY,EACZ,EAAU,EACV,EAAU,EACV,KAAa,EACb,MAAe;IAEf,OAAO,CAAC,CAAC,KAAK,CAAC,QAAQ,CACrB,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EACpD,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAC7B,IAAI,EACJ,EAAE,EACF,EAAE,EACF,KAAK,EACL,MAAM,CACP,CAAC;AACJ,CAAC;AAlBD,4BAkBC;AAED,iCAAoC;AAA5B,2CAAK;AAAE,0CAAI;AACnB,mCAAgC;AAAxB,6CAAM;AAEd,sCAAyC;AAAjC,iDAAW;AACnB,+BAA4B;AAApB,yCAAI;AAGZ,8CAA2C;AAAnC,mDAAS;AACjB,sCAAgD;AAAxC,2CAAK;AAAE,iDAAW;AAC1B,sCAAmC;AAA3B,2CAAK;AACb,0CAAuC;AAA/B,+CAAO;AACf,0CAAuC;AAA/B,+CAAO;AACf,sCAAwC;AAAhC,gDAAU;AAClB,iCAAqC;AAA7B,2CAAK;AAAE,2CAAK"}
@@ -0,0 +1,13 @@
1
+ import type { Generation, TypeName, StatID } from './data/interface';
2
+ export declare const SEED_BOOSTED_STAT: {
3
+ [item: string]: StatID;
4
+ };
5
+ export declare function getItemBoostType(item: string | undefined): "Electric" | "Psychic" | "Normal" | "Fighting" | "Flying" | "Poison" | "Ground" | "Rock" | "Bug" | "Ghost" | "Steel" | "Fire" | "Water" | "Grass" | "Ice" | "Dragon" | "Dark" | "Fairy" | undefined;
6
+ export declare function getBerryResistType(berry: string | undefined): "Electric" | "Psychic" | "Normal" | "Fighting" | "Flying" | "Poison" | "Ground" | "Rock" | "Bug" | "Ghost" | "Steel" | "Fire" | "Water" | "Grass" | "Ice" | "Dragon" | "Dark" | "Fairy" | undefined;
7
+ export declare function getFlingPower(item?: string): 0 | 10 | 30 | 100 | 40 | 60 | 50 | 85 | 20 | 130 | 110 | 95 | 90 | 80 | 70;
8
+ export declare function getNaturalGift(gen: Generation, item: string): {
9
+ t: TypeName;
10
+ p: number;
11
+ };
12
+ export declare function getTechnoBlast(item: string): "Electric" | "Fire" | "Water" | "Ice" | undefined;
13
+ export declare function getMultiAttack(item: string): TypeName | undefined;