@pkmn/engine 0.1.0-dev.36b5d56b → 0.1.0-dev.388b6109

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 (62) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +26 -19
  3. package/build/pkg/addon/browser.js +4 -1
  4. package/build/pkg/addon/browser.js.map +1 -1
  5. package/build/pkg/addon/node.js +20 -7
  6. package/build/pkg/addon/node.js.map +1 -1
  7. package/build/pkg/addon/wasm.js +41 -9
  8. package/build/pkg/addon/wasm.js.map +1 -1
  9. package/build/pkg/addon.d.ts +7 -7
  10. package/build/pkg/addon.js +8 -17
  11. package/build/pkg/addon.js.map +1 -1
  12. package/build/pkg/data/layout.json +15 -2
  13. package/build/pkg/data/protocol.json +23 -9
  14. package/build/pkg/data.js.map +1 -1
  15. package/build/pkg/gen1.d.ts +15 -18
  16. package/build/pkg/gen1.js +28 -19
  17. package/build/pkg/gen1.js.map +1 -1
  18. package/build/pkg/index.d.ts +37 -100
  19. package/build/pkg/index.js +23 -75
  20. package/build/pkg/index.js.map +1 -1
  21. package/build/pkg/protocol.d.ts +11 -2
  22. package/build/pkg/protocol.js.map +1 -1
  23. package/build/tools/debug.js +54 -11
  24. package/build/tools/debug.js.map +1 -1
  25. package/build/tools/display/debug.jsx +19 -94
  26. package/build/tools/display/debug.jsx.map +1 -1
  27. package/build/tools/display/index.js +18 -7
  28. package/build/tools/display/index.js.map +1 -1
  29. package/build/tools/display/ui.jsx +20 -9
  30. package/build/tools/display/ui.jsx.map +1 -1
  31. package/build/tools/display/util.js +140 -1
  32. package/build/tools/display/util.js.map +1 -1
  33. package/build.zig +309 -233
  34. package/package.json +31 -130
  35. package/src/bin/install-pkmn-engine +25 -9
  36. package/src/lib/bindings/c.zig +201 -0
  37. package/src/lib/bindings/node.zig +117 -0
  38. package/src/lib/bindings/wasm.zig +51 -0
  39. package/src/lib/common/array.zig +5 -12
  40. package/src/lib/common/debug.zig +45 -60
  41. package/src/lib/common/js.zig +3 -9
  42. package/src/lib/common/optional.zig +26 -26
  43. package/src/lib/common/protocol.zig +224 -189
  44. package/src/lib/common/rational.zig +275 -284
  45. package/src/lib/common/util.zig +34 -31
  46. package/src/lib/gen1/calc.zig +139 -117
  47. package/src/lib/gen1/chance.zig +149 -88
  48. package/src/lib/gen1/data/types.zig +2 -2
  49. package/src/lib/gen1/data.zig +5 -5
  50. package/src/lib/gen1/helpers.zig +30 -22
  51. package/src/lib/gen1/mechanics.zig +50 -43
  52. package/src/lib/gen2/calc.zig +3 -6
  53. package/src/lib/gen2/chance.zig +38 -26
  54. package/src/lib/gen2/data/types.zig +6 -3
  55. package/src/lib/gen2/data.zig +8 -7
  56. package/src/lib/gen2/helpers.zig +27 -19
  57. package/src/lib/gen2/mechanics.zig +36 -25
  58. package/src/lib/napi.h +2 -0
  59. package/src/lib/node.zig +3 -118
  60. package/src/lib/pkmn.zig +94 -19
  61. package/src/lib/wasm.zig +10 -9
  62. package/src/tools/display/dom.ts +43 -31
package/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2021-2024 pkmn contributors
1
+ Copyright (c) 2021-2026 pkmn contributors
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy of
4
4
  this software and associated documentation files (the "Software"), to deal in
package/README.md CHANGED
@@ -13,12 +13,10 @@
13
13
  </a>
14
14
  </p>
15
15
 
16
- > [!WARNING]
16
+ > [!WARNING]
17
17
  > **This project is under heavy development** and currently the `main` branch contains numerous breaking
18
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).
19
+ > initial v0.1 release** before depending on this project.
22
20
 
23
21
  <hr />
24
22
 
