@pkmn/engine 0.1.0-dev.f3aaee39 → 0.1.0-dev.f3b63b86
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 +77 -23
- 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 +26 -4
- package/build/pkg/addon.js +39 -71
- package/build/pkg/addon.js.map +1 -1
- package/build/pkg/data/ids.json +12 -12
- package/build/pkg/data/layout.json +17 -4
- package/build/pkg/data/protocol.json +84 -13
- package/build/pkg/data.d.ts +27 -5
- package/build/pkg/data.js.map +1 -1
- package/build/pkg/gen1.d.ts +15 -18
- package/build/pkg/gen1.js +30 -21
- package/build/pkg/gen1.js.map +1 -1
- package/build/pkg/index.d.ts +42 -91
- package/build/pkg/index.js +23 -70
- package/build/pkg/index.js.map +1 -1
- package/build/pkg/protocol.d.ts +20 -1
- package/build/pkg/protocol.js +123 -102
- package/build/pkg/protocol.js.map +1 -1
- package/build/tools/debug.js +69 -74
- package/build/tools/debug.js.map +1 -1
- 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 +273 -120
- package/package.json +64 -123
- package/src/bin/install-pkmn-engine +47 -21
- package/src/bin/pkmn-debug +1 -1
- package/src/lib/bindings/c.zig +200 -0
- package/src/lib/{binding → bindings}/node.zig +15 -32
- package/src/lib/bindings/wasm.zig +50 -0
- package/src/lib/common/array.zig +70 -0
- package/src/lib/common/data.zig +12 -24
- package/src/lib/common/debug.zig +32 -11
- package/src/lib/common/js.zig +3 -7
- package/src/lib/common/optional.zig +19 -18
- package/src/lib/common/options.zig +6 -0
- package/src/lib/common/protocol.zig +919 -430
- package/src/lib/common/rational.zig +341 -254
- package/src/lib/common/rng.zig +22 -15
- package/src/lib/common/util.zig +33 -1
- package/src/lib/gen1/calc.zig +706 -177
- package/src/lib/gen1/chance.zig +428 -302
- package/src/lib/gen1/data/moves.zig +193 -183
- package/src/lib/gen1/data/species.zig +4 -6
- package/src/lib/gen1/data/types.zig +9 -10
- package/src/lib/gen1/data.zig +60 -75
- package/src/lib/gen1/helpers.zig +90 -563
- package/src/lib/gen1/mechanics.zig +682 -600
- package/src/lib/gen2/calc.zig +150 -0
- package/src/lib/gen2/chance.zig +896 -0
- package/src/lib/gen2/data/items.zig +13 -21
- package/src/lib/gen2/data/moves.zig +664 -572
- package/src/lib/gen2/data/species.zig +2 -4
- package/src/lib/gen2/data/types.zig +139 -34
- package/src/lib/gen2/data.zig +121 -96
- package/src/lib/gen2/generated.zig +801 -0
- package/src/lib/gen2/helpers.zig +53 -38
- package/src/lib/gen2/mechanics.zig +3580 -29
- package/src/lib/napi.h +2 -0
- package/src/lib/node.zig +14 -0
- package/src/lib/pkmn.zig +125 -29
- package/src/lib/wasm.zig +13 -0
- package/src/tools/display/dom.ts +93 -0
- package/src/tools/display/ui.css +354 -0
- package/build/test/display.js +0 -400
- package/build/test/display.js.map +0 -1
- package/src/lib/binding/wasm.zig +0 -12
- package/src/lib/gen1/README.md +0 -892
- package/src/lib/gen2/README.md +0 -308
- package/src/test/display/pkmn.html.tmpl +0 -368
|
@@ -1,25 +1,23 @@
|
|
|
1
|
-
//! Code generated by `tools/generate` - manual edits will be overwritten
|
|
2
|
-
|
|
3
|
-
const std = @import("std");
|
|
1
|
+
//! Code generated by `tools/generate` - manual edits will be overwritten.
|
|
4
2
|
|
|
5
3
|
const data = @import("../../gen2/data.zig");
|
|
4
|
+
const std = @import("std");
|
|
6
5
|
|
|
7
6
|
const assert = std.debug.assert;
|
|
8
|
-
|
|
9
7
|
const Type = data.Type;
|
|
10
8
|
|
|
11
9
|
/// Representation of a held item in Generation II Pokémon.
|
|
12
10
|
pub const Item = enum(u8) {
|
|
13
11
|
None,
|
|
12
|
+
SoftSand, // Ground
|
|
13
|
+
HardStone, // Rock
|
|
14
|
+
MetalCoat, // Steel
|
|
14
15
|
PinkBow, // Normal
|
|
15
16
|
BlackBelt, // Fighting
|
|
16
17
|
SharpBeak, // Flying
|
|
17
18
|
PoisonBarb, // Poison
|
|
18
|
-
SoftSand, // Ground
|
|
19
|
-
HardStone, // Rock
|
|
20
19
|
SilverPowder, // Bug
|
|
21
20
|
SpellTag, // Ghost
|
|
22
|
-
MetalCoat, // Steel
|
|
23
21
|
PolkadotBow, // ??? (Normal)
|
|
24
22
|
Charcoal, // Fire
|
|
25
23
|
MysticWater, // Water
|
|
@@ -36,21 +34,21 @@ pub const Item = enum(u8) {
|
|
|
36
34
|
Stick,
|
|
37
35
|
ThickClub,
|
|
38
36
|
FocusBand, // FocusBand
|
|
39
|
-
BerryJuice, // Berry
|
|
40
37
|
ScopeLens, // CriticalUp
|
|
41
38
|
Leftovers, // Leftovers
|
|
42
39
|
BerserkGene,
|
|
43
40
|
LightBall,
|
|
41
|
+
Berry, // Berry
|
|
42
|
+
BerryJuice, // Berry
|
|
43
|
+
GoldBerry, // Berry
|
|
44
|
+
MintBerry, // HealSleep
|
|
44
45
|
PSNCureBerry, // HealPoison
|
|
45
46
|
PRZCureBerry, // HealParalyze
|
|
46
|
-
BurntBerry, // HealFreeze
|
|
47
47
|
IceBerry, // HealBurn
|
|
48
|
-
|
|
49
|
-
MintBerry, // HealSleep
|
|
48
|
+
BurntBerry, // HealFreeze
|
|
50
49
|
MiracleBerry, // HealStatus
|
|
50
|
+
BitterBerry, // HealConfusion
|
|
51
51
|
MysteryBerry, // RestorePP
|
|
52
|
-
Berry, // Berry
|
|
53
|
-
GoldBerry, // Berry
|
|
54
52
|
MasterBall,
|
|
55
53
|
UltraBall,
|
|
56
54
|
GreatBall,
|
|
@@ -216,20 +214,14 @@ pub const Item = enum(u8) {
|
|
|
216
214
|
pub const size = 196;
|
|
217
215
|
|
|
218
216
|
/// Returns a `Type` boosted by this item or `null` if the item is not a type-boosting item.
|
|
219
|
-
pub
|
|
217
|
+
pub fn boost(item: Item) ?Type {
|
|
220
218
|
assert(item != .None);
|
|
221
219
|
if (item == .PolkadotBow) return .Normal;
|
|
222
220
|
return if (@intFromEnum(item) <= 18) @enumFromInt(@intFromEnum(item) - 1) else null;
|
|
223
221
|
}
|
|
224
222
|
|
|
225
|
-
/// Whether or not this item is a Berry.
|
|
226
|
-
pub inline fn berry(item: Item) bool {
|
|
227
|
-
assert(item != .None);
|
|
228
|
-
return @intFromEnum(item) > 30 and @intFromEnum(item) <= 40;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
223
|
/// Whether or not this item is Mail.
|
|
232
|
-
pub
|
|
224
|
+
pub fn isMail(item: Item) bool {
|
|
233
225
|
assert(item != .None);
|
|
234
226
|
return @intFromEnum(item) > 60 and @intFromEnum(item) <= 70;
|
|
235
227
|
}
|