@pkmn/engine 0.1.0-dev.a0447192 → 0.1.0-dev.a15b6c17
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.
- package/LICENSE +1 -1
- package/README.md +22 -12
- package/build/pkg/addon/browser.d.ts +1 -1
- package/build/pkg/addon/browser.js +6 -2
- package/build/pkg/addon/browser.js.map +1 -1
- package/build/pkg/addon/node.js +22 -8
- package/build/pkg/addon/node.js.map +1 -1
- package/build/pkg/addon/wasm.d.ts +2 -0
- package/build/pkg/addon/wasm.js +53 -0
- package/build/pkg/addon/wasm.js.map +1 -0
- package/build/pkg/addon.d.ts +25 -5
- package/build/pkg/addon.js +8 -17
- package/build/pkg/addon.js.map +1 -1
- package/build/pkg/data/layout.json +15 -2
- package/build/pkg/data/protocol.json +23 -9
- package/build/pkg/data.js.map +1 -1
- package/build/pkg/gen1.d.ts +15 -18
- package/build/pkg/gen1.js +28 -19
- package/build/pkg/gen1.js.map +1 -1
- package/build/pkg/index.d.ts +37 -100
- package/build/pkg/index.js +23 -75
- package/build/pkg/index.js.map +1 -1
- package/build/pkg/protocol.d.ts +11 -2
- package/build/pkg/protocol.js.map +1 -1
- package/build/tools/debug.js +55 -12
- package/build/tools/debug.js.map +1 -1
- package/build/tools/display/debug.jsx +19 -94
- package/build/tools/display/debug.jsx.map +1 -1
- package/build/tools/display/index.js +35 -15
- package/build/tools/display/index.js.map +1 -1
- package/build/tools/display/ui.jsx +20 -9
- package/build/tools/display/ui.jsx.map +1 -1
- package/build/tools/display/util.js +140 -1
- package/build/tools/display/util.js.map +1 -1
- package/build.zig +239 -217
- package/package.json +34 -130
- package/src/bin/install-pkmn-engine +25 -9
- package/src/lib/bindings/c.zig +200 -0
- package/src/lib/bindings/node.zig +117 -0
- package/src/lib/bindings/wasm.zig +50 -0
- package/src/lib/common/array.zig +5 -12
- package/src/lib/common/debug.zig +33 -59
- package/src/lib/common/js.zig +3 -9
- package/src/lib/common/optional.zig +11 -21
- package/src/lib/common/options.zig +2 -0
- package/src/lib/common/protocol.zig +228 -197
- package/src/lib/common/rational.zig +275 -284
- package/src/lib/common/rng.zig +1 -3
- package/src/lib/common/util.zig +14 -31
- package/src/lib/gen1/calc.zig +159 -163
- package/src/lib/gen1/chance.zig +146 -93
- package/src/lib/gen1/data/moves.zig +2 -4
- package/src/lib/gen1/data/species.zig +1 -3
- package/src/lib/gen1/data/types.zig +3 -4
- package/src/lib/gen1/data.zig +12 -16
- package/src/lib/gen1/helpers.zig +12 -20
- package/src/lib/gen1/mechanics.zig +103 -78
- package/src/lib/gen2/calc.zig +12 -23
- package/src/lib/gen2/chance.zig +12 -18
- package/src/lib/gen2/data/items.zig +1 -3
- package/src/lib/gen2/data/moves.zig +2 -4
- package/src/lib/gen2/data/species.zig +1 -3
- package/src/lib/gen2/data/types.zig +7 -5
- package/src/lib/gen2/data.zig +19 -22
- package/src/lib/gen2/generated.zig +18 -23
- package/src/lib/gen2/helpers.zig +9 -18
- package/src/lib/gen2/mechanics.zig +58 -55
- package/src/lib/napi.h +2 -0
- package/src/lib/node.zig +4 -121
- package/src/lib/pkmn.zig +98 -19
- package/src/lib/wasm.zig +9 -9
- package/src/tools/display/dom.ts +43 -31
- package/src/tools/display/ui.css +0 -5
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -57,11 +57,13 @@ $ zig build --prefix /usr/local -Doptimize=ReleaseFast
|
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
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.
|
|
60
|
+
walk through how to install Zig on each platform - the engine code should work on Zig v0.16.0,
|
|
61
61
|
though tracks Zig's master branch so this may change in the future if breaking language changes are
|
|
62
62
|
introduced. Note that **due to a [bug in the Zig
|
|
63
|
-
compiler](https://github.com/ziglang/zig/issues/17768),
|
|
64
|
-
|
|
63
|
+
compiler](https://github.com/ziglang/zig/issues/17768), building a version of [Zig from
|
|
64
|
+
source](https://codeberg.org/ziglang/zig#building-from-source) after having applied a
|
|
65
|
+
[patch](zig.patch) to revert [ziglang/zig#17391](https://github.com/ziglang/zig/pull/17391) is
|
|
66
|
+
recommended for performance**.
|
|
65
67
|
|
|
66
68
|
`libpkmn` can be built with `-Dshowdown` to instead produce the Pokémon Showdown compatible
|
|
67
69
|
`libpkmn-showdown` library. Furthermore, protocol message logging can be enabled through `-Dlog`.
|
|
@@ -94,7 +96,6 @@ To include `pkmn`, add it as a dependency in your project's
|
|
|
94
96
|
Package Management
|
|
95
97
|
system](https://ziglang.org/download/0.11.0/release-notes.html#Package-Management):
|
|
96
98
|
|
|
97
|
-
|
|
98
99
|
```zig
|
|
99
100
|
.dependencies = .{
|
|
100
101
|
.pkmn = .{
|
|
@@ -212,18 +213,19 @@ protocol via `Log.parse`.
|
|
|
212
213
|
```ts
|
|
213
214
|
import {Dex} from '@pkmn/dex';
|
|
214
215
|
import {Generations} from '@pkmn/data';
|
|
215
|
-
import {Battle} from '@pkmn/engine';
|
|
216
|
+
import {Battle, Choice} from '@pkmn/engine';
|
|
216
217
|
|
|
217
218
|
const gens = new Generations(Dex);
|
|
218
219
|
const battle = Battle.create(...);
|
|
219
220
|
|
|
220
|
-
const choose = (
|
|
221
|
+
const choose = (choices: Choice[]) =>
|
|
222
|
+
choices[Math.floor(Math.random() * choices.length)];
|
|
221
223
|
|
|
222
224
|
let result: Result;
|
|
223
225
|
let c1: Choice, c2: Choice;
|
|
224
226
|
while (!(result = battle.update(c1, c2)).type) {
|
|
225
|
-
c1 = battle.
|
|
226
|
-
c2 = battle.
|
|
227
|
+
c1 = choose(battle.choices('p1', result));
|
|
228
|
+
c2 = choose(battle.choices('p2', result));
|
|
227
229
|
}
|
|
228
230
|
|
|
229
231
|
console.log(result);
|
|
@@ -253,14 +255,15 @@ be used when logging is enabled to allow for easily printing e.g. to standard ou
|
|
|
253
255
|
const std = @import("std");
|
|
254
256
|
const pkmn = @import("pkmn");
|
|
255
257
|
|
|
256
|
-
var
|
|
258
|
+
var prng: std.Random.DefaultPrng = .init(seed);
|
|
259
|
+
var random = prng.random();
|
|
257
260
|
var choices: [pkmn.CHOICES_SIZE]pkmn.Choice = undefined;
|
|
258
261
|
|
|
259
262
|
var battle = ...
|
|
260
263
|
var options = pkmn.battle.options(...);
|
|
261
264
|
|
|
262
|
-
var c1 =
|
|
263
|
-
var c2 =
|
|
265
|
+
var c1: pkmn.Choice = .{};
|
|
266
|
+
var c2: pkmn.Choice = .{};
|
|
264
267
|
|
|
265
268
|
var result = try battle.update(c1, c2, &options);
|
|
266
269
|
while (result.type == .None) : (result = try battle.update(c1, c2, &options)) {
|
|
@@ -321,6 +324,13 @@ instead:
|
|
|
321
324
|
$ pkmn-debug <file> > index.html
|
|
322
325
|
```
|
|
323
326
|
|
|
327
|
+
Finally, `pkmn-debug` also supports a `--json` flag which causes the decoded data to be dumped as
|
|
328
|
+
JSON instead of HTML:
|
|
329
|
+
|
|
330
|
+
```sh
|
|
331
|
+
$ pkmn-debug --json <file> > index.json
|
|
332
|
+
```
|
|
333
|
+
|
|
324
334
|
## Status
|
|
325
335
|
|
|
326
336
|
The engine is currently expected to be developed over multiple stages:
|
|
@@ -333,7 +343,7 @@ The engine is currently expected to be developed over multiple stages:
|
|
|
333
343
|
| ***3*** | *modern generations* |
|
|
334
344
|
|
|
335
345
|
Currently, most of the foundational work from stage 0 is done:
|
|
336
|
-
|
|
346
|
+
|
|
337
347
|
- [benchmark and integration testing](src/test) infrastructure
|
|
338
348
|
- [documentation](docs) about design, research, methodology, etc
|
|
339
349
|
- definition and implementation of the [protocol](docs/PROTOCOL.md) that's used by the engine
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Argument } from '../addon';
|
|
2
|
-
export declare function load(showdown: boolean, addon?: Argument): Promise<
|
|
2
|
+
export declare function load(showdown: boolean, addon?: Argument): Promise<import("../addon").Bindings<boolean>>;
|
|
3
3
|
export declare function loadSync(): void;
|
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.load = load;
|
|
4
4
|
exports.loadSync = loadSync;
|
|
5
|
+
const wasm_1 = require("./wasm");
|
|
5
6
|
async function load(showdown, addon) {
|
|
6
7
|
if (typeof addon === 'string' && addon !== 'wasm') {
|
|
7
8
|
throw new Error('Unable to load native addons in the browser!');
|
|
8
9
|
}
|
|
9
10
|
let wasm;
|
|
10
|
-
if (addon instanceof WebAssembly.
|
|
11
|
+
if (addon instanceof WebAssembly.Instance) {
|
|
12
|
+
wasm = addon;
|
|
13
|
+
}
|
|
14
|
+
else if (addon instanceof WebAssembly.Module) {
|
|
11
15
|
try {
|
|
12
16
|
wasm = (await WebAssembly.instantiate(addon));
|
|
13
17
|
}
|
|
@@ -35,7 +39,7 @@ async function load(showdown, addon) {
|
|
|
35
39
|
throw new Error(`${message}\n${err.message}`);
|
|
36
40
|
}
|
|
37
41
|
}
|
|
38
|
-
return wasm.exports;
|
|
42
|
+
return (0, wasm_1.toBindings)(wasm.exports);
|
|
39
43
|
}
|
|
40
44
|
function loadSync() {
|
|
41
45
|
throw new Error('You must `initialize` the WASM addon before using the engine!');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/pkg/addon/browser.ts"],"names":[],"mappings":";;
|
|
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"}
|
package/build/pkg/addon/node.js
CHANGED
|
@@ -15,18 +15,29 @@ 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 (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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;
|
|
28
38
|
const fs = __importStar(require("fs"));
|
|
29
39
|
const path = __importStar(require("path"));
|
|
40
|
+
const wasm_1 = require("./wasm");
|
|
30
41
|
const ROOT = path.join(__dirname, '..', '..', '..');
|
|
31
42
|
const LIB = path.join(ROOT, 'build', 'lib');
|
|
32
43
|
const NODE = [path.join(LIB, 'pkmn.node'), path.join(LIB, 'pkmn-showdown.node')];
|
|
@@ -56,6 +67,9 @@ async function load(showdown, addon) {
|
|
|
56
67
|
throw error(WASM[+showdown], err);
|
|
57
68
|
}
|
|
58
69
|
}
|
|
70
|
+
else if (addon instanceof WebAssembly.Instance) {
|
|
71
|
+
wasm = addon;
|
|
72
|
+
}
|
|
59
73
|
else if (addon instanceof WebAssembly.Module) {
|
|
60
74
|
try {
|
|
61
75
|
wasm = (await WebAssembly.instantiate(addon));
|
|
@@ -77,7 +91,7 @@ async function load(showdown, addon) {
|
|
|
77
91
|
throw new Error(`Could not instantiate WASM module!\n${err.message}`);
|
|
78
92
|
}
|
|
79
93
|
}
|
|
80
|
-
return wasm.exports;
|
|
94
|
+
return (0, wasm_1.toBindings)(wasm.exports);
|
|
81
95
|
}
|
|
82
96
|
function loadSync(showdown) {
|
|
83
97
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/pkg/addon/node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/pkg/addon/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,oBAyCC;AAED,4BAMC;AA9DD,uCAAyB;AACzB,2CAA6B;AAI7B,iCAAkC;AAElC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACpD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAE5C,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC,CAAC;AACjF,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAE1E,KAAK,UAAU,IAAI,CAAC,QAAiB,EAAE,KAAgB;IAC5D,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACzE,IAAI,CAAC;YACH,OAAO,OAAO,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAC9E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;gBAAE,OAAO,GAAG,CAAC;YACxC,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAA0B,CAAC;IAC/B,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,YAAY,WAAW,CAAC,QAAQ,EAAE,CAAC;QACjD,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,IAAI,CAAC;YACH,MAAM,QAAQ,GAAI,KAAiC,YAAY,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9F,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,IAAI,KAAK,CAAC,uCAAuC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,OAAO,IAAA,iBAAU,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,SAAgB,QAAQ,CAAC,QAAiB;IACxC,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,GAAY;IACvC,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACxC,MAAM,OAAO,GAAG,kBAAkB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC9D,OAAO,IAAI,KAAK,CAAC,GAAG,OAAO,gDAAgD,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5F,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toBindings = toBindings;
|
|
4
|
+
const data_1 = require("../data");
|
|
5
|
+
function toBindings(w) {
|
|
6
|
+
const memory = new Uint8Array(w.memory.buffer);
|
|
7
|
+
return {
|
|
8
|
+
options: {
|
|
9
|
+
showdown: !!memory[w.SHOWDOWN.valueOf()],
|
|
10
|
+
log: !!memory[w.LOG.valueOf()],
|
|
11
|
+
chance: !!memory[w.CHANCE.valueOf()],
|
|
12
|
+
calc: !!memory[w.CALC.valueOf()],
|
|
13
|
+
},
|
|
14
|
+
bindings: [toBinding(1, w)],
|
|
15
|
+
};
|
|
16
|
+
}
|
|
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);
|
|
27
|
+
return {
|
|
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
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=wasm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm.js","sourceRoot":"","sources":["../../../src/pkg/addon/wasm.ts"],"names":[],"mappings":"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"}
|
package/build/pkg/addon.d.ts
CHANGED
|
@@ -1,9 +1,29 @@
|
|
|
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
|
+
export interface Bindings<T extends boolean> {
|
|
4
|
+
/**
|
|
5
|
+
* The compile-time options the bindings were built with. showdown is special
|
|
6
|
+
* cased because it changes the name of addon.
|
|
7
|
+
*/
|
|
8
|
+
options: {
|
|
9
|
+
showdown: T;
|
|
10
|
+
log: boolean;
|
|
11
|
+
chance: boolean;
|
|
12
|
+
calc: boolean;
|
|
13
|
+
};
|
|
14
|
+
/** Bindings are per-generation, Generation I is index 0. */
|
|
15
|
+
bindings: Binding[];
|
|
16
|
+
}
|
|
17
|
+
export interface Binding {
|
|
18
|
+
CHOICES_SIZE: number;
|
|
19
|
+
LOGS_SIZE: 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
|
+
}
|
|
23
|
+
/** TODO */
|
|
3
24
|
export declare function initialize(showdown: boolean, addon?: Argument): Promise<void | undefined>;
|
|
4
25
|
export declare function check(showdown: boolean): void;
|
|
5
26
|
export declare function supports(showdown: boolean, log?: boolean): boolean;
|
|
6
|
-
export declare function update(index: number, showdown: boolean, battle:
|
|
7
|
-
export declare function choices(index: number, showdown: boolean, battle:
|
|
8
|
-
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[];
|
|
9
29
|
export declare function size(index: number, type: 'choices' | 'log'): number;
|
package/build/pkg/addon.js
CHANGED
|
@@ -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
|
|
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
|
|
51
|
-
.update(battle,
|
|
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,
|
|
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,
|
|
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.
|
|
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] =
|
|
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;
|
package/build/pkg/addon.js.map
CHANGED
|
@@ -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,
|
|
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
|
-
"
|
|
96
|
-
"
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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
|
-
"
|
|
177
|
-
"PerishSong3",
|
|
178
|
-
"PerishSong2",
|
|
189
|
+
"PerishSong0",
|
|
179
190
|
"PerishSong1",
|
|
180
|
-
"
|
|
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",
|
package/build/pkg/data.js.map
CHANGED
|
@@ -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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"}
|
package/build/pkg/gen1.d.ts
CHANGED
|
@@ -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 {
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
}
|