@@ -57,11 +55,9 @@ $ zig build --prefix /usr/local -Doptimize=ReleaseFast
57
55
  ```
58
56
 
59
57
  The Zig website has [installation instructions](https://ziglang.org/learn/getting-started/) which
60
- walk through how to install Zig on each platform - the engine code should work on Zig v0.11.0,
58
+ walk through how to install Zig on each platform - the engine code should work on Zig v0.16.0,
61
59
  though tracks Zig's master branch so this may change in the future if breaking language changes are
62
- introduced. Note that **due to a [bug in the Zig
63
- compiler](https://github.com/ziglang/zig/issues/17768), compiling with a version of Zig before
64
- `0.12.0-dev.876+aaf46187a` is recommended for performance**.
60
+ introduced.
65
61
 
66
62
  `libpkmn` can be built with `-Dshowdown` to instead produce the Pokémon Showdown compatible
67
63
  `libpkmn-showdown` library. Furthermore, protocol message logging can be enabled through `-Dlog`.
@@ -84,8 +80,11 @@ lifecycle script](https://docs.npmjs.com/cli/v8/using-npm/scripts) runs
84
80
  it can't find one, as well as looking for (and downloading, if necessary) the required Node headers
85
81
  needed to successfully build the addons natively.
86
82
 
87
- **If you have configured `npm` to `--ignore-scripts` you must either run `npx install-pkmn-engine`
88
- directly or build the addons manually and place the artifacts in the expected paths.**
83
+ > [!IMPORTANT]
84
+ > If you have configured `npm` to `--ignore-scripts` (or are using [npm v12+ and have not
85
+ > approved](https://github.blog/changelog/2026-06-09-upcoming-breaking-changes-for-npm-v12/)
86
+ > `@pkmn/engine` via `npm approve-scripts @pkmn/engine`) **you must either run `npx install-pkmn-engine`
87
+ > directly or build the addons manually and place the artifacts in the expected paths.**
89
88
 
90
89
  ### `pkmn`
91
90
 
@@ -94,7 +93,6 @@ To include `pkmn`, add it as a dependency in your project's
94
93
  Package Management
95
94
  system](https://ziglang.org/download/0.11.0/release-notes.html#Package-Management):
96
95
 
97
-
98
96
  ```zig
