@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,30 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.Generations = void 0;
4
+ var abilities_1 = require("./abilities");
5
+ var items_1 = require("./items");
6
+ var moves_1 = require("./moves");
7
+ var species_1 = require("./species");
8
+ var types_1 = require("./types");
9
+ var natures_1 = require("./natures");
10
+ exports.Generations = new ((function () {
11
+ function class_1() {
12
+ }
13
+ class_1.prototype.get = function (gen) {
14
+ return new Generation(gen);
15
+ };
16
+ return class_1;
17
+ }()))();
18
+ var Generation = (function () {
19
+ function Generation(num) {
20
+ this.num = num;
21
+ this.abilities = new abilities_1.Abilities(num);
22
+ this.items = new items_1.Items(num);
23
+ this.moves = new moves_1.Moves(num);
24
+ this.species = new species_1.Species(num);
25
+ this.types = new types_1.Types(num);
26
+ this.natures = new natures_1.Natures();
27
+ }
28
+ return Generation;
29
+ }());
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":";;;AAEA,yCAAsC;AACtC,iCAA8B;AAC9B,iCAA8B;AAC9B,qCAAkC;AAClC,iCAA8B;AAC9B,qCAAkC;AAErB,QAAA,WAAW,GAAkB,IAAI;IAAC;IAI/C,CAAC;IAHC,qBAAG,GAAH,UAAI,GAAoB;QACtB,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACH,cAAC;AAAD,CAAC,AAJ8C,IAI7C,EAAE,CAAC;AAEL;IAUE,oBAAY,GAAoB;QAC9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAC;IAC/B,CAAC;IACH,iBAAC;AAAD,CAAC,AApBD,IAoBC"}
@@ -0,0 +1,150 @@
1
+ export interface As<T> {
2
+ __brand: T;
3
+ }
4
+ export type ID = (string & As<'ID'>) | (string & {
5
+ __isID: true;
6
+ }) | '';
7
+ export type GenerationNum = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
8
+ export type GenderName = 'M' | 'F' | 'N';
9
+ export type StatID = 'hp' | StatIDExceptHP;
10
+ export type StatIDExceptHP = 'atk' | 'def' | 'spa' | 'spd' | 'spe';
11
+ export type StatsTable<T = number> = {
12
+ [stat in StatID]: T;
13
+ };
14
+ export type AbilityName = string & As<'AbilityName'>;
15
+ export type ItemName = string & As<'ItemName'>;
16
+ export type MoveName = string & As<'MoveName'>;
17
+ export type SpeciesName = string & As<'SpeciesName'>;
18
+ export type StatusName = 'slp' | 'psn' | 'brn' | 'frz' | 'par' | 'tox';
19
+ export type GameType = 'Singles' | 'Doubles';
20
+ export type Terrain = 'Electric' | 'Grassy' | 'Psychic' | 'Misty';
21
+ export type Weather = 'Sand' | 'Sun' | 'Rain' | 'Hail' | 'Snow' | 'Harsh Sunshine' | 'Heavy Rain' | 'Strong Winds';
22
+ export type NatureName = 'Adamant' | 'Bashful' | 'Bold' | 'Brave' | 'Calm' | 'Careful' | 'Docile' | 'Gentle' | 'Hardy' | 'Hasty' | 'Impish' | 'Jolly' | 'Lax' | 'Lonely' | 'Mild' | 'Modest' | 'Naive' | 'Naughty' | 'Quiet' | 'Quirky' | 'Rash' | 'Relaxed' | 'Sassy' | 'Serious' | 'Timid';
23
+ export type TypeName = 'Normal' | 'Fighting' | 'Flying' | 'Poison' | 'Ground' | 'Rock' | 'Bug' | 'Ghost' | 'Steel' | 'Fire' | 'Water' | 'Grass' | 'Electric' | 'Psychic' | 'Ice' | 'Dragon' | 'Dark' | 'Fairy' | 'Stellar' | '???';
24
+ export type MoveCategory = 'Physical' | 'Special' | 'Status';
25
+ export type MoveTarget = 'adjacentAlly' | 'adjacentAllyOrSelf' | 'adjacentFoe' | 'all' | 'allAdjacent' | 'allAdjacentFoes' | 'allies' | 'allySide' | 'allyTeam' | 'any' | 'foeSide' | 'normal' | 'randomNormal' | 'scripted' | 'self';
26
+ export interface Generations {
27
+ get(gen: GenerationNum): Generation;
28
+ }
29
+ export interface Generation {
30
+ readonly num: GenerationNum;
31
+ readonly abilities: Abilities;
32
+ readonly items: Items;
33
+ readonly moves: Moves;
34
+ readonly species: Species;
35
+ readonly types: Types;
36
+ readonly natures: Natures;
37
+ }
38
+ export type DataKind = 'Ability' | 'Item' | 'Move' | 'Species' | 'Type' | 'Nature';
39
+ export interface Data<NameT> {
40
+ readonly id: ID;
41
+ readonly name: NameT;
42
+ readonly kind: DataKind;
43
+ }
44
+ export interface Abilities {
45
+ get(id: ID): Ability | undefined;
46
+ [Symbol.iterator](): IterableIterator<Ability>;
47
+ }
48
+ export interface Ability extends Data<AbilityName> {
49
+ readonly kind: 'Ability';
50
+ }
51
+ export interface Items {
52
+ get(id: ID): Item | undefined;
53
+ [Symbol.iterator](): IterableIterator<Item>;
54
+ }
55
+ export interface Item extends Data<ItemName> {
56
+ readonly kind: 'Item';
57
+ readonly megaEvolves?: SpeciesName;
58
+ readonly isBerry?: boolean;
59
+ readonly naturalGift?: Readonly<{
60
+ basePower: number;
61
+ type: TypeName;
62
+ }>;
63
+ }
64
+ export interface Moves {
65
+ get(id: ID): Move | undefined;
66
+ [Symbol.iterator](): IterableIterator<Move>;
67
+ }
68
+ export interface MoveFlags {
69
+ contact?: 1 | 0;
70
+ bite?: 1 | 0;
71
+ sound?: 1 | 0;
72
+ punch?: 1 | 0;
73
+ bullet?: 1 | 0;
74
+ pulse?: 1 | 0;
75
+ slicing?: 1 | 0;
76
+ wind?: 1 | 0;
77
+ }
78
+ export interface SelfOrSecondaryEffect {
79
+ boosts?: Partial<StatsTable>;
80
+ }
81
+ export interface Move extends Data<MoveName> {
82
+ readonly kind: 'Move';
83
+ readonly basePower: number;
84
+ readonly type: TypeName;
85
+ readonly category?: MoveCategory;
86
+ readonly flags: MoveFlags;
87
+ readonly secondaries?: any;
88
+ readonly target?: MoveTarget;
89
+ readonly recoil?: [number, number];
90
+ readonly hasCrashDamage?: boolean;
91
+ readonly mindBlownRecoil?: boolean;
92
+ readonly struggleRecoil?: boolean;
93
+ readonly willCrit?: boolean;
94
+ readonly drain?: [number, number];
95
+ readonly priority?: number;
96
+ readonly self?: SelfOrSecondaryEffect | null;
97
+ readonly ignoreDefensive?: boolean;
98
+ readonly overrideOffensiveStat?: StatIDExceptHP;
99
+ readonly overrideDefensiveStat?: StatIDExceptHP;
100
+ readonly overrideOffensivePokemon?: 'target' | 'source';
101
+ readonly overrideDefensivePokemon?: 'target' | 'source';
102
+ readonly breaksProtect?: boolean;
103
+ readonly isZ?: boolean | string;
104
+ readonly zMove?: {
105
+ basePower?: number;
106
+ };
107
+ readonly isMax?: boolean | string;
108
+ readonly maxMove?: {
109
+ basePower: number;
110
+ };
111
+ readonly multihit?: number | number[];
112
+ readonly multiaccuracy?: boolean;
113
+ }
114
+ export interface Species {
115
+ get(id: ID): Specie | undefined;
116
+ [Symbol.iterator](): IterableIterator<Specie>;
117
+ }
118
+ export interface Specie extends Data<SpeciesName> {
119
+ readonly kind: 'Species';
120
+ readonly types: [TypeName] | [TypeName, TypeName];
121
+ readonly baseStats: Readonly<StatsTable>;
122
+ readonly weightkg: number;
123
+ readonly nfe?: boolean;
124
+ readonly gender?: GenderName;
125
+ readonly otherFormes?: SpeciesName[];
126
+ readonly baseSpecies?: SpeciesName;
127
+ readonly abilities?: {
128
+ 0: AbilityName | '';
129
+ };
130
+ }
131
+ export interface Types {
132
+ get(id: ID): Type | undefined;
133
+ [Symbol.iterator](): IterableIterator<Type>;
134
+ }
135
+ export type TypeEffectiveness = 0 | 0.5 | 1 | 2;
136
+ export interface Type extends Data<TypeName> {
137
+ readonly kind: 'Type';
138
+ readonly effectiveness: Readonly<{
139
+ [type in TypeName]?: TypeEffectiveness;
140
+ }>;
141
+ }
142
+ export interface Natures {
143
+ get(id: ID): Nature | undefined;
144
+ [Symbol.iterator](): IterableIterator<Nature>;
145
+ }
146
+ export interface Nature extends Data<NatureName> {
147
+ readonly kind: 'Nature';
148
+ readonly plus?: StatID;
149
+ readonly minus?: StatID;
150
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/data/interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ import type * as I from './interface';
2
+ export declare const MEGA_STONES: {
3
+ [species: string]: string;
4
+ };
5
+ export declare const ITEMS: string[][];
6
+ export declare class Items implements I.Items {
7
+ private readonly gen;
8
+ constructor(gen: I.GenerationNum);
9
+ get(id: I.ID): Item;
10
+ [Symbol.iterator](): Generator<Item, void, unknown>;
11
+ }
12
+ declare class Item implements I.Item {
13
+ readonly kind: 'Item';
14
+ readonly id: I.ID;
15
+ readonly name: I.ItemName;
16
+ readonly megaEvolves?: I.SpeciesName;
17
+ readonly isBerry?: boolean;
18
+ readonly naturalGift?: Readonly<{
19
+ basePower: number;
20
+ type: I.TypeName;
21
+ }>;
22
+ constructor(name: string, gen: number);
23
+ }
24
+ export {};