@pkmn/engine 0.1.0-dev.7679dad9 → 0.1.0-dev.77410aff

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 (53) hide show
  1. package/README.md +84 -51
  2. package/build/pkg/addon.js +3 -2
  3. package/build/pkg/addon.js.map +1 -1
  4. package/build/pkg/data/ids.json +12 -12
  5. package/build/pkg/data/layout.json +26 -4
  6. package/build/pkg/data/protocol.json +69 -12
  7. package/build/pkg/data.d.ts +3 -2
  8. package/build/pkg/data.js.map +1 -1
  9. package/build/pkg/gen1.js +15 -18
  10. package/build/pkg/gen1.js.map +1 -1
  11. package/build/pkg/index.d.ts +2 -1
  12. package/build/pkg/index.js.map +1 -1
  13. package/build/pkg/protocol.js +57 -38
  14. package/build/pkg/protocol.js.map +1 -1
  15. package/build/test/display.js.map +1 -1
  16. package/build/tools/debug.js +3 -1
  17. package/build/tools/debug.js.map +1 -1
  18. package/build.zig +121 -80
  19. package/package.json +44 -22
  20. package/src/bin/install-pkmn-engine +10 -5
  21. package/src/lib/binding/node.zig +46 -145
  22. package/src/lib/binding/wasm.zig +4 -2
  23. package/src/lib/common/battle.zig +17 -0
  24. package/src/lib/common/data.zig +19 -31
  25. package/src/lib/common/debug.zig +20 -11
  26. package/src/lib/common/js.zig +118 -0
  27. package/src/lib/common/optional.zig +67 -0
  28. package/src/lib/common/options.zig +9 -0
  29. package/src/lib/common/protocol.zig +896 -352
  30. package/src/lib/common/rational.zig +357 -0
  31. package/src/lib/common/rng.zig +24 -15
  32. package/src/lib/common/util.zig +12 -0
  33. package/src/lib/gen1/README.md +286 -204
  34. package/src/lib/gen1/calc.zig +426 -0
  35. package/src/lib/gen1/chance.zig +1060 -0
  36. package/src/lib/gen1/data/moves.zig +202 -190
  37. package/src/lib/gen1/data/species.zig +4 -4
  38. package/src/lib/gen1/data/types.zig +10 -10
  39. package/src/lib/gen1/data.zig +83 -71
  40. package/src/lib/gen1/helpers.zig +573 -17
  41. package/src/lib/gen1/mechanics.zig +931 -702
  42. package/src/lib/gen2/README.md +105 -85
  43. package/src/lib/gen2/calc.zig +143 -0
  44. package/src/lib/gen2/chance.zig +1314 -0
  45. package/src/lib/gen2/data/items.zig +14 -20
  46. package/src/lib/gen2/data/moves.zig +664 -570
  47. package/src/lib/gen2/data/species.zig +2 -2
  48. package/src/lib/gen2/data/types.zig +137 -34
  49. package/src/lib/gen2/data.zig +124 -86
  50. package/src/lib/gen2/generated.zig +806 -0
  51. package/src/lib/gen2/helpers.zig +16 -22
  52. package/src/lib/gen2/mechanics.zig +3506 -12
  53. package/src/lib/pkmn.zig +61 -2
package/README.md CHANGED
@@ -12,6 +12,14 @@
12
12
  <img alt="License" src="https://img.shields.io/badge/License-MIT-blue.svg" />
13
13
  </a>
14
14
  </p>
