@pkmn/engine 0.1.0-dev.46307385 → 0.1.0-dev.46850a3d

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.
Files changed (50) hide show
  1. package/LICENSE +1 -3
  2. package/README.md +39 -16
  3. package/build/pkg/addon.js +6 -7
  4. package/build/pkg/addon.js.map +1 -1
  5. package/build/pkg/data/ids.json +12 -12
  6. package/build/pkg/data/layout.json +2 -2
  7. package/build/pkg/data/protocol.json +69 -12
  8. package/build/pkg/data.d.ts +4 -4
  9. package/build/pkg/data.js.map +1 -1
  10. package/build/pkg/gen1.js +2 -2
  11. package/build/pkg/gen1.js.map +1 -1
  12. package/build/pkg/index.d.ts +2 -1
  13. package/build/pkg/index.js.map +1 -1
  14. package/build/pkg/protocol.js +61 -42
  15. package/build/pkg/protocol.js.map +1 -1
  16. package/build/test/display.js +2 -2
  17. package/build/test/display.js.map +1 -1
  18. package/build/tools/debug.js +5 -4
  19. package/build/tools/debug.js.map +1 -1
  20. package/build.zig +98 -80
  21. package/package.json +43 -23
  22. package/src/bin/install-pkmn-engine +26 -18
  23. package/src/lib/common/data.zig +12 -24
  24. package/src/lib/common/optional.zig +9 -2
  25. package/src/lib/common/protocol.zig +802 -327
  26. package/src/lib/common/rational.zig +12 -8
  27. package/src/lib/common/rng.zig +26 -17
  28. package/src/lib/gen1/calc.zig +9 -10
  29. package/src/lib/gen1/chance.zig +80 -63
  30. package/src/lib/gen1/data/moves.zig +192 -180
  31. package/src/lib/gen1/data/species.zig +3 -3
  32. package/src/lib/gen1/data/types.zig +7 -7
  33. package/src/lib/gen1/data.zig +47 -59
  34. package/src/lib/gen1/helpers.zig +33 -48
  35. package/src/lib/gen1/mechanics.zig +354 -369
  36. package/src/lib/gen2/calc.zig +143 -0
  37. package/src/lib/gen2/chance.zig +1315 -0
  38. package/src/lib/gen2/data/items.zig +12 -18
  39. package/src/lib/gen2/data/moves.zig +663 -569
  40. package/src/lib/gen2/data/species.zig +1 -1
  41. package/src/lib/gen2/data/types.zig +134 -31
  42. package/src/lib/gen2/data.zig +106 -79
  43. package/src/lib/gen2/generated.zig +806 -0
  44. package/src/lib/gen2/helpers.zig +8 -12
  45. package/src/lib/gen2/mechanics.zig +3587 -9
  46. package/src/lib/{binding/node.zig → node.zig} +10 -13
  47. package/src/lib/pkmn.zig +26 -3
  48. package/src/lib/{binding/wasm.zig → wasm.zig} +2 -1
  49. package/src/lib/gen1/README.md +0 -892
  50. package/src/lib/gen2/README.md +0 -308
@@ -14,6 +14,7 @@ pub fn Optional(comptime T: type) type {
14
14
  var decls = [_]std.builtin.Type.Declaration{};
15
15
 
16
16
  enumFields[0] = .{ .name = "None", .value = 0 };
17
+
17
18
  inline for (fields, 1..) |field, i| {
18
19
  assert(!std.mem.eql(u8, field.name, "None"));
19
20
  enumFields[i] = .{
@@ -24,7 +25,7 @@ pub fn Optional(comptime T: type) type {
24
25
 
25
26
  return @Type(.{
26
27
  .Enum = .{
27
- .tag_type = std.math.IntFittingRange(0, fields.len + 1),
28
+ .tag_type = std.math.IntFittingRange(0, fields.len),
28
29
  .fields = &enumFields,
29
30
  .decls = &decls,
30
31
  .is_exhaustive = true,
@@ -45,7 +46,7 @@ test Optional {
45
46
  try expect(b != .true);
46
47
  try expect(b != .false);
47
48
 
48
- const Player = @import("./data.zig").Player;
49
+ const Player = @import("data.zig").Player;
49
50
  try expect(@bitSizeOf(Optional(Player)) == 2);
50
51
 
51
52
  const p: Optional(Player) = .P2;
@@ -57,4 +58,10 @@ test Optional {
57
58
  try expect(q == .None);
58
59
  try expect(q != .P1);
59
60
  try expect(q != .P2);
61
+
62
+ const Three = enum(u2) { A, B, C };
63
+ try expect(@bitSizeOf(Optional(Three)) == 2);
64
+
65
+ const Four = enum(u2) { A, B, C, D };
66
+ try expect(@bitSizeOf(Optional(Four)) == 3);
60
67
  }