@pkmn/engine 0.1.0-dev.cf6f5d2c → 0.1.0-dev.d127cb34
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 +112 -66
- 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 -70
- package/build/pkg/addon.js.map +1 -1
- 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 +27 -5
- package/build/pkg/data.js.map +1 -1
- package/build/pkg/gen1.d.ts +17 -19
- package/build/pkg/gen1.js +66 -39
- package/build/pkg/gen1.js.map +1 -1
- package/build/pkg/index.d.ts +46 -93
- package/build/pkg/index.js +23 -70
- package/build/pkg/index.js.map +1 -1
- package/build/pkg/protocol.d.ts +33 -3
- package/build/pkg/protocol.js +127 -104
- package/build/pkg/protocol.js.map +1 -1
- package/build/tools/debug.js +84 -73
- package/build/tools/debug.js.map +1 -1
- package/build/tools/display/debug.jsx +66 -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 +360 -0
- package/build/tools/display/ui.jsx.map +1 -0
- package/build/tools/display/util.js +157 -0
- package/build/tools/display/util.js.map +1 -0
- package/build.zig +414 -174
- package/package.json +72 -122
- package/src/bin/install-pkmn-engine +56 -25
- package/src/bin/pkmn-debug +1 -1
- package/src/lib/bindings/c.zig +201 -0
- package/src/lib/bindings/node.zig +117 -0
- package/src/lib/bindings/wasm.zig +51 -0
- package/src/lib/common/array.zig +70 -0
- package/src/lib/common/battle.zig +17 -0
- package/src/lib/common/data.zig +19 -31
- package/src/lib/common/debug.zig +58 -33
- package/src/lib/common/js.zig +114 -0
- package/src/lib/common/optional.zig +71 -0
- package/src/lib/common/options.zig +15 -0
- package/src/lib/common/protocol.zig +1037 -462
- package/src/lib/common/rational.zig +440 -0
- package/src/lib/common/rng.zig +31 -24
- package/src/lib/common/util.zig +64 -0
- package/src/lib/gen1/calc.zig +975 -0
- package/src/lib/gen1/chance.zig +1245 -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 +12 -13
- package/src/lib/gen1/data.zig +100 -89
- package/src/lib/gen1/helpers.zig +162 -68
- package/src/lib/gen1/mechanics.zig +1237 -848
- package/src/lib/gen2/calc.zig +150 -0
- package/src/lib/gen2/chance.zig +914 -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 +141 -36
- package/src/lib/gen2/data.zig +136 -100
- package/src/lib/gen2/generated.zig +801 -0
- package/src/lib/gen2/helpers.zig +81 -58
- package/src/lib/gen2/mechanics.zig +3582 -30
- package/src/lib/napi.h +2 -0
- package/src/lib/node.zig +14 -0
- package/src/lib/pkmn.zig +172 -17
- package/src/lib/wasm.zig +13 -0
- package/src/tools/display/dom.ts +108 -0
- package/src/tools/display/ui.css +354 -0
- package/build/test/display.js +0 -396
- package/build/test/display.js.map +0 -1
- package/src/lib/binding/node.zig +0 -229
- package/src/lib/binding/wasm.zig +0 -10
- package/src/lib/gen1/README.md +0 -804
- package/src/lib/gen2/README.md +0 -309
- 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,21 +214,15 @@ 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
|
-
return if (@
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
/// Whether or not this item is a Berry.
|
|
226
|
-
pub inline fn berry(item: Item) bool {
|
|
227
|
-
assert(item != .None);
|
|
228
|
-
return @enumToInt(item) > 30 and @enumToInt(item) <= 40;
|
|
220
|
+
return if (@intFromEnum(item) <= 18) @enumFromInt(@intFromEnum(item) - 1) else null;
|
|
229
221
|
}
|
|
230
222
|
|
|
231
223
|
/// Whether or not this item is Mail.
|
|
232
|
-
pub
|
|
224
|
+
pub fn isMail(item: Item) bool {
|
|
233
225
|
assert(item != .None);
|
|
234
|
-
return @
|
|
226
|
+
return @intFromEnum(item) > 60 and @intFromEnum(item) <= 70;
|
|
235
227
|
}
|
|
236
228
|
};
|