15
+
16
+ > [!WARNING]
17
+ > **This project is under heavy development** and currently the `main` branch contains numerous breaking
18
+ > changes which may not work and which are not fully documented. Please **wait for the forthcoming
19
+ > initial v0.1 release** before depending on this project (code from the
20
+ > [`old`](https://github.com/pkmn/engine/releases/tag/old) tag can also be used to experiment with a
21
+ > more stable version of the codebase).
22
+
15
23
  <hr />
16
24
 
17
25
  A minimal, complete, Pokémon battle simulation engine optimized for performance and
@@ -49,8 +57,8 @@ $ zig build --prefix /usr/local -Doptimize=ReleaseFast
49
57
  ```
50
58
 
51
59
  The Zig website has [installation instructions](https://ziglang.org/learn/getting-started/) which
52
- walk through how to install Zig on each platform - the engine code should work on Zig v0.11.0 dev
53
- build 3681 or greater, though tracks Zig's master branch so this may change in the future if
60
+ walk through how to install Zig on each platform - the engine code should work on Zig v0.12.0 dev
61
+ build 1396 or greater, though tracks Zig's master branch so this may change in the future if
54
62
  breaking language changes are introduced:
55
63
 
56
64
  `libpkmn` can be built with `-Dshowdown` to instead produce the Pokémon Showdown compatible
@@ -67,26 +75,48 @@ $ npm install @pkmn/engine
67
75
  ```
68
76
 
69
77
  The driver depends on being able to find compiled Node/WASM addons in
70
- `node_modules/@pkmn/engine/build/lib` in order to be useful. When you install the package a
71
- [`postinstall` lifecycle script](https://docs.npmjs.com/cli/v8/using-npm/scripts) will run
72
- [`install-pkmn-engine`](src/bin/install-pkmn-engine) which will check for a compatible `zig`
73
- compiler (see above regarding minimum version) and download one to
74
- `node_module/@pkmn/engine/build/bin` if it can't find one, as well as looking for (and downloading,
75
- if necessary) the required Node headers needed to successfully build the addons natively.
78
+ `node_modules/@pkmn/engine/build/lib` to be useful. When you install the package a [`postinstall`
79
+ lifecycle script](https://docs.npmjs.com/cli/v8/using-npm/scripts) runs
80
+ [`install-pkmn-engine`](src/bin/install-pkmn-engine) which checks for a compatible `zig` compiler
81
+ (see earlier regarding minimum version) and download one to `node_module/@pkmn/engine/build/bin` if
82
+ it can't find one, as well as looking for (and downloading, if necessary) the required Node headers
83
+ needed to successfully build the addons natively.
76
84
 
77
85
  **If you have configured `npm` to `--ignore-scripts` you must either run `npx install-pkmn-engine`
78
86
  directly or build the addons manually and place the artifacts in the expected paths.**
79
87
 
80
88
  ### `pkmn`
81
89
 
82
- Until the [Zig package manager](https://github.com/ziglang/zig/projects/4) is completed, the
83
- recommended way of using the `pkmn` package in Zig is by either copying this repository into your
84
- project or by using [git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) and then
85
- adding the following to your `build.zig`:
90
+ To include `pkmn`, add it as a dependency in your project's
91
+ [`build.zig.zon`](https://github.com/ziglang/zig/blob/master/doc/build.zig.zon.md):
92
+
93
+
94
+ ```zig
95
+ .dependencies = .{
96
+ .pkmn = .{
97
+ .url = "https://github.com/pkmn/engine/archive/RELEASE.tar.gz",
98
+ },
99
+ },
100
+ ```
101
+
102
+ Replace `RELEASE` with the tag for the [release](https://github.com/pkmn/engine/releases) you wish
103
+ to use (e.g. `0.1.0` or `nightly`), or the specific hash of any commit. Next, run `zig build`, and
104
+ copy the expected hash from the error message into your `build.zig.zon` alongside the `.url`:
105
+
106
+ ```sh
107
+ $ zig build
108
+ error: dependency is missing hash field
109
+ .url = "https://github.com/pkmn/engine/archive/nightly.tar.gz",
110
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
111
+ note: expected .hash = "122056b93b403033cb7d9bed96a02c2eb8cc1275515976167726ada6eb4207e8ef8a",
112
+ ```
113
+
114
+ Note that this hash is **not** going to be the same as the commit hash. After adding the hash to your
115
+ `build.zig.zon` you will be able to import the `pkmn` package's build helpers into your `build.zig`:
86
116
 
87
117
  ```zig
88
118
  const std = @import("std");
89
- const pkmn = @import("lib/pkmn/build.zig");
119
+ const pkmn = @import("pkmn");
90
120
 
91
121
  pub fn build(b: *std.Build) void {
92
122
  ...
@@ -95,12 +125,12 @@ pub fn build(b: *std.Build) void {
95
125
  }
96
126
  ```
97
127
 
98
- The engine's `build.zig` exposes a `module` function that takes an options structure to allow for
128
+ The `pkmn` package exposes a `module` function that takes an options structure to allow for
99
129
  configuring whether or not Pokémon Showdown compatibility mode or protocol message logging should be
100
130
  enabled. Alternatively, you may set options via a `pkmn_options` [root source file
101
131
  declaration](https://ziglang.org/documentation/master/#Root-Source-File). There are several
102
132
  undocumented internal options that can be tweaked as well via build or root options, though these
103
- options are not officially supported, affect correctness, and may change meaning or behavior without
133
+ options aren't officially supported, affect correctness, and may change meaning or behavior without
104
134
  warning. Use at your own risk.
105
135
 
106
136
  ```zig
@@ -112,11 +142,11 @@ pub const pkmn_options = .{ .showdown = true, .log = true };
112
142
  For each Pokémon generation, the engine provides a battle structure with two functions - a function
113
143
  to `update` the battle's state based on both players' choices and a function that defines which
114
144
  `choices` are valid at that decision point (at the beginning of a battle both player's must "pass"
115
- as their first choice in order to switch in the first member of their party). If `-Dlog` protocol
116
- logging is enabled each update will produce logs which can be decoded into a buffer (`LOGS_SIZE`
117
- constants are provided to make it easy to allocate a buffer of the correct size). Each `update` will
118
- return a result to indicate either that the battle has terminated or which types of choices will be
119
- available for each player.
145
+ as their first choice to switch in the first member of their party). If `-Dlog` protocol logging is
146
+ enabled each update produces logs which can be decoded into a buffer (`LOGS_SIZE` constants are
147
+ provided to make it easy to allocate a buffer of the correct size). Each `update` returns a result
148
+ to indicate either that the battle has terminated or which types of choices are available for each
149
+ player.
120
150
 
121
151
  Unlike [Pokémon Showdown's
122
152
  SIM-PROTOCOL](https://github.com/smogon/pokemon-showdown/blob/master/sim/SIM-PROTOCOL.md#choice-requests)
@@ -128,47 +158,50 @@ state or cause the engine to crash.**
128
158
 
129
159
  Battles may be played out from any point but to freshly initialize a battle which is yet to start
130
160
  the turn count and active Pokémon should be zeroed out (driver code should handle this for you).
131
- Most driver code should also provide helpers to make initialize a battle convenient - check the
161
+ Most driver code should also provide helpers to make initializing battle convenient - check the
132
162
  respective documentation and examples for the bindings being used. The engine's [protocol
133
163
  documentation](docs/PROTOCOL.md) goes into greater detail on the specifics of updates and the
134
164
  potential logs that may result.
135
165
 
136
166
  *The snippets below are meant to merely illustrate in broad strokes how the pkmn engine can be used
137
- \- the [`examples`](src/examples) directory contains fully commented and runnable code.*
167
+ \- the [`examples`](examples) directory contains fully commented and runnable code.*
138
168
 
139
169
  ### C
140
170
 
141
171
  [`pkmn.h`](src/include/pkmn.h) exports the C API for `libpkmn`. Symbols are all prefixed with
142
172
  `pkmn_` to avoid name collisions. If `-Dlog` is enabled and logging throws an error then the error
143
- will be encoded in the `pkmn_result` and can be checked with `pkmn_error`.
173
+ is encoded in the `pkmn_result` and can be checked with `pkmn_error`.
144
174
 
145
175
  ```c
146
176
  #include <pkmn.h>
147
177
 
178
+ pkmn_battle_options options;
179
+ pkmn_gen1_battle_options_set(&options, ...);
148
180
  pkmn_battle battle = ...;
149
- uint8_t buf[PKMN_LOGS_SIZE];
181
+
150
182
  pkmn_result result;
151
183
  pkmn_choice c1 = 0, c2 = 0;
152
- while (!pkmn_result_type(result = pkmn_battle_update(&battle, c1, c2, buf, PKMN_LOGS_SIZE))) {
184
+ while (!pkmn_result_type(result = pkmn_battle_update(&battle, c1, c2, &options))) {
153
185
  c1 = choose(PKMN_PLAYER_P1, pkmn_result_p1(result));
154
186
  c2 = choose(PKMN_PLAYER_P2, pkmn_result_p2(result));
187
+ pkmn_gen1_battle_options_set(&options, ...);
155
188
  }
156
189
  if (pkmn_error(result)) exit(1);
157
190
  ```
158
191
 
159
- [(full code)](src/examples/c/example.c)
192
+ [(full code)](examples/c/example.c)
160
193
 
161
- The C API does not export any helpers for creating or accessing the opaque battle objects - it is
194
+ The C API doesn't export any helpers for creating or accessing the opaque battle objects - it's
162
195
  instead intended to be used as the foundation for more ergonomic bindings in [other
163
196
  languages](#other) (the lack of namespaces and bit fields having an implementation-defined layout in
164
197
  C are the main contributing factors to the sparseness of what `libpkmn` chooses to expose).
165
198
 
166
199
  ### JavaScript / TypeScript
167
200
 
168
- `@pkmn/engine` depends on the [`@pkmn/data`](https://www.npmjs.com/package/@pkmn/data) which
201
+ `@pkmn/engine` depends on the [`@pkmn/data`](https://www.npmjs.com/package/@pkmn/data) package which
169
202
  requires a `Dex` implementation to be provided as well. The `Battle.create` function can be used to
170
203
  initialize a `Battle` from the beginning, or `Battle.restore` can be used to re-instantiate a battle
171
- which is in already progress. If logging is enabled the output can be turned into Pokémon Showdown
204
+ which is already in progress. If logging is enabled the output can be turned into Pokémon Showdown
172
205
  protocol via `Log.parse`.
173
206
 
174
207
  ```ts
@@ -191,20 +224,20 @@ while (!(result = battle.update(c1, c2)).type) {
191
224
  console.log(result);
192
225
  ```
193
226
 
194
- [(full code)](src/examples/js/example.ts)
227
+ [(full code)](examples/js/example.ts)
195
228
 
196
- By default, the `@pkmn/engine` package will compile the engine with `-Dshowdown`, though by running
229
+ By default, the `@pkmn/engine` package compiles the engine with `-Dshowdown`, though by running
197
230
  `install-pkmn-engine` directly and passing in `--options` you can override this default and build
198
231
  different configurations of the extension for the driver to use. The driver can support
199
232
  configurations both with and without Pokémon Showdown compatibility simultaneously if present. On
200
- update, the post-install script will attempt to rebuild whichever extensions it finds with the same
233
+ update, the post-install script attempts to rebuild whichever extensions it finds with the same
201
234
  configuration parameters that were originally used meaning updating to the newest version of the
202
235
  library should be seamless.
203
236
 
204
237
  Despite relying on the native engine code, the `@pkmn/engine` code is designed to also work in
205
238
  browsers which support [WebAssembly](https://webassembly.org/). Running `npm run start:web` from the
206
- [`examples`](src/examples/js) directory will start a server that can be used to demonstrate the
207
- engine running in the browser.
239
+ [`examples`](examples/js) directory starts a server that can be used to demonstrate the engine
240
+ running in the browser.
208
241
 
209
242
  ### Zig
210
243
 
@@ -219,13 +252,13 @@ var random = std.rand.DefaultPrng.init(seed).random();
219
252
  var choices: [pkmn.CHOICES_SIZE]pkmn.Choice = undefined;
220
253
 
221
254
  var battle = ...
222
- var log = ...
255
+ var options = pkmn.battle.options(...);
223
256
 
224
257
  var c1 = pkmn.Choice{};
225
258
  var c2 = pkmn.Choice{};
226
259
 
227
- var result = try battle.update(c1, c2, log);
228
- while (result.type == .None) : (result = try battle.update(c1, c2, log)) {
260
+ var result = try battle.update(c1, c2, &options);
261
+ while (result.type == .None) : (result = try battle.update(c1, c2, &options)) {
229
262
  c1 = choices[random.uintLessThan(u8, battle.choices(.P1, result.p1, &choices))];
230
263
  c2 = choices[random.uintLessThan(u8, battle.choices(.P2, result.p2, &choices))];
231
264
  }
@@ -233,11 +266,11 @@ while (result.type == .None) : (result = try battle.update(c1, c2, log)) {
233
266
  std.debug.print("{}\n", .{result.type});
234
267
  ```
235
268
 
236
- [(full code)](src/examples/zig/example.zig)
269
+ [(full code)](examples/zig/example.zig)
237
270
 
238
271
  The Zig package also supports some APIs which are difficult to expose elsewhere such as the
239
272
  `FixedRNG` which allows you to fully specify the exact RNG frames (which can be useful for ensuring
240
- certain outcomes/effects always occur) for a battle, though doing so will change the size of the
273
+ certain outcomes/effects always occur) for a battle, though doing so changes the size of the
241
274
  `Battle` object.
242
275
 
243
276
  ### Other
@@ -248,7 +281,7 @@ simplify the process even further [`src/data`](src/data) contains JSON dumps of
248
281
  data, structure sizes and offsets, and protocol information used by the reference driver code. The
249
282
  following is a list of known `libpkmn` bindings written by developers outside of the [pkmn
250
283
  organization](https://github.com/pkmn) that may be helpful (though note that these projects may not
251
- necessarily be up-to-date/complete/correct - inclusion in this list does not imply endorsement):
284
+ necessarily be up-to-date/complete/correct - inclusion in this list doesn't imply endorsement):
252
285
 
253
286
  | Language | License | URL |
254
287
  | ---------- | --------- | ------------------------------------ |
@@ -276,7 +309,7 @@ By default, `pkmn-debug` expects to read [binary debug protocol](docs/PROTOCOL.m
276
309
  $ <cmd> | pkmn-debug > index.html
277
310
  ```
278
311
 
279
- Alternatively, if a single filename argument is passed to the `pkmn-debug` it will read from that
312
+ Alternatively, if a single filename argument is passed to the `pkmn-debug` it reads from that
280
313
  instead:
281
314
 
282
315
  ```sh
@@ -298,14 +331,14 @@ Currently, most of the foundational work from stage 0 is done:
298
331
 
299
332
  - [benchmark and integration testing](src/test) infrastructure
300
333
  - [documentation](docs) about design, research, methodology, etc
301
- - definition and implementation of the [protocol](docs/PROTOCOL.md) that will be used by the engine
334
+ - definition and implementation of the [protocol](docs/PROTOCOL.md) that's used by the engine
302
335
 
303
- **Stage 1 is currently in progress** and will see the implementation of the actual Generation I & II
336
+ **Stage 1 is currently in progress** and involves the implementation of the actual Generation I & II
304
337
  battle engines, followed by Generation III & IV in stage 2. The implementation of further Pokémon
305
- generations is in scope for the project but should not be considered as part of the immediate
306
- roadmap (i.e. exploring the options for broadening support for old generation APIs will be given
307
- higher priority than implementing more modern generations). Furthermore, implementation of modern
308
- generations is soft-blocked on the [availability of high quality
338
+ generations is in scope for the project but shouldn't be considered part of the immediate roadmap
339
+ (i.e. exploring the options for broadening support for old generation APIs is given higher priority
340
+ than implementing more modern generations). Furthermore, implementation of modern generations is
341
+ soft-blocked on the [availability of high quality
309
342
  decompilations](https://github.com/orgs/pret/repositories) of the original games in question.
310
343
 
311
344
  Certain features will always be deemed **out of scope**:
@@ -323,10 +356,10 @@ The pkmn engine is distributed under the terms of the [MIT License](LICENSE).
323
356
  [^1]: In the case of Pokémon Showdown, only bugs which stem from a misimplementation of specific
324
357
  effects are reproduced in the engine, bugs which are the result of a misunderstanding of the
325
358
  fundamental mechanics of Pokémon or which simply arise due to specific Pokémon Showdown
326
- implementation details that are not replicable without making the same (incorrect) architectural
327
- choices are not. Furthermore, the "Pokémon Showdown" code referenced by this project includes
359
+ implementation details that aren't replicable without making the same (incorrect) architectural
360
+ choices aren't. Furthermore, the "Pokémon Showdown" code referenced by this project includes
328
361
  several [patches](docs/TESTING.md#patches) to improve accuracy and smooth over some of the more
329
362
  egregious implementation issues. In practical terms, the vast majority of games played out in the
330
- pkmn engine's compatibility mode and on this patched Pokémon Showdown simulator will be the same,
331
- it is only in a well defined and documented set of circumstances where the two implementations
363
+ pkmn engine's compatibility mode and on this patched Pokémon Showdown simulator are the same,
364
+ it's only in a well defined and documented set of circumstances where the two implementations
332
365
  diverge.
@@ -34,11 +34,12 @@ function load() {
34
34
  let pkmn = undefined;
35
35
  let showdown = undefined;
36
36
  try {
37
- pkmn = require(path.join(ROOT, 'build', 'lib', 'pkmn.node'));
37
+ pkmn = require(path.join(ROOT, 'build', 'lib', 'pkmn.node')).engine;
38
38
  }
39
39
  catch { }
40
40
  try {
41
- showdown = require(path.join(ROOT, 'build', 'lib', 'pkmn-showdown.node'));
41
+ showdown =
42
+ require(path.join(ROOT, 'build', 'lib', 'pkmn-showdown.node')).engine;
42
43
  }
43
44
  catch { }
44
45
  if (!pkmn && !showdown) {
@@ -1 +1 @@
1
- {"version":3,"file":"addon.js","sourceRoot":"","sources":["../../src/pkg/addon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"addon.js","sourceRoot":"","sources":["../../src/pkg/addon.ts"],"names":[],"mappings":"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"}
@@ -20,15 +20,15 @@
20
20
  },
21
21
  {
22
22
  "types": [
23
+ "Ground",
24
+ "Rock",
25
+ "Steel",
23
26
  "Normal",
24
27
  "Fighting",
25
28
  "Flying",
26
29
  "Poison",
27
- "Ground",
28
- "Rock",
29
30
  "Bug",
30
31
  "Ghost",
31
- "Steel",
32
32
  "???",
33
33
  "Fire",
34
34
  "Water",
@@ -40,15 +40,15 @@
40
40
  "Dark"
41
41
  ],
42
42
  "items": [
43
+ "softsand",
44
+ "hardstone",
45
+ "metalcoat",
43
46
  "pinkbow",
44
47
  "blackbelt",
45
48
  "sharpbeak",
46
49
  "poisonbarb",
47
- "softsand",
48
- "hardstone",
49
50
  "silverpowder",
50
51
  "spelltag",
51
- "metalcoat",
52
52
  "polkadotbow",
53
53
  "charcoal",
54
54
  "mysticwater",
@@ -65,21 +65,21 @@
65
65
  "stick",
66
66
  "thickclub",
67
67
  "focusband",
68
- "berryjuice",
69
68
  "scopelens",
70
69
  "leftovers",
71
70
  "berserkgene",
72
71
  "lightball",
72
+ "berry",
73
+ "berryjuice",
74
+ "goldberry",
75
+ "mintberry",
73
76
  "psncureberry",
74
77
  "przcureberry",
75
- "burntberry",
76
78
  "iceberry",
77
- "bitterberry",
78
- "mintberry",
79
+ "burntberry",
79
80
  "miracleberry",
81
+ "bitterberry",
80
82
  "mysteryberry",
81
- "berry",
82
- "goldberry",
83
83
  "masterball",
84
84
  "ultraball",
85
85
  "greatball",
@@ -4,7 +4,9 @@
4
4
  "Battle": 384,
5
5
  "Side": 184,
6
6
  "Pokemon": 24,
7
- "ActivePokemon": 32
7
+ "ActivePokemon": 32,
8
+ "Actions": 16,
9
+ "Summaries": 12
8
10
  },
9
11
  "offsets": {
10
12
  "Battle": {
@@ -12,7 +14,7 @@
12
14
  "turn": 368,
13
15
  "last_damage": 370,
14
16
  "last_moves": 372,
15
- "rng": 373
17
+ "rng": 374
16
18
  },
17
19
  "Side": {
18
20
  "pokemon": 0,
@@ -77,9 +79,29 @@
77
79
  "state": 24,
78
80
  "substitute": 40,
79
81
  "transform": 48,
80
- "disabled_duration": 52,
81
- "disabled_move": 56,
82
+ "disable_duration": 52,
83
+ "disable_move": 56,
82
84
  "toxic": 59
85
+ },
86
+ "Action": {
87
+ "damage": 0,
88
+ "hit": 8,
89
+ "critical_hit": 10,
90
+ "secondary_chance": 12,
91
+ "speed_tie": 14,
92
+ "confused": 16,
93
+ "paralyzed": 18,
94
+ "duration": 20,
95
+ "durations": 24,
96
+ "move_slot": 40,
97
+ "multi_hit": 44,
98
+ "psywave": 48,
99
+ "metronome": 56
100
+ },
101
+ "Damage": {
102
+ "base": 0,
103
+ "final": 2,
104
+ "capped": 4
83
105
  }
84
106
  }
85
107
  }
@@ -70,7 +70,8 @@
70
70
  "Burst",
71
71
  "ClearPositiveBoost",
72
72
  "CanDynamax",
73
- "SwapSideConditions"
73
+ "SwapSideConditions",
74
+ "Terastallize"
74
75
  ],
75
76
  "Move": [
76
77
  "None",
@@ -84,12 +85,14 @@
84
85
  "Flinch",
85
86
  "Disable",
86
87
  "Recharge",
87
- "PP"
88
+ "PP",
89
+ "Attract"
88
90
  ],
89
91
  "Heal": [
90
92
  "None",
91
93
  "Silent",
92
- "Drain"
94
+ "Drain",
95
+ "Leftovers"
93
96
  ],
94
97
  "Damage": [
95
98
  "None",
@@ -97,7 +100,13 @@
97
100
  "Burn",
98
101
  "Confusion",
99
102
  "LeechSeed",
100
- "RecoilOf"
103
+ "RecoilOf",
104
+ "Bind",
105
+ "Wrap",
106
+ "FireSpin",
107
+ "Clamp",
108
+ "Whirlpool",
109
+ "Spikes"
101
110
  ],
102
111
  "Status": [
103
112
  "None",
@@ -136,7 +145,15 @@
136
145
  "Mist",
137
146
  "Struggle",
138
147
  "Substitute",
139
- "Splash"
148
+ "Splash",
149
+ "Attract",
150
+ "LockOn",
151
+ "Bind",
152
+ "Wrap",
153
+ "FireSpin",
154
+ "Clamp",
155
+ "Whirlpool",
156
+ "BeatUp"
140
157
  ],
141
158
  "Start": [
142
159
  "Bide",
@@ -150,24 +167,64 @@
150
167
  "Substitute",
151
168
  "TypeChange",
152
169
  "Disable",
153
- "Mimic"
170
+ "Mimic",
171
+ "Nightmare",
172
+ "Curse",
173
+ "Foresight",
174
+ "Encore",
175
+ "FutureSight",
176
+ "PerishSong3Silent",
177
+ "PerishSong3",
178
+ "PerishSong2",
179
+ "PerishSong1",
180
+ "PerishSong0"
154
181
  ],
155
182
  "End": [
156
183
  "Disable",
157
184
  "Confusion",
158
185
  "Bide",
159
186
  "Substitute",
187
+ "Nightmare",
188
+ "Curse",
189
+ "Foresight",
190
+ "Encore",
191
+ "FutureSight",
192
+ "LeechSeed",
193
+ "Bind",
194
+ "Wrap",
195
+ "FireSpin",
196
+ "Clamp",
197
+ "Whirlpool",
160
198
  "DisableSilent",
161
199
  "ConfusionSilent",
162
- "Mist",
163
- "FocusEnergy",
164
- "LeechSeed",
165
- "Toxic",
166
- "LightScreen",
167
- "Reflect"
200
+ "MistSilent",
201
+ "FocusEnergySilent",
202
+ "LeechSeedSilent",
203
+ "ToxicSilent",
204
+ "LightScreenSilent",
205
+ "ReflectSilent",
206
+ "BideSilent"
168
207
  ],
169
208
  "Immune": [
170
209
  "None",
171
210
  "OHKO"
211
+ ],
212
+ "EndItem": [
213
+ "None",
214
+ "Eat"
215
+ ],
216
+ "SetHP": [
217
+ "None",
218
+ "Silent"
219
+ ],
220
+ "Side": [
221
+ "Safeguard",
222
+ "Reflect",
223
+ "LightScreen",
224
+ "Spikes"
225
+ ],
226
+ "Weather": [
227
+ "None",
228
+ "Upkeep"
172
229
  ]
173
230
  }
@@ -1,12 +1,13 @@
1
+ /// <reference types="node" />
1
2
  import { Generation, ID, TypeName } from '@pkmn/data';
2
3
  export declare const LE: boolean;
3
4
  export type IDs = [
4
5
  {
5
- types: TypeName[];
6
+ types: Exclude<TypeName, 'Dark' | 'Steel' | 'Fairy'>[];
6
7
  },
7
8
  {
8
9
  items: ID[];
9
- types: TypeName[];
10
+ types: Exclude<TypeName, 'Fairy'>[];
10
11
  }
11
12
  ];
12
13
  export declare const IDS: IDs;
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/pkg/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/pkg/data.ts"],"names":[],"mappings":"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"}