@pkmn/engine 0.1.0-dev.c5fe6d07 → 0.1.0-dev.ce4c0b2a
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 +46 -19
- package/build/pkg/addon/browser.d.ts +3 -0
- package/build/pkg/addon/browser.js +43 -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 +96 -0
- package/build/pkg/addon/node.js.map +1 -0
- package/build/pkg/addon.d.ts +2 -0
- package/build/pkg/addon.js +35 -58
- package/build/pkg/addon.js.map +1 -1
- package/build/pkg/data/ids.json +12 -12
- package/build/pkg/data/layout.json +2 -2
- package/build/pkg/data/protocol.json +69 -12
- package/build/pkg/data.d.ts +27 -5
- package/build/pkg/data.js.map +1 -1
- package/build/pkg/gen1.js +3 -3
- package/build/pkg/gen1.js.map +1 -1
- package/build/pkg/index.d.ts +24 -10
- package/build/pkg/index.js +15 -10
- 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 +36 -68
- package/build/tools/debug.js.map +1 -1
- package/build/tools/display/debug.jsx +128 -0
- package/build/tools/display/debug.jsx.map +1 -0
- package/build/tools/display/index.js +132 -0
- package/build/tools/display/index.js.map +1 -0
- package/build/tools/display/ui.jsx +349 -0
- package/build/tools/display/ui.jsx.map +1 -0
- package/build/tools/display/util.js +18 -0
- package/build/tools/display/util.js.map +1 -0
- package/build.zig +230 -99
- package/package.json +63 -30
- package/src/bin/install-pkmn-engine +29 -19
- package/src/bin/pkmn-debug +1 -1
- package/src/lib/common/array.zig +77 -0
- package/src/lib/common/data.zig +12 -24
- package/src/lib/common/debug.zig +11 -6
- package/src/lib/common/js.zig +4 -2
- package/src/lib/common/optional.zig +21 -10
- package/src/lib/common/options.zig +4 -0
- package/src/lib/common/protocol.zig +807 -327
- package/src/lib/common/rational.zig +125 -31
- package/src/lib/common/rng.zig +22 -13
- package/src/lib/common/util.zig +50 -1
- package/src/lib/gen1/calc.zig +660 -137
- package/src/lib/gen1/chance.zig +409 -284
- package/src/lib/gen1/data/moves.zig +192 -180
- package/src/lib/gen1/data/species.zig +3 -3
- package/src/lib/gen1/data/types.zig +7 -7
- package/src/lib/gen1/data.zig +48 -59
- package/src/lib/gen1/helpers.zig +94 -552
- package/src/lib/gen1/mechanics.zig +580 -518
- package/src/lib/gen2/calc.zig +161 -0
- package/src/lib/gen2/chance.zig +902 -0
- package/src/lib/gen2/data/items.zig +12 -18
- package/src/lib/gen2/data/moves.zig +663 -569
- package/src/lib/gen2/data/species.zig +1 -1
- package/src/lib/gen2/data/types.zig +134 -31
- package/src/lib/gen2/data.zig +107 -79
- package/src/lib/gen2/generated.zig +806 -0
- package/src/lib/gen2/helpers.zig +49 -25
- package/src/lib/gen2/mechanics.zig +3560 -12
- package/src/lib/{binding/node.zig → node.zig} +10 -13
- package/src/lib/pkmn.zig +32 -15
- package/src/lib/{binding/wasm.zig → wasm.zig} +2 -1
- package/src/tools/display/dom.ts +96 -0
- package/src/tools/display/ui.css +351 -0
- package/build/test/display.js +0 -400
- package/build/test/display.js.map +0 -1
- 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,4 +1,4 @@
|
|
|
1
|
-
//! Code generated by `tools/generate` - manual edits will be overwritten
|
|
1
|
+
//! Code generated by `tools/generate` - manual edits will be overwritten.
|
|
2
2
|
|
|
3
3
|
const std = @import("std");
|
|
4
4
|
|
|
@@ -11,15 +11,15 @@ const Type = data.Type;
|
|
|
11
11
|
/// Representation of a held item in Generation II Pokémon.
|
|
12
12
|
pub const Item = enum(u8) {
|
|
13
13
|
None,
|
|
14
|
+
SoftSand, // Ground
|
|
15
|
+
HardStone, // Rock
|
|
16
|
+
MetalCoat, // Steel
|
|
14
17
|
PinkBow, // Normal
|
|
15
18
|
BlackBelt, // Fighting
|
|
16
19
|
SharpBeak, // Flying
|
|
17
20
|
PoisonBarb, // Poison
|
|
18
|
-
SoftSand, // Ground
|
|
19
|
-
HardStone, // Rock
|
|
20
21
|
SilverPowder, // Bug
|
|
21
22
|
SpellTag, // Ghost
|
|
22
|
-
MetalCoat, // Steel
|
|
23
23
|
PolkadotBow, // ??? (Normal)
|
|
24
24
|
Charcoal, // Fire
|
|
25
25
|
MysticWater, // Water
|
|
@@ -36,21 +36,21 @@ pub const Item = enum(u8) {
|
|
|
36
36
|
Stick,
|
|
37
37
|
ThickClub,
|
|
38
38
|
FocusBand, // FocusBand
|
|
39
|
-
BerryJuice, // Berry
|
|
40
39
|
ScopeLens, // CriticalUp
|
|
41
40
|
Leftovers, // Leftovers
|
|
42
41
|
BerserkGene,
|
|
43
42
|
LightBall,
|
|
43
|
+
Berry, // Berry
|
|
44
|
+
BerryJuice, // Berry
|
|
45
|
+
GoldBerry, // Berry
|
|
46
|
+
MintBerry, // HealSleep
|
|
44
47
|
PSNCureBerry, // HealPoison
|
|
45
48
|
PRZCureBerry, // HealParalyze
|
|
46
|
-
BurntBerry, // HealFreeze
|
|
47
49
|
IceBerry, // HealBurn
|
|
48
|
-
|
|
49
|
-
MintBerry, // HealSleep
|
|
50
|
+
BurntBerry, // HealFreeze
|
|
50
51
|
MiracleBerry, // HealStatus
|
|
52
|
+
BitterBerry, // HealConfusion
|
|
51
53
|
MysteryBerry, // RestorePP
|
|
52
|
-
Berry, // Berry
|
|
53
|
-
GoldBerry, // Berry
|
|
54
54
|
MasterBall,
|
|
55
55
|
UltraBall,
|
|
56
56
|
GreatBall,
|
|
@@ -216,20 +216,14 @@ pub const Item = enum(u8) {
|
|
|
216
216
|
pub const size = 196;
|
|
217
217
|
|
|
218
218
|
/// Returns a `Type` boosted by this item or `null` if the item is not a type-boosting item.
|
|
219
|
-
pub
|
|
219
|
+
pub fn boost(item: Item) ?Type {
|
|
220
220
|
assert(item != .None);
|
|
221
221
|
if (item == .PolkadotBow) return .Normal;
|
|
222
222
|
return if (@intFromEnum(item) <= 18) @enumFromInt(@intFromEnum(item) - 1) else null;
|
|
223
223
|
}
|
|
224
224
|
|
|
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
225
|
/// Whether or not this item is Mail.
|
|
232
|
-
pub
|
|
226
|
+
pub fn isMail(item: Item) bool {
|
|
233
227
|
assert(item != .None);
|
|
234
228
|
return @intFromEnum(item) > 60 and @intFromEnum(item) <= 70;
|
|
235
229
|
}
|