99
97
  .dependencies = .{
100
98
  .pkmn = .{
@@ -212,18 +210,19 @@ protocol via `Log.parse`.
212
210
  ```ts
213
211
  import {Dex} from '@pkmn/dex';
214
212
  import {Generations} from '@pkmn/data';
215
- import {Battle} from '@pkmn/engine';
213
+ import {Battle, Choice} from '@pkmn/engine';
216
214
 
217
215
  const gens = new Generations(Dex);
218
216
  const battle = Battle.create(...);
219
217
 
220
- const choose = (n: number) => Math.random() * n;
218
+ const choose = (choices: Choice[]) =>
219
+ choices[Math.floor(Math.random() * choices.length)];
221
220
 
222
221
  let result: Result;
223
222
  let c1: Choice, c2: Choice;
224
223
  while (!(result = battle.update(c1, c2)).type) {
225
- c1 = battle.choose('p1', result, choose);
226
- c2 = battle.choose('p2', result, choose);
224
+ c1 = choose(battle.choices('p1', result));
225
+ c2 = choose(battle.choices('p2', result));
227
226
  }
228
227
 
229
228
  console.log(result);
@@ -253,14 +252,15 @@ be used when logging is enabled to allow for easily printing e.g. to standard ou
253
252
  const std = @import("std");
254
253
  const pkmn = @import("pkmn");
255
254
 
256
- var random = std.Random.DefaultPrng.init(seed).random();
255
+ var prng: std.Random.DefaultPrng = .init(seed);
256
+ var random = prng.random();
257
257
  var choices: [pkmn.CHOICES_SIZE]pkmn.Choice = undefined;
258
258
 
259
259
  var battle = ...
260
260
  var options = pkmn.battle.options(...);
261
261
 
262
- var c1 = pkmn.Choice{};
263
- var c2 = pkmn.Choice{};
262
+ var c1: pkmn.Choice = .{};
263
+ var c2: pkmn.Choice = .{};
264
264
 
265
265
  var result = try battle.update(c1, c2, &options);
266
266
  while (result.type == .None) : (result = try battle.update(c1, c2, &options)) {
@@ -321,6 +321,13 @@ instead:
321
321
  $ pkmn-debug <file> > index.html
322
322
  ```
323
323
 
324
+ Finally, `pkmn-debug` also supports a `--json` flag which causes the decoded data to be dumped as
325
+ JSON instead of HTML:
326
+
327
+ ```sh
328
+ $ pkmn-debug --json <file> > index.json
329
+ ```
330
+
324
331
  ## Status
325
332
 
326
333
  The engine is currently expected to be developed over multiple stages:
@@ -333,7 +340,7 @@ The engine is currently expected to be developed over multiple stages:
333
340
  | ***3*** | *modern generations* |
334
341
 
335
342
  Currently, most of the foundational work from stage 0 is done:
336
-
343
+
337
344
  - [benchmark and integration testing](src/test) infrastructure
338
345
  - [documentation](docs) about design, research, methodology, etc
339
346
  - definition and implementation of the [protocol](docs/PROTOCOL.md) that's used by the engine
@@ -8,7 +8,10 @@ async function load(showdown, addon) {
8
8
  throw new Error('Unable to load native addons in the browser!');
9
9
  }
10
10
  let wasm;
11
- if (addon instanceof WebAssembly.Module) {
11
+ if (addon instanceof WebAssembly.Instance) {
12
+ wasm = addon;
13
+ }
14
+ else if (addon instanceof WebAssembly.Module) {
12
15
  try {
13
16
  wasm = (await WebAssembly.instantiate(addon));
14
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/pkg/addon/browser.ts"],"names":[],"mappings":";;AAKA,oBA+BC;AAED,4BAEC;AArCD,iCAAkC;AAE3B,KAAK,UAAU,IAAI,CAAC,QAAiB,EAAE,KAAgB;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,IAA0B,CAAC;IAC/B,IAAI,KAAK,YAAY,WAAW,CAAC,MAAM,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;gBAAE,MAAM,GAAG,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,OAAO,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACvD,CAAC,CAAE,KAAiC,YAAY,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7E,IAAI,GAAG,CAAC,MAAM,WAAW,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;gBAAE,MAAM,GAAG,CAAC;YACvC,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM;gBACxC,CAAC,CAAC,kBAAkB,IAAI,6CAA6C;gBACrE,CAAC,CAAE,KAAiC,YAAY,GAAG;oBACjD,CAAC,CAAC,qCAAsC,KAAa,CAAC,IAAI,IAAI;oBAC9D,CAAC,CAAC,oCAAoC,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,IAAA,iBAAU,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,SAAgB,QAAQ;IACtB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;AACnF,CAAC"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/pkg/addon/browser.ts"],"names":[],"mappings":";;AAKA,oBAiCC;AAED,4BAEC;AAvCD,iCAAkC;AAE3B,KAAK,UAAU,IAAI,CAAC,QAAiB,EAAE,KAAgB;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,IAA0B,CAAC;IAC/B,IAAI,KAAK,YAAY,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC1C,IAAI,GAAG,KAAK,CAAC;IACf,CAAC;SAAM,IAAI,KAAK,YAAY,WAAW,CAAC,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;gBAAE,MAAM,GAAG,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,OAAO,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACvD,CAAC,CAAE,KAAiC,YAAY,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7E,IAAI,GAAG,CAAC,MAAM,WAAW,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;gBAAE,MAAM,GAAG,CAAC;YACvC,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM;gBACxC,CAAC,CAAC,kBAAkB,IAAI,6CAA6C;gBACrE,CAAC,CAAE,KAAiC,YAAY,GAAG;oBACjD,CAAC,CAAC,qCAAsC,KAAa,CAAC,IAAI,IAAI;oBAC9D,CAAC,CAAC,oCAAoC,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,IAAA,iBAAU,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,SAAgB,QAAQ;IACtB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;AACnF,CAAC"}
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.load = load;
27
37
  exports.loadSync = loadSync;
@@ -57,6 +67,9 @@ async function load(showdown, addon) {
57
67
  throw error(WASM[+showdown], err);
58
68
  }
59
69
  }
70
+ else if (addon instanceof WebAssembly.Instance) {
71
+ wasm = addon;
72
+ }
60
73
  else if (addon instanceof WebAssembly.Module) {
61
74
  try {
62
75
  wasm = (await WebAssembly.instantiate(addon));
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/pkg/addon/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/pkg/addon/node.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,53 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toBindings = toBindings;
4
+ const data_1 = require("../data");
4
5
  function toBindings(w) {
6
+ const memory = new Uint8Array(w.memory.buffer);
5
7
  return {
6
8
  options: {
7
- showdown: w.SHOWDOWN.valueOf(),
8
- log: w.LOG.valueOf(),
9
- chance: w.CHANCE.valueOf(),
10
- calc: w.CALC.valueOf(),
9
+ showdown: !!memory[w.SHOWDOWN.valueOf()],
10
+ log: !!memory[w.LOG.valueOf()],
11
+ chance: !!memory[w.CHANCE.valueOf()],
12
+ calc: !!memory[w.CALC.valueOf()],
11
13
  },
12
- bindings: [toBinding('GEN1', w)],
14
+ bindings: [toBinding(1, w)],
13
15
  };
14
16
  }
15
- function toBinding(prefix, w) {
17
+ function toBinding(gen, w) {
18
+ const prefix = `GEN${gen}`;
19
+ const buf = w.memory.buffer;
20
+ const constants = new Uint32Array(buf);
21
+ const CHOICES_SIZE = constants[w[`${prefix}_CHOICES_SIZE`].valueOf() / 4];
22
+ const LOGS_SIZE = constants[w[`${prefix}_LOGS_SIZE`].valueOf() / 4];
23
+ const size = data_1.LAYOUT[gen - 1].sizes.Battle;
24
+ const update = w[`${prefix}_update`];
25
+ const choices = w[`${prefix}_choices`];
26
+ const memory = new Uint8Array(buf);
16
27
  return {
17
- CHOICES_SIZE: w[`${prefix}_CHOICES_SIZE`].valueOf(),
18
- LOGS_SIZE: w[`${prefix}_LOGS_SIZE`].valueOf(),
19
- }; // FIXME
28
+ CHOICES_SIZE,
29
+ LOGS_SIZE,
30
+ update(battle, c1, c2, log) {
31
+ const bytes = new Uint8Array(battle);
32
+ memory.set(bytes, 0);
33
+ let result;
34
+ if (log) {
35
+ result = update(0, c1, c2, size);
36
+ new Uint8Array(log).set(memory.subarray(size, size + LOGS_SIZE));
37
+ }
38
+ else {
39
+ result = update(0, c1, c2, 0);
40
+ }
41
+ bytes.set(memory.subarray(0, size));
42
+ return result;
43
+ },
44
+ choices(battle, player, request, options) {
45
+ const opts = new Uint8Array(options);
46
+ memory.set(new Uint8Array(battle));
47
+ const n = choices(0, player, request, size);
48
+ opts.set(memory.subarray(size, size + n));
49
+ return n;
50
+ },
51
+ };
20
52
  }
21
53
  //# sourceMappingURL=wasm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wasm.js","sourceRoot":"","sources":["../../../src/pkg/addon/wasm.ts"],"names":[],"mappings":";;AAEA,gCAUC;AAVD,SAAgB,UAAU,CAAoB,CAAsB;IAClE,OAAO;QACL,OAAO,EAAE;YACP,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC9B,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE;YAC1B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;SACvB;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,MAAc,EAAE,CAAsB;IACvD,OAAO;QACL,YAAY,EAAE,CAAC,CAAC,GAAG,MAAM,eAAe,CAAC,CAAC,OAAO,EAAE;QACnD,SAAS,EAAE,CAAC,CAAC,GAAG,MAAM,YAAY,CAAC,CAAC,OAAO,EAAE;KACxB,CAAC,CAAC,QAAQ;AACnC,CAAC"}
1
+ {"version":3,"file":"wasm.js","sourceRoot":"","sources":["../../../src/pkg/addon/wasm.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { Choice, Player, Result } from '.';
2
- export type Argument = string | URL | WebAssembly.Module | Promise<Response>;
1
+ import { Choice, Player, Result } from './common';
2
+ export type Argument = string | URL | WebAssembly.Module | WebAssembly.Instance | Promise<Response>;
3
3
  export interface Bindings<T extends boolean> {
4
4
  /**
5
5
  * The compile-time options the bindings were built with. showdown is special
@@ -17,13 +17,13 @@ export interface Bindings<T extends boolean> {
17
17
  export interface Binding {
18
18
  CHOICES_SIZE: number;
19
19
  LOGS_SIZE: number;
20
- update(battle: ArrayBuffer, c1: number, c2: number, log: ArrayBuffer | undefined): number;
21
- choices(battle: ArrayBuffer, player: number, request: number, options: ArrayBuffer): number;
20
+ update(battle: ArrayBufferLike, c1: number, c2: number, log: ArrayBufferLike | undefined): number;
21
+ choices(battle: ArrayBufferLike, player: number, request: number, out: ArrayBufferLike): number;
22
22
  }
23
+ /** TODO */
23
24
  export declare function initialize(showdown: boolean, addon?: Argument): Promise<void | undefined>;
24
25
  export declare function check(showdown: boolean): void;
25
26
  export declare function supports(showdown: boolean, log?: boolean): boolean;
26
- export declare function update(index: number, showdown: boolean, battle: ArrayBuffer, c1?: Choice, c2?: Choice, log?: ArrayBuffer): Result;
27
- export declare function choices(index: number, showdown: boolean, battle: ArrayBuffer, player: Player, choice: Choice['type'], buf: ArrayBuffer): Choice[];
28
- export declare function choose(index: number, showdown: boolean, battle: ArrayBuffer, player: Player, choice: Choice['type'], buf: ArrayBuffer, fn: (n: number) => number): Choice;
27
+ export declare function update(index: number, showdown: boolean, battle: ArrayBufferLike, c1?: Choice, c2?: Choice, log?: ArrayBufferLike): Result;
28
+ export declare function choices(index: number, showdown: boolean, battle: ArrayBufferLike, player: Player, choice: Choice['type'], out: Uint8Array): Choice[];
29
29
  export declare function size(index: number, type: 'choices' | 'log'): number;
@@ -5,12 +5,12 @@ exports.check = check;
5
5
  exports.supports = supports;
6
6
  exports.update = update;
7
7
  exports.choices = choices;
8
- exports.choose = choose;
9
8
  exports.size = size;
10
9
  const node_1 = require("./addon/node");
11
- const _1 = require(".");
10
+ const common_1 = require("./common");
12
11
  const ADDONS = [];
13
12
  const loading = [];
13
+ /** TODO */
14
14
  async function initialize(showdown, addon) {
15
15
  if (loading[+showdown]) {
16
16
  throw new Error(`Cannot call initialize more than once with showdown=${showdown}`);
@@ -47,12 +47,12 @@ function addons(showdown) {
47
47
  return ADDONS;
48
48
  }
49
49
  function update(index, showdown, battle, c1, c2, log) {
50
- return _1.Result.decode(ADDONS[+showdown].bindings[index]
51
- .update(battle, _1.Choice.encode(c1), _1.Choice.encode(c2), log));
50
+ return common_1.Result.decode(ADDONS[+showdown].bindings[index]
51
+ .update(battle, common_1.Choice.encode(c1), common_1.Choice.encode(c2), log));
52
52
  }
53
- function choices(index, showdown, battle, player, choice, buf) {
53
+ function choices(index, showdown, battle, player, choice, out) {
54
54
  const request = choice[0] === 'p' ? 0 : choice[0] === 'm' ? 1 : 2;
55
- const n = ADDONS[+showdown].bindings[index].choices(battle, +(player !== 'p1'), request, buf);
55
+ const n = ADDONS[+showdown].bindings[index].choices(battle, +(player !== 'p1'), request, out.buffer);
56
56
  // The top-level API signature means our hands our tied with respect to
57
57
  // writing really fast bindings here. The simplest approach would be to return
58
58
  // the ArrayBuffer the bindings populate as well as its size and only decode a
@@ -67,21 +67,12 @@ function choices(index, showdown, battle, player, choice, buf) {
67
67
  // choices function for each generation within node.zig. We could do something
68
68
  // really galaxy-brained and return some sort of frankenstein subclass of
69
69
  // Array backed by ArrayBuffer which would lazily decode the Choice on access,
70
- // but thats ultimately not worth the effort. You can't have both a high-level
71
- // idiomatic API and performance here, hence why the choose function below
72
- // exists.
70
+ // but thats ultimately not worth the effort.
73
71
  const options = new Array(n);
74
- const data = new Uint8Array(buf);
75
72
  for (let i = 0; i < n; i++)
76
- options[i] = _1.Choice.decode(data[i]);
73
+ options[i] = common_1.Choice.decode(out[i]);
77
74
  return options;
78
75
  }
79
- function choose(index, showdown, battle, player, choice, buf, fn) {
80
- const request = choice[0] === 'p' ? 0 : choice[0] === 'm' ? 1 : 2;
81
- const n = ADDONS[+showdown].bindings[index].choices(battle, +(player !== 'p1'), request, buf);
82
- const data = new Uint8Array(buf);
83
- return _1.Choice.decode(data[fn(n)]);
84
- }
85
76
  function size(index, type) {
86
77
  const bindings = (ADDONS[1] ?? ADDONS[0]).bindings[index];
87
78
  return type[0] === 'c' ? bindings.CHOICES_SIZE : bindings.LOGS_SIZE;
@@ -1 +1 @@
1
- {"version":3,"file":"addon.js","sourceRoot":"","sources":["../../src/pkg/addon.ts"],"names":[],"mappings":";;AA0BA,gCAWC;AAED,sBASC;AAED,4BAIC;AASD,wBAUC;AAED,0BA+BC;AAED,wBAaC;AAED,oBAGC;AA9HD,uCAA4C;AAE5C,wBAAyC;AAqBzC,MAAM,MAAM,GAAwC,EAAE,CAAC;AACvD,MAAM,OAAO,GAA0D,EAAE,CAAC;AAEnE,KAAK,UAAU,UAAU,CAAC,QAAiB,EAAE,KAAgB;IAClE,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,uDAAuD,QAAQ,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC3B,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,KAAK,CAAC,QAAiB;IACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,IAAI,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,oBAAoB,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,+CAA+C;YAC5F,mDAAmD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAgB,QAAQ,CAAC,QAAiB,EAAE,GAAa;IACvD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,MAAM,CAAC,CAAC,QAAQ,CAAE,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC;AAChD,CAAC;AAED,SAAS,MAAM,CAAC,QAAiB;IAC/B,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC;IACrC,sEAAsE;IACtE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAA,eAAQ,EAAC,QAAQ,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,MAAM,CACpB,KAAa,EACb,QAAiB,EACjB,MAAmB,EACnB,EAAW,EACX,EAAW,EACX,GAAiB;IAEjB,OAAO,SAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;SACpD,MAAM,CAAC,MAAM,EAAE,SAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,SAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,OAAO,CACrB,KAAa,EACb,QAAiB,EACjB,MAAmB,EACnB,MAAc,EACd,MAAsB,EACtB,GAAgB;IAEhB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/F,uEAAuE;IACvE,8EAA8E;IAC9E,8EAA8E;IAC9E,oEAAoE;IACpE,0EAA0E;IAC1E,2EAA2E;IAC3E,4EAA4E;IAC5E,8EAA8E;IAC9E,4EAA4E;IAC5E,2EAA2E;IAC3E,uEAAuE;IACvE,8EAA8E;IAC9E,yEAAyE;IACzE,8EAA8E;IAC9E,8EAA8E;IAC9E,0EAA0E;IAC1E,UAAU;IACV,MAAM,OAAO,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,MAAM,CACpB,KAAa,EACb,QAAiB,EACjB,MAAmB,EACnB,MAAc,EACd,MAAsB,EACtB,GAAgB,EAChB,EAAyB;IAEzB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,SAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,IAAI,CAAC,KAAa,EAAE,IAAuB;IACzD,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"addon.js","sourceRoot":"","sources":["../../src/pkg/addon.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  "Pokemon": 24,
7
7
  "ActivePokemon": 32,
8
8
  "Actions": 16,
9
+ "Durations": 8,
9
10
  "Summaries": 12
10
11
  },
11
12
  "offsets": {
@@ -92,12 +93,24 @@
92
93
  "confused": 16,
93
94
  "paralyzed": 18,
94
95
  "duration": 20,
95
- "durations": 24,
96
- "move_slot": 40,
96
+ "sleep": 24,
97
+ "confusion": 26,
98
+ "disable": 29,
99
+ "attacking": 31,
100
+ "binding": 33,
101
+ "move_slot": 36,
102
+ "pp": 40,
97
103
  "multi_hit": 44,
98
104
  "psywave": 48,
99
105
  "metronome": 56
100
106
  },
107
+ "Duration": {
108
+ "sleeps": 0,
109
+ "confusion": 18,
110
+ "disable": 21,
111
+ "attacking": 25,
112
+ "binding": 28
113
+ },
101
114
  "Damage": {
102
115
  "base": 0,
103
116
  "final": 2,
@@ -48,7 +48,7 @@
48
48
  "EndAbility",
49
49
  "ClearNegativeBoost",
50
50
  "FormeChange",
51
- "NoTarget",
51
+ "LastNoTarget",
52
52
  "SwapBoost",
53
53
  "FieldStart",
54
54
  "FieldEnd",
@@ -71,6 +71,7 @@
71
71
  "ClearPositiveBoost",
72
72
  "CanDynamax",
73
73
  "SwapSideConditions",
74
+ "UpdatePoke",
74
75
  "Terastallize"
75
76
  ],
76
77
  "Move": [
@@ -92,7 +93,10 @@
92
93
  "None",
93
94
  "Silent",
94
95
  "Drain",
95
- "Leftovers"
96
+ "Leftovers",
97
+ "Berry",
98
+ "BerryJuice",
99
+ "GoldBerry"
96
100
  ],
97
101
  "Damage": [
98
102
  "None",
@@ -106,7 +110,10 @@
106
110
  "FireSpin",
107
111
  "Clamp",
108
112
  "Whirlpool",
109
- "Spikes"
113
+ "Spikes",
114
+ "Nightmare",
115
+ "Curse",
116
+ "Sandstorm"
110
117
  ],
111
118
  "Status": [
112
119
  "None",
@@ -146,6 +153,7 @@
146
153
  "Struggle",
147
154
  "Substitute",
148
155
  "Splash",
156
+ "Rage",
149
157
  "Attract",
150
158
  "LockOn",
151
159
  "Bind",
@@ -153,7 +161,11 @@
153
161
  "FireSpin",
154
162
  "Clamp",
155
163
  "Whirlpool",
156
- "BeatUp"
164
+ "SubstituteBlock",
165
+ "DestinyBond",
166
+ "BeatUp",
167
+ "Magnitude",
168
+ "Spite"
157
169
  ],
158
170
  "Start": [
159
171
  "Bide",
@@ -168,16 +180,17 @@
168
180
  "TypeChange",
169
181
  "Disable",
170
182
  "Mimic",
183
+ "Attract",
171
184
  "Nightmare",
172
185
  "Curse",
173
186
  "Foresight",
174
187
  "Encore",
175
188
  "FutureSight",
176
- "PerishSong3Silent",
177
- "PerishSong3",
178
- "PerishSong2",
189
+ "PerishSong0",
179
190
  "PerishSong1",
180
- "PerishSong0"
191
+ "PerishSong2",
192
+ "PerishSong3",
193
+ "PerishSong3Silent"
181
194
  ],
182
195
  "End": [
183
196
  "Disable",
@@ -203,7 +216,8 @@
203
216
  "ToxicSilent",
204
217
  "LightScreenSilent",
205
218
  "ReflectSilent",
206
- "BideSilent"
219
+ "BideSilent",
220
+ "LeechSeedFrom"
207
221
  ],
208
222
  "Immune": [
209
223
  "None",
@@ -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":";;;;;;AAEA,+DAAsC;AACtC,qEAA6C;AAC7C,yEAAgD;AAEnC,QAAA,EAAE,GAAG,CAAC,GAAG,EAAE;IACtB,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC,EAAE,CAAC;AAOQ,QAAA,GAAG,GAAG,kBAAc,CAAC;AAErB,QAAA,QAAQ,GAA+C,EAAE,CAAC;AACvE,KAAK,MAAM,IAAI,IAAI,uBAAY,EAAE,CAAC;IAChC,gBAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,IAAI,IAAI,uBAAY,CAAC,IAAiC,CAAC,EAAE,CAAC;QACnE,gBAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC;AAEY,QAAA,MAAM,GAAG,qBAGpB,CAAC;AACH,KAAK,MAAM,GAAG,IAAI,cAAM,EAAE,CAAC;IACzB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IACjD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AACpE,CAAC;AAEY,QAAA,IAAI,GAAG,IAAI;IACtB,IAAI,CAAC,GAAsB;QACzB,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAClD,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;CACF,CAAC;AAEF,MAAM,OAAO,GAAa,EAAE,CAAC;AAe7B;;;GAGG;AACH,MAAa,MAAM;IACA,GAAG,CAAa;IAChB,UAAU,CAAa;IACvB,WAAW,CAA8B;IACzC,OAAO,CAAO;IACd,KAAK,CAAO;IACZ,UAAU,CAAO;IACjB,SAAS,CAAyB;IAEnD,uDAAuD;IACvD,MAAM,CAAC,GAAG,CAAC,GAAe;QACxB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACpC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,YAAoB,GAAe;QACjC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,WAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAU,CAAC,CAAC,KAAK,CAAC;QAC/D,IAAI,CAAC,WAAW,GAAG,EAAiC,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,WAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAM,CAAC,CAAC,KAAK,CAAC;YAC9C,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;oBACxC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAY,CAAC;gBACpC,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACxB,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;SAC9B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAc;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,EAAkB;QAC5B,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,EAAkB;QACzB,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,EAAkB;QACzB,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;CACF;AArHD,wBAqHC"}
@@ -1,20 +1,20 @@
1
1
  import { BoostID, BoostsTable, Generation, ID, PokemonSet, StatID, StatsTable, StatusName, TypeName } from '@pkmn/data';
2
+ import { Choice, Player, Result } from './common';
2
3
  import { Lookup } from './data';
3
- import { Choice, CreateOptions, Data, Gen1, Player, RestoreOptions, Result, Slot } from '.';
4
+ import { CreateOptions, Data, Gen1, RestoreOptions, Slot } from '.';
4
5
  export declare class Battle implements Gen1.Battle {
5
6
  readonly config: CreateOptions | RestoreOptions;
6
7
  readonly log?: DataView;
8
+ readonly data: DataView;
7
9
  private readonly lookup;
8
- private readonly data;
9
- private readonly options;
10
- private readonly buf;
10
+ private readonly out;
11
11
  private readonly cache;
12
12
  constructor(lookup: Lookup, data: DataView, config: CreateOptions | RestoreOptions);
13
+ bytes(): DataView<ArrayBufferLike>;
13
14
  update(c1?: Choice, c2?: Choice): Result;
14
15
  choices(id: Player, result: Result): Choice[];
15
- choose(id: Player, result: Result, fn: (n: number) => number): Choice;
16
16
  get sides(): Generator<Side, void, unknown>;
17
- _sides(): Generator<Side, void, unknown>;
17
+ private _sides;
18
18
  side(id: Player): Side;
19
19
  foe(side: Player): Side;
20
20
  get turn(): number;
@@ -34,16 +34,16 @@ export declare class Side implements Gen1.Side {
34
34
  constructor(battle: Battle, lookup: Lookup, data: DataView, id: 'p1' | 'p2');
35
35
  get active(): Pokemon | undefined;
36
36
  get pokemon(): Generator<Pokemon, void, unknown>;
37
- _pokemon(): Generator<Pokemon, void, unknown>;
37
+ private _pokemon;
38
38
  slot(id: number): Slot | undefined;
39
39
  get(slot: Slot): Pokemon | undefined;
40
40
  get lastUsedMove(): ID | undefined;
41
41
  get lastSelectedMove(): ID | undefined;
42
42
  get lastMoveIndex(): 1 | 2 | 3 | 4 | undefined;
43
43
  get lastMoveCounterable(): boolean;
44
- toJSON(): Gen1.Side;
44
+ toJSON(): Data<Gen1.Side>;
45
45
  static init(gen: Generation, lookup: Lookup, team: Partial<PokemonSet>[], data: DataView, offset: number): void;
46
- static encode(gen: Generation, showdown: boolean, lookup: Lookup, battle: Data<Gen1.Battle>, side: Gen1.Side, data: DataView, offset: number): void;
46
+ static encode(gen: Generation, showdown: boolean, lookup: Lookup, battle: Data<Gen1.Battle>, side: Data<Gen1.Side>, data: DataView, offset: number): void;
47
47
  }
48
48
  export declare class Pokemon implements Gen1.Pokemon {
49
49
  static Volatiles: {
@@ -64,7 +64,7 @@ export declare class Pokemon implements Gen1.Pokemon {
64
64
  get volatiles(): Gen1.Volatiles;
65
65
  move(slot: 1 | 2 | 3 | 4): Gen1.MoveSlot | undefined;
66
66
  get moves(): Iterable<Gen1.MoveSlot>;
67
- _moves(): Generator<Gen1.MoveSlot, void, unknown>;
67
+ private _moves;
68
68
  boost(boost: BoostID): number;
69
69
  get boosts(): BoostsTable;
70
70
  get species(): ID;
@@ -80,10 +80,10 @@ export declare class Pokemon implements Gen1.Pokemon {
80
80
  private get sleep();
81
81
  private get ext();
82
82
  private get toxic();
83
- toJSON(): Gen1.Pokemon;
83
+ toJSON(): Data<Gen1.Pokemon>;
84
84
  static init(gen: Generation, lookup: Lookup, set: Partial<PokemonSet>, data: DataView, offset: number, index: number): void;
85
- static encodeStored(gen: Generation, showdown: boolean, lookup: Lookup, pokemon: Gen1.Pokemon, data: DataView, offset: number): void;
86
- static encodeActive(gen: Generation, lookup: Lookup, battle: Data<Gen1.Battle>, pokemon: Gen1.Pokemon | undefined, data: DataView, offset: number): void;
85
+ static encodeStored(gen: Generation, showdown: boolean, lookup: Lookup, pokemon: Data<Gen1.Pokemon>, data: DataView, offset: number): void;
86
+ static encodeActive(gen: Generation, lookup: Lookup, battle: Data<Gen1.Battle>, pokemon: Data<Gen1.Pokemon> | undefined, data: DataView, offset: number): void;
87
87
  }
88
88
  export declare class StoredPokemon {
89
89
  private readonly lookup;
@@ -100,11 +100,8 @@ export declare class StoredPokemon {
100
100
  id: ID;
101
101
  pp: number;
102
102
  }, void, unknown>;
103
- _moves(): Generator<{
104
- id: ID;
105
- pp: number;
106
- }, void, unknown>;
103
+ private _moves;
107
104
  get species(): ID;
108
105
  get types(): readonly [TypeName, TypeName];
109
- toJSON(): Gen1.Pokemon['stored'];
106
+ toJSON(): Data<Gen1.Pokemon['stored']>;
110
107
  }