@pkmn/engine 0.1.0-dev.63cef311 → 0.1.0-dev.645b4750
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 -3
- package/README.md +189 -77
- package/build/pkg/addon/browser.d.ts +3 -0
- package/build/pkg/addon/browser.js +47 -0
- package/build/pkg/addon/browser.js.map +1 -0
- package/build/pkg/addon/node.d.ts +3 -0
- package/build/pkg/addon/node.js +110 -0
- package/build/pkg/addon/node.js.map +1 -0
- 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 +29 -0
- package/build/pkg/addon.js +80 -0
- package/build/pkg/addon.js.map +1 -0
- package/build/pkg/data/ids.json +12 -12
- package/build/pkg/data/layout.json +40 -5
- package/build/pkg/data/protocol.json +84 -13
- package/build/pkg/data.d.ts +28 -7
- package/build/pkg/data.js +3 -5
- package/build/pkg/data.js.map +1 -1
- package/build/pkg/gen1.d.ts +18 -20
- package/build/pkg/gen1.js +76 -51
- package/build/pkg/gen1.js.map +1 -1
- package/build/pkg/index.d.ts +57 -103
- package/build/pkg/index.js +23 -70
- package/build/pkg/index.js.map +1 -1
- package/build/pkg/protocol.d.ts +24 -3
- package/build/pkg/protocol.js +127 -104
- package/build/pkg/protocol.js.map +1 -1
- package/build/tools/debug.js +110 -0
- package/build/tools/debug.js.map +1 -0
- package/build/tools/display/debug.jsx +152 -0
- package/build/tools/display/debug.jsx.map +1 -0
- package/build/tools/display/index.js +152 -0
- package/build/tools/display/index.js.map +1 -0
- package/build/tools/display/ui.jsx +359 -0
- package/build/tools/display/ui.jsx.map +1 -0
- package/build/tools/display/util.js +33 -0
- package/build/tools/display/util.js.map +1 -0
- package/build.zig +417 -160
- package/package.json +92 -133
- package/src/bin/install-pkmn-engine +85 -42
- package/src/bin/pkmn-debug +62 -0
- package/src/lib/bindings/c.zig +255 -0
- package/src/lib/bindings/node.zig +121 -0
- package/src/lib/bindings/wasm.zig +59 -0
- package/src/lib/common/array.zig +77 -0
- package/src/lib/common/battle.zig +17 -0
- package/src/lib/common/data.zig +19 -31
- package/src/lib/common/debug.zig +58 -17
- package/src/lib/common/js.zig +120 -0
- package/src/lib/common/optional.zig +71 -0
- package/src/lib/common/options.zig +18 -3
- package/src/lib/common/protocol.zig +947 -407
- package/src/lib/common/rational.zig +522 -0
- package/src/lib/common/rng.zig +31 -24
- package/src/lib/common/util.zig +76 -0
- package/src/lib/gen1/calc.zig +962 -0
- package/src/lib/gen1/chance.zig +1185 -0
- package/src/lib/gen1/data/moves.zig +203 -193
- package/src/lib/gen1/data/species.zig +6 -8
- package/src/lib/gen1/data/types.zig +11 -12
- package/src/lib/gen1/data.zig +100 -89
- package/src/lib/gen1/helpers.zig +139 -54
- package/src/lib/gen1/mechanics.zig +1405 -910
- package/src/lib/gen2/calc.zig +153 -0
- package/src/lib/gen2/chance.zig +902 -0
- package/src/lib/gen2/data/items.zig +15 -23
- package/src/lib/gen2/data/moves.zig +665 -573
- package/src/lib/gen2/data/species.zig +3 -5
- package/src/lib/gen2/data/types.zig +138 -36
- package/src/lib/gen2/data.zig +134 -99
- package/src/lib/gen2/generated.zig +801 -0
- package/src/lib/gen2/helpers.zig +59 -44
- package/src/lib/gen2/mechanics.zig +3582 -30
- package/src/lib/node.zig +18 -0
- package/src/lib/pkmn.zig +93 -12
- package/src/lib/wasm.zig +17 -0
- package/src/tools/display/dom.ts +93 -0
- package/src/tools/display/ui.css +354 -0
- package/src/lib/binding/node.zig +0 -229
- package/src/lib/binding/wasm.zig +0 -10
- package/src/lib/gen1/README.md +0 -778
- package/src/lib/gen2/README.md +0 -309
|
@@ -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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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
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: ArrayBuffer, c1: number, c2: number, log: ArrayBuffer | undefined): number;
|
|
21
|
+
choices(battle: ArrayBuffer, player: number, request: number, out: ArrayBuffer): number;
|
|
22
|
+
}
|
|
23
|
+
/** TODO */
|
|
24
|
+
export declare function initialize(showdown: boolean, addon?: Argument): Promise<void | undefined>;
|
|
25
|
+
export declare function check(showdown: boolean): void;
|
|
26
|
+
export declare function supports(showdown: boolean, log?: boolean): boolean;
|
|
27
|
+
export declare function update(index: number, showdown: boolean, battle: ArrayBuffer, c1?: Choice, c2?: Choice, log?: ArrayBuffer): Result;
|
|
28
|
+
export declare function choices(index: number, showdown: boolean, battle: ArrayBuffer, player: Player, choice: Choice['type'], out: Uint8Array): Choice[];
|
|
29
|
+
export declare function size(index: number, type: 'choices' | 'log'): number;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initialize = initialize;
|
|
4
|
+
exports.check = check;
|
|
5
|
+
exports.supports = supports;
|
|
6
|
+
exports.update = update;
|
|
7
|
+
exports.choices = choices;
|
|
8
|
+
exports.size = size;
|
|
9
|
+
const node_1 = require("./addon/node");
|
|
10
|
+
const common_1 = require("./common");
|
|
11
|
+
const ADDONS = [];
|
|
12
|
+
const loading = [];
|
|
13
|
+
/** TODO */
|
|
14
|
+
async function initialize(showdown, addon) {
|
|
15
|
+
if (loading[+showdown]) {
|
|
16
|
+
throw new Error(`Cannot call initialize more than once with showdown=${showdown}`);
|
|
17
|
+
}
|
|
18
|
+
loading[+showdown] = (0, node_1.load)(showdown, addon);
|
|
19
|
+
loading[+showdown].then(a => {
|
|
20
|
+
ADDONS[+showdown] = a;
|
|
21
|
+
}).catch(() => {
|
|
22
|
+
loading[+showdown] = undefined;
|
|
23
|
+
});
|
|
24
|
+
return loading[+showdown]?.then(() => { });
|
|
25
|
+
}
|
|
26
|
+
function check(showdown) {
|
|
27
|
+
if (!addons(showdown)[+showdown]) {
|
|
28
|
+
const opts = ADDONS[+!showdown].options.log ? ['-log'] : [];
|
|
29
|
+
if (showdown)
|
|
30
|
+
opts.push('-Dshowdown');
|
|
31
|
+
throw new Error(`@pkmn/engine has ${showdown ? 'not' : 'only'} been configured to support Pokémon Showdown.` +
|
|
32
|
+
`\n(running \`npx install-pkmn-engine --options='${opts.join(' ')}'\` can fix this issue).`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function supports(showdown, log) {
|
|
36
|
+
if (!addons(showdown)[+showdown])
|
|
37
|
+
return false;
|
|
38
|
+
if (log === undefined)
|
|
39
|
+
return true;
|
|
40
|
+
return ADDONS[+showdown].options.log === log;
|
|
41
|
+
}
|
|
42
|
+
function addons(showdown) {
|
|
43
|
+
if (ADDONS[+showdown])
|
|
44
|
+
return ADDONS;
|
|
45
|
+
// If we havem't been initialized attempt to autoload if we're on Node
|
|
46
|
+
ADDONS[+showdown] = (0, node_1.loadSync)(showdown);
|
|
47
|
+
return ADDONS;
|
|
48
|
+
}
|
|
49
|
+
function update(index, showdown, battle, c1, 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
|
+
}
|
|
53
|
+
function choices(index, showdown, battle, player, choice, out) {
|
|
54
|
+
const request = choice[0] === 'p' ? 0 : choice[0] === 'm' ? 1 : 2;
|
|
55
|
+
const n = ADDONS[+showdown].bindings[index].choices(battle, +(player !== 'p1'), request, out.buffer);
|
|
56
|
+
// The top-level API signature means our hands our tied with respect to
|
|
57
|
+
// writing really fast bindings here. The simplest approach would be to return
|
|
58
|
+
// the ArrayBuffer the bindings populate as well as its size and only decode a
|
|
59
|
+
// Choice after the selection. However, given that we need to return
|
|
60
|
+
// `Choices[]` we need to decode all of them even if they're not all being
|
|
61
|
+
// used which is wasteful. This shouldn't be *that* bad as its a very small
|
|
62
|
+
// list, but its still wasted work. Switching the top-level API to return an
|
|
63
|
+
// Iterable<Choice> doesn't help as we need both the length and the ability to
|
|
64
|
+
// randomly access it, so the best way to make the current API fast would be
|
|
65
|
+
// to have the Zig bindings create Choice objects directly, only that won't
|
|
66
|
+
// scale well as it would require us to basically rewrite the low-level
|
|
67
|
+
// choices function for each generation within node.zig. We could do something
|
|
68
|
+
// really galaxy-brained and return some sort of frankenstein subclass of
|
|
69
|
+
// Array backed by ArrayBuffer which would lazily decode the Choice on access,
|
|
70
|
+
// but thats ultimately not worth the effort.
|
|
71
|
+
const options = new Array(n);
|
|
72
|
+
for (let i = 0; i < n; i++)
|
|
73
|
+
options[i] = common_1.Choice.decode(out[i]);
|
|
74
|
+
return options;
|
|
75
|
+
}
|
|
76
|
+
function size(index, type) {
|
|
77
|
+
const bindings = (ADDONS[1] ?? ADDONS[0]).bindings[index];
|
|
78
|
+
return type[0] === 'c' ? bindings.CHOICES_SIZE : bindings.LOGS_SIZE;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=addon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addon.js","sourceRoot":"","sources":["../../src/pkg/addon.ts"],"names":[],"mappings":"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"}
|
package/build/pkg/data/ids.json
CHANGED
|
@@ -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
|
-
"
|
|
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,15 +4,18 @@
|
|
|
4
4
|
"Battle": 384,
|
|
5
5
|
"Side": 184,
|
|
6
6
|
"Pokemon": 24,
|
|
7
|
-
"ActivePokemon": 32
|
|
7
|
+
"ActivePokemon": 32,
|
|
8
|
+
"Actions": 16,
|
|
9
|
+
"Durations": 8,
|
|
10
|
+
"Summaries": 12
|
|
8
11
|
},
|
|
9
12
|
"offsets": {
|
|
10
13
|
"Battle": {
|
|
11
14
|
"sides": 0,
|
|
12
15
|
"turn": 368,
|
|
13
16
|
"last_damage": 370,
|
|
14
|
-
"
|
|
15
|
-
"rng":
|
|
17
|
+
"last_moves": 372,
|
|
18
|
+
"rng": 374
|
|
16
19
|
},
|
|
17
20
|
"Side": {
|
|
18
21
|
"pokemon": 0,
|
|
@@ -77,9 +80,41 @@
|
|
|
77
80
|
"state": 24,
|
|
78
81
|
"substitute": 40,
|
|
79
82
|
"transform": 48,
|
|
80
|
-
"
|
|
81
|
-
"
|
|
83
|
+
"disable_duration": 52,
|
|
84
|
+
"disable_move": 56,
|
|
82
85
|
"toxic": 59
|
|
86
|
+
},
|
|
87
|
+
"Action": {
|
|
88
|
+
"damage": 0,
|
|
89
|
+
"hit": 8,
|
|
90
|
+
"critical_hit": 10,
|
|
91
|
+
"secondary_chance": 12,
|
|
92
|
+
"speed_tie": 14,
|
|
93
|
+
"confused": 16,
|
|
94
|
+
"paralyzed": 18,
|
|
95
|
+
"duration": 20,
|
|
96
|
+
"sleep": 24,
|
|
97
|
+
"confusion": 26,
|
|
98
|
+
"disable": 29,
|
|
99
|
+
"attacking": 31,
|
|
100
|
+
"binding": 33,
|
|
101
|
+
"move_slot": 36,
|
|
102
|
+
"pp": 40,
|
|
103
|
+
"multi_hit": 44,
|
|
104
|
+
"psywave": 48,
|
|
105
|
+
"metronome": 56
|
|
106
|
+
},
|
|
107
|
+
"Duration": {
|
|
108
|
+
"sleeps": 0,
|
|
109
|
+
"confusion": 18,
|
|
110
|
+
"disable": 21,
|
|
111
|
+
"attacking": 25,
|
|
112
|
+
"binding": 28
|
|
113
|
+
},
|
|
114
|
+
"Damage": {
|
|
115
|
+
"base": 0,
|
|
116
|
+
"final": 2,
|
|
117
|
+
"capped": 4
|
|
83
118
|
}
|
|
84
119
|
}
|
|
85
120
|
}
|
|
@@ -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",
|
|
@@ -70,7 +70,9 @@
|
|
|
70
70
|
"Burst",
|
|
71
71
|
"ClearPositiveBoost",
|
|
72
72
|
"CanDynamax",
|
|
73
|
-
"SwapSideConditions"
|
|
73
|
+
"SwapSideConditions",
|
|
74
|
+
"UpdatePoke",
|
|
75
|
+
"Terastallize"
|
|
74
76
|
],
|
|
75
77
|
"Move": [
|
|
76
78
|
"None",
|
|
@@ -84,12 +86,17 @@
|
|
|
84
86
|
"Flinch",
|
|
85
87
|
"Disable",
|
|
86
88
|
"Recharge",
|
|
87
|
-
"PP"
|
|
89
|
+
"PP",
|
|
90
|
+
"Attract"
|
|
88
91
|
],
|
|
89
92
|
"Heal": [
|
|
90
93
|
"None",
|
|
91
94
|
"Silent",
|
|
92
|
-
"Drain"
|
|
95
|
+
"Drain",
|
|
96
|
+
"Leftovers",
|
|
97
|
+
"Berry",
|
|
98
|
+
"BerryJuice",
|
|
99
|
+
"GoldBerry"
|
|
93
100
|
],
|
|
94
101
|
"Damage": [
|
|
95
102
|
"None",
|
|
@@ -97,7 +104,16 @@
|
|
|
97
104
|
"Burn",
|
|
98
105
|
"Confusion",
|
|
99
106
|
"LeechSeed",
|
|
100
|
-
"RecoilOf"
|
|
107
|
+
"RecoilOf",
|
|
108
|
+
"Bind",
|
|
109
|
+
"Wrap",
|
|
110
|
+
"FireSpin",
|
|
111
|
+
"Clamp",
|
|
112
|
+
"Whirlpool",
|
|
113
|
+
"Spikes",
|
|
114
|
+
"Nightmare",
|
|
115
|
+
"Curse",
|
|
116
|
+
"Sandstorm"
|
|
101
117
|
],
|
|
102
118
|
"Status": [
|
|
103
119
|
"None",
|
|
@@ -136,7 +152,20 @@
|
|
|
136
152
|
"Mist",
|
|
137
153
|
"Struggle",
|
|
138
154
|
"Substitute",
|
|
139
|
-
"Splash"
|
|
155
|
+
"Splash",
|
|
156
|
+
"Rage",
|
|
157
|
+
"Attract",
|
|
158
|
+
"LockOn",
|
|
159
|
+
"Bind",
|
|
160
|
+
"Wrap",
|
|
161
|
+
"FireSpin",
|
|
162
|
+
"Clamp",
|
|
163
|
+
"Whirlpool",
|
|
164
|
+
"SubstituteBlock",
|
|
165
|
+
"DestinyBond",
|
|
166
|
+
"BeatUp",
|
|
167
|
+
"Magnitude",
|
|
168
|
+
"Spite"
|
|
140
169
|
],
|
|
141
170
|
"Start": [
|
|
142
171
|
"Bide",
|
|
@@ -150,24 +179,66 @@
|
|
|
150
179
|
"Substitute",
|
|
151
180
|
"TypeChange",
|
|
152
181
|
"Disable",
|
|
153
|
-
"Mimic"
|
|
182
|
+
"Mimic",
|
|
183
|
+
"Attract",
|
|
184
|
+
"Nightmare",
|
|
185
|
+
"Curse",
|
|
186
|
+
"Foresight",
|
|
187
|
+
"Encore",
|
|
188
|
+
"FutureSight",
|
|
189
|
+
"PerishSong0",
|
|
190
|
+
"PerishSong1",
|
|
191
|
+
"PerishSong2",
|
|
192
|
+
"PerishSong3",
|
|
193
|
+
"PerishSong3Silent"
|
|
154
194
|
],
|
|
155
195
|
"End": [
|
|
156
196
|
"Disable",
|
|
157
197
|
"Confusion",
|
|
158
198
|
"Bide",
|
|
159
199
|
"Substitute",
|
|
200
|
+
"Nightmare",
|
|
201
|
+
"Curse",
|
|
202
|
+
"Foresight",
|
|
203
|
+
"Encore",
|
|
204
|
+
"FutureSight",
|
|
205
|
+
"LeechSeed",
|
|
206
|
+
"Bind",
|
|
207
|
+
"Wrap",
|
|
208
|
+
"FireSpin",
|
|
209
|
+
"Clamp",
|
|
210
|
+
"Whirlpool",
|
|
160
211
|
"DisableSilent",
|
|
161
212
|
"ConfusionSilent",
|
|
162
|
-
"
|
|
163
|
-
"
|
|
164
|
-
"
|
|
165
|
-
"
|
|
166
|
-
"
|
|
167
|
-
"
|
|
213
|
+
"MistSilent",
|
|
214
|
+
"FocusEnergySilent",
|
|
215
|
+
"LeechSeedSilent",
|
|
216
|
+
"ToxicSilent",
|
|
217
|
+
"LightScreenSilent",
|
|
218
|
+
"ReflectSilent",
|
|
219
|
+
"BideSilent",
|
|
220
|
+
"LeechSeedFrom"
|
|
168
221
|
],
|
|
169
222
|
"Immune": [
|
|
170
223
|
"None",
|
|
171
224
|
"OHKO"
|
|
225
|
+
],
|
|
226
|
+
"EndItem": [
|
|
227
|
+
"None",
|
|
228
|
+
"Eat"
|
|
229
|
+
],
|
|
230
|
+
"SetHP": [
|
|
231
|
+
"None",
|
|
232
|
+
"Silent"
|
|
233
|
+
],
|
|
234
|
+
"Side": [
|
|
235
|
+
"Safeguard",
|
|
236
|
+
"Reflect",
|
|
237
|
+
"LightScreen",
|
|
238
|
+
"Spikes"
|
|
239
|
+
],
|
|
240
|
+
"Weather": [
|
|
241
|
+
"None",
|
|
242
|
+
"Upkeep"
|
|
172
243
|
]
|
|
173
244
|
}
|
package/build/pkg/data.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GenerationNum, ID, TypeName } from '@pkmn/data';
|
|
2
2
|
export declare const LE: boolean;
|
|
3
3
|
export type IDs = [
|
|
4
4
|
{
|
|
5
|
-
types: TypeName[];
|
|
5
|
+
types: Exclude<TypeName, 'Dark' | 'Steel' | 'Fairy' | 'Stellar'>[];
|
|
6
6
|
},
|
|
7
7
|
{
|
|
8
8
|
items: ID[];
|
|
9
|
-
types: TypeName[];
|
|
9
|
+
types: Exclude<TypeName, 'Fairy' | 'Stellar'>[];
|
|
10
10
|
}
|
|
11
11
|
];
|
|
12
12
|
export declare const IDS: IDs;
|
|
@@ -15,7 +15,7 @@ export declare const PROTOCOL: {
|
|
|
15
15
|
[name: string]: number;
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
|
-
export declare const LAYOUT: {
|
|
18
|
+
export declare const LAYOUT: Array<{
|
|
19
19
|
sizes: {
|
|
20
20
|
[decl: string]: number;
|
|
21
21
|
};
|
|
@@ -24,11 +24,31 @@ export declare const LAYOUT: {
|
|
|
24
24
|
[field: string]: number;
|
|
25
25
|
};
|
|
26
26
|
};
|
|
27
|
-
}
|
|
27
|
+
}>;
|
|
28
28
|
export declare const Data: {
|
|
29
|
-
|
|
30
|
-
view(data: number[]): DataView;
|
|
29
|
+
view(buf: number[] | Buffer): DataView;
|
|
31
30
|
};
|
|
31
|
+
interface Generation {
|
|
32
|
+
num: GenerationNum;
|
|
33
|
+
species: {
|
|
34
|
+
get(id: ID): {
|
|
35
|
+
num: number;
|
|
36
|
+
} | undefined;
|
|
37
|
+
[Symbol.iterator](): Generator<{
|
|
38
|
+
id: ID;
|
|
39
|
+
num: number;
|
|
40
|
+
}, void>;
|
|
41
|
+
};
|
|
42
|
+
moves: {
|
|
43
|
+
get(id: ID): {
|
|
44
|
+
num: number;
|
|
45
|
+
} | undefined;
|
|
46
|
+
[Symbol.iterator](): Generator<{
|
|
47
|
+
id: ID;
|
|
48
|
+
num: number;
|
|
49
|
+
}, void>;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
32
52
|
/**
|
|
33
53
|
* Translation table for encoding/decoding Pokémon Showdown string identifiers
|
|
34
54
|
* to the identifiers used internally by the pkmn engine.
|
|
@@ -90,3 +110,4 @@ export declare class Lookup {
|
|
|
90
110
|
*/
|
|
91
111
|
itemByID(id: ID | undefined): number;
|
|
92
112
|
}
|
|
113
|
+
export {};
|
package/build/pkg/data.js
CHANGED
|
@@ -27,11 +27,9 @@ for (const gen of exports.LAYOUT) {
|
|
|
27
27
|
gen.offsets.Battle.p2 = gen.offsets.Battle.sides + gen.sizes.Side;
|
|
28
28
|
}
|
|
29
29
|
exports.Data = new class {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
view(data) {
|
|
34
|
-
return new DataView(this.buffer(data).buffer);
|
|
30
|
+
view(buf) {
|
|
31
|
+
buf = Array.isArray(buf) ? Buffer.from(buf) : buf;
|
|
32
|
+
return new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
35
33
|
}
|
|
36
34
|
};
|
|
37
35
|
const LOOKUPS = [];
|
package/build/pkg/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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,15 +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
|
-
get
|
|
43
|
-
|
|
42
|
+
get lastMoveIndex(): 1 | 2 | 3 | 4 | undefined;
|
|
43
|
+
get lastMoveCounterable(): boolean;
|
|
44
|
+
toJSON(): Data<Gen1.Side>;
|
|
44
45
|
static init(gen: Generation, lookup: Lookup, team: Partial<PokemonSet>[], data: DataView, offset: number): void;
|
|
45
|
-
static encode(gen: Generation, 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;
|
|
46
47
|
}
|
|
47
48
|
export declare class Pokemon implements Gen1.Pokemon {
|
|
48
49
|
static Volatiles: {
|
|
@@ -63,7 +64,7 @@ export declare class Pokemon implements Gen1.Pokemon {
|
|
|
63
64
|
get volatiles(): Gen1.Volatiles;
|
|
64
65
|
move(slot: 1 | 2 | 3 | 4): Gen1.MoveSlot | undefined;
|
|
65
66
|
get moves(): Iterable<Gen1.MoveSlot>;
|
|
66
|
-
_moves
|
|
67
|
+
private _moves;
|
|
67
68
|
boost(boost: BoostID): number;
|
|
68
69
|
get boosts(): BoostsTable;
|
|
69
70
|
get species(): ID;
|
|
@@ -77,12 +78,12 @@ export declare class Pokemon implements Gen1.Pokemon {
|
|
|
77
78
|
toxic: number;
|
|
78
79
|
};
|
|
79
80
|
private get sleep();
|
|
80
|
-
private get
|
|
81
|
+
private get ext();
|
|
81
82
|
private get toxic();
|
|
82
|
-
toJSON(): Gen1.Pokemon
|
|
83
|
+
toJSON(): Data<Gen1.Pokemon>;
|
|
83
84
|
static init(gen: Generation, lookup: Lookup, set: Partial<PokemonSet>, data: DataView, offset: number, index: number): void;
|
|
84
|
-
static encodeStored(gen: Generation, lookup: Lookup, pokemon: Gen1.Pokemon
|
|
85
|
-
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;
|
|
86
87
|
}
|
|
87
88
|
export declare class StoredPokemon {
|
|
88
89
|
private readonly lookup;
|
|
@@ -99,11 +100,8 @@ export declare class StoredPokemon {
|
|
|
99
100
|
id: ID;
|
|
100
101
|
pp: number;
|
|
101
102
|
}, void, unknown>;
|
|
102
|
-
_moves
|
|
103
|
-
id: ID;
|
|
104
|
-
pp: number;
|
|
105
|
-
}, void, unknown>;
|
|
103
|
+
private _moves;
|
|
106
104
|
get species(): ID;
|
|
107
105
|
get types(): readonly [TypeName, TypeName];
|
|
108
|
-
toJSON(): Gen1.Pokemon['stored']
|
|
106
|
+
toJSON(): Data<Gen1.Pokemon['stored']>;
|
|
109
107
|
}
|