@pkmn/engine 0.1.0-dev.29e0e9e1 → 0.1.0-dev.2b11d5c7

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 (83) hide show
  1. package/LICENSE +1 -3
  2. package/README.md +46 -18
  3. package/build/pkg/addon/browser.d.ts +3 -0
  4. package/build/pkg/addon/browser.js +44 -0
  5. package/build/pkg/addon/browser.js.map +1 -0
  6. package/build/pkg/addon/node.d.ts +3 -0
  7. package/build/pkg/addon/node.js +97 -0
  8. package/build/pkg/addon/node.js.map +1 -0
  9. package/build/pkg/addon/wasm.d.ts +2 -0
  10. package/build/pkg/addon/wasm.js +53 -0
  11. package/build/pkg/addon/wasm.js.map +1 -0
  12. package/build/pkg/addon.d.ts +25 -3
  13. package/build/pkg/addon.js +39 -71
  14. package/build/pkg/addon.js.map +1 -1
  15. package/build/pkg/data/layout.json +15 -2
  16. package/build/pkg/data/protocol.json +23 -9
  17. package/build/pkg/data.d.ts +27 -5
  18. package/build/pkg/data.js.map +1 -1
  19. package/build/pkg/gen1.d.ts +13 -17
  20. package/build/pkg/gen1.js +6 -10
  21. package/build/pkg/gen1.js.map +1 -1
  22. package/build/pkg/index.d.ts +40 -91
  23. package/build/pkg/index.js +6 -63
  24. package/build/pkg/index.js.map +1 -1
  25. package/build/pkg/protocol.d.ts +20 -1
  26. package/build/pkg/protocol.js +109 -107
  27. package/build/pkg/protocol.js.map +1 -1
  28. package/build/tools/debug.js +36 -71
  29. package/build/tools/debug.js.map +1 -1
  30. package/build/tools/display/debug.jsx +141 -0
  31. package/build/tools/display/debug.jsx.map +1 -0
  32. package/build/tools/display/index.js +142 -0
  33. package/build/tools/display/index.js.map +1 -0
  34. package/build/tools/display/ui.jsx +349 -0
  35. package/build/tools/display/ui.jsx.map +1 -0
  36. package/build/tools/display/util.js +18 -0
  37. package/build/tools/display/util.js.map +1 -0
  38. package/build.zig +294 -90
  39. package/package.json +59 -132
  40. package/src/bin/install-pkmn-engine +30 -20
  41. package/src/bin/pkmn-debug +1 -1
  42. package/src/lib/bindings/c.zig +254 -0
  43. package/src/lib/{binding → bindings}/node.zig +8 -21
  44. package/src/lib/bindings/wasm.zig +59 -0
  45. package/src/lib/common/array.zig +77 -0
  46. package/src/lib/common/data.zig +4 -4
  47. package/src/lib/common/debug.zig +39 -8
  48. package/src/lib/common/js.zig +4 -2
  49. package/src/lib/common/optional.zig +14 -10
  50. package/src/lib/common/options.zig +6 -0
  51. package/src/lib/common/protocol.zig +77 -80
  52. package/src/lib/common/rational.zig +128 -32
  53. package/src/lib/common/rng.zig +7 -9
  54. package/src/lib/common/util.zig +50 -1
  55. package/src/lib/gen1/calc.zig +686 -159
  56. package/src/lib/gen1/chance.zig +405 -280
  57. package/src/lib/gen1/data/moves.zig +2 -4
  58. package/src/lib/gen1/data/species.zig +2 -4
  59. package/src/lib/gen1/data/types.zig +1 -2
  60. package/src/lib/gen1/data.zig +24 -27
  61. package/src/lib/gen1/helpers.zig +92 -548
  62. package/src/lib/gen1/mechanics.zig +379 -258
  63. package/src/lib/gen2/calc.zig +37 -27
  64. package/src/lib/gen2/chance.zig +84 -496
  65. package/src/lib/gen2/data/items.zig +1 -3
  66. package/src/lib/gen2/data/moves.zig +2 -4
  67. package/src/lib/gen2/data/species.zig +1 -3
  68. package/src/lib/gen2/data/types.zig +1 -2
  69. package/src/lib/gen2/data.zig +19 -22
  70. package/src/lib/gen2/generated.zig +19 -26
  71. package/src/lib/gen2/helpers.zig +46 -25
  72. package/src/lib/gen2/mechanics.zig +217 -163
  73. package/src/lib/node.zig +18 -0
  74. package/src/lib/pkmn.zig +37 -15
  75. package/src/lib/wasm.zig +17 -0
  76. package/src/tools/display/dom.ts +96 -0
  77. package/src/tools/display/ui.css +354 -0
  78. package/build/test/display.js +0 -400
  79. package/build/test/display.js.map +0 -1
  80. package/src/lib/binding/wasm.zig +0 -12
  81. package/src/lib/gen1/README.md +0 -894
  82. package/src/lib/gen2/README.md +0 -329
  83. package/src/test/display/pkmn.html.tmpl +0 -368
@@ -1,18 +1,21 @@
1
- const std = @import("std");
2
1
  const builtin = @import("builtin");
3
-
2
+ const data = @import("data.zig");
3
+ const options = @import("options.zig");
4
4
  const pkmn = @import("../pkmn.zig");
5
-
6
- const data = @import("./data.zig");
7
- const options = @import("./options.zig");
5
+ const std = @import("std");
8
6
 
9
7
  const assert = std.debug.assert;
8
+ const enabled = options.log;
9
+ const ID = data.ID;
10
+ const Player = data.Player;
10
11
  const print = std.debug.print;
11
12
 
12
- const enabled = options.log;
13
+ const endian = builtin.cpu.arch.endian();
14
+ const Endian = std.builtin.Endian;
15
+ const big = if (@hasField(Endian, "big")) Endian.big else Endian.Big;
16
+ const little = if (@hasField(Endian, "little")) Endian.little else Endian.Little;
13
17
 
14
- const Player = data.Player;
15
- const ID = data.ID;
18
+ const Int = if (@hasField(std.builtin.Type, "int")) .int else .Int;
16
19
 
17
20
  pub const ArgType = enum(u8) {
18
21
  None,
@@ -71,7 +74,7 @@ pub const ArgType = enum(u8) {
71
74
  EndAbility,
72
75
  ClearNegativeBoost,
73
76
  FormeChange,
74
- NoTarget,
77
+ LastNoTarget, // FIXME
75
78
 
76
79
  // Gen 4
77
80
  SwapBoost,
@@ -218,6 +221,7 @@ pub const Activate = enum(u8) {
218
221
  BeatUp, // FIXME of
219
222
 
220
223
  Magnitude,
224
+ Spite,
221
225
  };
222
226
 
223
227
  pub const Start = enum(u8) {
@@ -359,8 +363,8 @@ pub fn Log(comptime Writer: type) type {
359
363
  } else {
360
364
  try self.writer.writeAll(&.{ @intFromEnum(args[1].species), args[1].level });
361
365
  }
362
- try self.writer.writeIntNative(u16, args[1].hp);
363
- try self.writer.writeIntNative(u16, args[1].stats.hp);
366
+ try self.writer.writeInt(u16, args[1].hp, endian);
367
+ try self.writer.writeInt(u16, args[1].stats.hp, endian);
364
368
  try self.writer.writeAll(&.{args[1].status});
365
369
  }
366
370
 
@@ -391,7 +395,7 @@ pub fn Log(comptime Writer: type) type {
391
395
  if (!enabled) return;
392
396
 
393
397
  try self.writer.writeByte(@intFromEnum(ArgType.Turn));
394
- try self.writer.writeIntNative(u16, args[0]);
398
+ try self.writer.writeInt(u16, args[0], endian);
395
399
  try self.writer.writeByte(@intFromEnum(ArgType.None));
396
400
  }
397
401
 
@@ -423,8 +427,8 @@ pub fn Log(comptime Writer: type) type {
423
427
  @intFromEnum(ArgType.Damage),
424
428
  @as(u8, @bitCast(args[0])),
425
429
  });
426
- try self.writer.writeIntNative(u16, args[1].hp);
427
- try self.writer.writeIntNative(u16, args[1].stats.hp);
430
+ try self.writer.writeInt(u16, args[1].hp, endian);
431
+ try self.writer.writeInt(u16, args[1].stats.hp, endian);
428
432
  try self.writer.writeAll(&.{ args[1].status, @intFromEnum(@as(Damage, args[2])) });
429
433
  if (args.len == 4) try self.writer.writeByte(@as(u8, @bitCast(args[3])));
430
434
  }
@@ -436,8 +440,8 @@ pub fn Log(comptime Writer: type) type {
436
440
 
437
441
  assert(args[2] != .Drain or args.len == 4);
438
442
  try self.writer.writeAll(&.{ @intFromEnum(ArgType.Heal), @as(u8, @bitCast(args[0])) });
439
- try self.writer.writeIntNative(u16, args[1].hp);
440
- try self.writer.writeIntNative(u16, args[1].stats.hp);
443
+ try self.writer.writeInt(u16, args[1].hp, endian);
444
+ try self.writer.writeInt(u16, args[1].stats.hp, endian);
441
445
  try self.writer.writeAll(&.{ args[1].status, @intFromEnum(@as(Heal, args[2])) });
442
446
  if (args.len == 4) try self.writer.writeByte(@as(u8, @bitCast(args[3])));
443
447
  }
@@ -542,6 +546,7 @@ pub fn Log(comptime Writer: type) type {
542
546
  // ident: ID, reason: Activate
543
547
  // ident: ID, reason: .SubstituteBlock, m: <Move>
544
548
  // ident: ID, reason: .Magnitude, num: u8
549
+ // ident: ID, reason: .Spite, m: <Move>, num: u8
545
550
  pub fn activate(self: Self, args: anytype) Error!void {
546
551
  if (!enabled) return;
547
552
 
@@ -559,6 +564,9 @@ pub fn Log(comptime Writer: type) type {
559
564
  assert(reason == .Magnitude);
560
565
  try self.writer.writeByte(args[2]);
561
566
  }
567
+ } else if (args.len == 4) {
568
+ assert(reason == .Spite);
569
+ try self.writer.writeAll(&.{ @intFromEnum(args[2]), args[3] });
562
570
  }
563
571
  }
564
572
 
@@ -706,8 +714,8 @@ pub fn Log(comptime Writer: type) type {
706
714
  if (!enabled) return;
707
715
 
708
716
  try self.writer.writeAll(&.{ @intFromEnum(ArgType.SetHP), @as(u8, @bitCast(args[0])) });
709
- try self.writer.writeIntNative(u16, args[1].hp);
710
- try self.writer.writeIntNative(u16, args[1].stats.hp);
717
+ try self.writer.writeInt(u16, args[1].hp, endian);
718
+ try self.writer.writeInt(u16, args[1].stats.hp, endian);
711
719
  try self.writer.writeAll(&.{args[1].status});
712
720
  try self.writer.writeByte(@intFromEnum(@as(SetHP, args[2])));
713
721
  }
@@ -831,10 +839,10 @@ pub const ByteStream = struct {
831
839
  try self.stream.writeByte(byte);
832
840
  }
833
841
 
834
- pub fn writeIntNative(self: Writer, comptime T: type, value: T) Error!void {
842
+ pub fn writeInt(self: Writer, comptime T: type, v: T, end: std.builtin.Endian) Error!void {
835
843
  // TODO: rework this to write directly to the buffer?
836
- var bytes: [(@typeInfo(T).Int.bits + 7) / 8]u8 = undefined;
837
- std.mem.writeIntNative(T, &bytes, value);
844
+ var bytes: [@divExact(@field(@typeInfo(T), @tagName(Int)).bits, 8)]u8 = undefined;
845
+ std.mem.writeInt(std.math.ByteAlignedInt(@TypeOf(v)), &bytes, v, end);
838
846
  return self.writeAll(&bytes);
839
847
  }
840
848
  };
@@ -857,7 +865,7 @@ pub const ByteStream = struct {
857
865
  pub const Kind = enum { Move, Species, Type, Status, Item, Weather };
858
866
 
859
867
  pub fn format(
860
- comptime gen: anytype,
868
+ gen: anytype,
861
869
  a: []const u8,
862
870
  b: ?[]const u8,
863
871
  color: bool,
@@ -943,19 +951,19 @@ pub fn format(
943
951
  if (a[i] == N(gen.Gender.Unknown)) {
944
952
  i += 1;
945
953
  } else {
946
- var gender = if (a[i] == N(gen.Gender.Male)) "M" else "F";
954
+ const gender = if (a[i] == N(gen.Gender.Male)) "M" else "F";
947
955
  printc(", {s}", .{gender}, a, b, &i, 1, color);
948
956
  }
949
957
  }
950
958
  printc(" L{d}", .{a[i]}, a, b, &i, 1, color);
951
959
  switch (endian) {
952
- .Big => {
960
+ big => {
953
961
  var hp = @as(u16, a[i]) << 8 | @as(u16, a[i + 1]);
954
962
  printc(" {d}", .{hp}, a, b, &i, 2, color);
955
963
  hp = @as(u16, a[i]) << 8 | @as(u16, a[i + 1]);
956
964
  printc("/{d}", .{hp}, a, b, &i, 2, color);
957
965
  },
958
- .Little => {
966
+ little => {
959
967
  var hp = @as(u16, a[i + 1]) << 8 | @as(u16, a[i]);
960
968
  printc(" {d}", .{hp}, a, b, &i, 2, color);
961
969
  hp = @as(u16, a[i + 1]) << 8 | @as(u16, a[i]);
@@ -986,8 +994,8 @@ pub fn format(
986
994
  },
987
995
  .Turn => {
988
996
  const turn = switch (endian) {
989
- .Big => @as(u16, a[i]) << 8 | @as(u16, a[i + 1]),
990
- .Little => @as(u16, a[i + 1]) << 8 | @as(u16, a[i]),
997
+ big => @as(u16, a[i]) << 8 | @as(u16, a[i + 1]),
998
+ little => @as(u16, a[i + 1]) << 8 | @as(u16, a[i]),
991
999
  };
992
1000
  printc(" {d}", .{turn}, a, b, &i, 2, color);
993
1001
  },
@@ -998,13 +1006,13 @@ pub fn format(
998
1006
  var id = ID.from(@intCast(a[i]));
999
1007
  printc(" {s}({d})", .{ @tagName(id.player), id.id }, a, b, &i, 1, color);
1000
1008
  switch (endian) {
1001
- .Big => {
1009
+ big => {
1002
1010
  var hp = @as(u16, a[i]) << 8 | @as(u16, a[i + 1]);
1003
1011
  printc(" {d}", .{hp}, a, b, &i, 2, color);
1004
1012
  hp = @as(u16, a[i]) << 8 | @as(u16, a[i + 1]);
1005
1013
  printc("/{d}", .{hp}, a, b, &i, 2, color);
1006
1014
  },
1007
- .Little => {
1015
+ little => {
1008
1016
  var hp = @as(u16, a[i + 1]) << 8 | @as(u16, a[i]);
1009
1017
  printc(" {d}", .{hp}, a, b, &i, 2, color);
1010
1018
  hp = @as(u16, a[i + 1]) << 8 | @as(u16, a[i]);
@@ -1083,7 +1091,8 @@ pub fn format(
1083
1091
  const reason = a[i];
1084
1092
  printc(" {s}", .{@tagName(@as(Start, @enumFromInt(reason)))}, a, b, &i, 1, color);
1085
1093
  if (@as(Start, @enumFromInt(reason)) == .TypeChange) {
1086
- const types = @as(gen.Types, @bitCast(a[i]));
1094
+ // FIXME
1095
+ const types = @as(gen1.Types, @bitCast(a[i]));
1087
1096
  const args = .{
1088
1097
  formatter(gen, .Type, @intFromEnum(types.type1)),
1089
1098
  formatter(gen, .Type, @intFromEnum(types.type2)),
@@ -1125,13 +1134,13 @@ pub fn format(
1125
1134
  const id = ID.from(@intCast(a[i]));
1126
1135
  printc(" {s}({d})", .{ @tagName(id.player), id.id }, a, b, &i, 1, color);
1127
1136
  switch (endian) {
1128
- .Big => {
1137
+ big => {
1129
1138
  var hp = @as(u16, a[i]) << 8 | @as(u16, a[i + 1]);
1130
1139
  printc(" {d}", .{hp}, a, b, &i, 2, color);
1131
1140
  hp = @as(u16, a[i]) << 8 | @as(u16, a[i + 1]);
1132
1141
  printc("/{d}", .{hp}, a, b, &i, 2, color);
1133
1142
  },
1134
- .Little => {
1143
+ little => {
1135
1144
  var hp = @as(u16, a[i + 1]) << 8 | @as(u16, a[i]);
1136
1145
  printc(" {d}", .{hp}, a, b, &i, 2, color);
1137
1146
  hp = @as(u16, a[i + 1]) << 8 | @as(u16, a[i]);
@@ -1199,14 +1208,11 @@ pub fn expectLog(
1199
1208
  ) !void {
1200
1209
  if (!enabled) return;
1201
1210
 
1202
- const color = color: {
1203
- if (std.process.hasEnvVarConstant("ZIG_DEBUG_COLOR")) {
1204
- break :color true;
1205
- } else if (std.process.hasEnvVarConstant("NO_COLOR")) {
1206
- break :color false;
1207
- } else {
1208
- break :color std.io.getStdErr().supportsAnsiEscapeCodes();
1209
- }
1211
+ const color = if (std.process.hasEnvVarConstant("ZIG_DEBUG_COLOR"))
1212
+ true
1213
+ else switch (std.io.tty.detectConfig(std.io.getStdErr())) {
1214
+ .escape_codes => true,
1215
+ else => false,
1210
1216
  };
1211
1217
 
1212
1218
  expectEqualBytes(expected, actual, offset) catch |err| switch (err) {
@@ -1238,8 +1244,6 @@ fn expectEqualBytes(expected: []const u8, actual: []const u8, offset: usize) !vo
1238
1244
  }
1239
1245
  }
1240
1246
 
1241
- const endian = builtin.target.cpu.arch.endian();
1242
-
1243
1247
  fn N(e: anytype) u8 {
1244
1248
  return @intFromEnum(e);
1245
1249
  }
@@ -1247,20 +1251,13 @@ fn N(e: anytype) u8 {
1247
1251
  const p1 = Player.P1;
1248
1252
  const p2 = Player.P2;
1249
1253
 
1250
- const gen1 = struct {
1251
- pub usingnamespace @import("../gen1/data.zig");
1252
- pub const helpers = @import("../gen1/helpers.zig");
1253
- };
1254
-
1255
- const gen2 = struct {
1256
- pub usingnamespace @import("../gen2/data.zig");
1257
- pub const helpers = @import("../gen2/helpers.zig");
1258
- };
1259
-
1260
1254
  var buf: [pkmn.LOGS_SIZE]u8 = undefined;
1261
1255
  var stream: ByteStream = .{ .buffer = &buf };
1262
1256
  var log: FixedLog = .{ .writer = stream.writer() };
1263
1257
 
1258
+ const gen1 = pkmn.gen1;
1259
+ const gen2 = pkmn.gen2;
1260
+
1264
1261
  const M1 = gen1.Move;
1265
1262
  const S1 = gen1.Species;
1266
1263
 
@@ -1349,8 +1346,8 @@ test "|switch|" {
1349
1346
  try log.switched(.{ p2.ident(3), &snorlax });
1350
1347
  const par = 0b1000000;
1351
1348
  var expected: []const u8 = switch (endian) {
1352
- .Big => &.{ N(ArgType.Switch), 0b1011, N(S1.Snorlax), 91, 0, 200, 1, 144, par },
1353
- .Little => &.{ N(ArgType.Switch), 0b1011, N(S1.Snorlax), 91, 200, 0, 144, 1, par },
1349
+ big => &.{ N(ArgType.Switch), 0b1011, N(S1.Snorlax), 91, 0, 200, 1, 144, par },
1350
+ little => &.{ N(ArgType.Switch), 0b1011, N(S1.Snorlax), 91, 200, 0, 144, 1, par },
1354
1351
  };
1355
1352
  try expectLog1(expected, buf[0..9]);
1356
1353
  stream.reset();
@@ -1360,8 +1357,8 @@ test "|switch|" {
1360
1357
  snorlax.status = 0;
1361
1358
  try log.switched(.{ p2.ident(3), &snorlax });
1362
1359
  expected = switch (endian) {
1363
- .Big => &.{ N(ArgType.Switch), 0b1011, N(S1.Snorlax), 100, 0, 0, 1, 144, 0 },
1364
- .Little => &.{ N(ArgType.Switch), 0b1011, N(S1.Snorlax), 100, 0, 0, 144, 1, 0 },
1360
+ big => &.{ N(ArgType.Switch), 0b1011, N(S1.Snorlax), 100, 0, 0, 1, 144, 0 },
1361
+ little => &.{ N(ArgType.Switch), 0b1011, N(S1.Snorlax), 100, 0, 0, 144, 1, 0 },
1365
1362
  };
1366
1363
  try expectLog1(expected, buf[0..9]);
1367
1364
  stream.reset();
@@ -1369,8 +1366,8 @@ test "|switch|" {
1369
1366
  snorlax.hp = 400;
1370
1367
  try log.switched(.{ p2.ident(3), &snorlax });
1371
1368
  expected = switch (endian) {
1372
- .Big => &.{ N(ArgType.Switch), 0b1011, N(S1.Snorlax), 100, 1, 144, 1, 144, 0 },
1373
- .Little => &.{ N(ArgType.Switch), 0b1011, N(S1.Snorlax), 100, 144, 1, 144, 1, 0 },
1369
+ big => &.{ N(ArgType.Switch), 0b1011, N(S1.Snorlax), 100, 1, 144, 1, 144, 0 },
1370
+ little => &.{ N(ArgType.Switch), 0b1011, N(S1.Snorlax), 100, 144, 1, 144, 1, 0 },
1374
1371
  };
1375
1372
  try expectLog1(expected, buf[0..9]);
1376
1373
  stream.reset();
@@ -1388,8 +1385,8 @@ test "|switch|" {
1388
1385
  N(gen2.Gender.Female),
1389
1386
  91,
1390
1387
  } ++ switch (endian) {
1391
- .Big => .{ 0, 200, 1, 144, par },
1392
- .Little => .{ 200, 0, 144, 1, par },
1388
+ big => .{ 0, 200, 1, 144, par },
1389
+ little => .{ 200, 0, 144, 1, par },
1393
1390
  });
1394
1391
  try expectLog2(expected, buf[0..10]);
1395
1392
  stream.reset();
@@ -1417,9 +1414,9 @@ test "|faint|" {
1417
1414
 
1418
1415
  test "|turn|" {
1419
1416
  try log.turn(.{42});
1420
- var expected = switch (endian) {
1421
- .Big => &.{ N(ArgType.Turn), 0, 42, N(ArgType.None) },
1422
- .Little => &.{ N(ArgType.Turn), 42, 0, N(ArgType.None) },
1417
+ const expected = switch (endian) {
1418
+ big => &.{ N(ArgType.Turn), 0, 42, N(ArgType.None) },
1419
+ little => &.{ N(ArgType.Turn), 42, 0, N(ArgType.None) },
1423
1420
  };
1424
1421
  try expectLog1(expected, buf[0..4]);
1425
1422
  stream.reset();
@@ -1443,8 +1440,8 @@ test "|-damage|" {
1443
1440
  chansey.status = gen1.Status.slp(1);
1444
1441
  try log.damage(.{ p2.ident(2), &chansey, .None });
1445
1442
  var expected: []const u8 = switch (endian) {
1446
- .Big => &.{ N(ArgType.Damage), 0b1010, 2, 100, 2, 191, 1, N(Damage.None) },
1447
- .Little => &.{ N(ArgType.Damage), 0b1010, 100, 2, 191, 2, 1, N(Damage.None) },
1443
+ big => &.{ N(ArgType.Damage), 0b1010, 2, 100, 2, 191, 1, N(Damage.None) },
1444
+ little => &.{ N(ArgType.Damage), 0b1010, 100, 2, 191, 2, 1, N(Damage.None) },
1448
1445
  };
1449
1446
  try expectLog1(expected, buf[0..8]);
1450
1447
  stream.reset();
@@ -1454,8 +1451,8 @@ test "|-damage|" {
1454
1451
  chansey.status = 0;
1455
1452
  try log.damage(.{ p2.ident(2), &chansey, .Confusion });
1456
1453
  expected = switch (endian) {
1457
- .Big => &.{ N(ArgType.Damage), 0b1010, 0, 100, 1, 0, 0, N(Damage.Confusion) },
1458
- .Little => &.{ N(ArgType.Damage), 0b1010, 100, 0, 0, 1, 0, N(Damage.Confusion) },
1454
+ big => &.{ N(ArgType.Damage), 0b1010, 0, 100, 1, 0, 0, N(Damage.Confusion) },
1455
+ little => &.{ N(ArgType.Damage), 0b1010, 100, 0, 0, 1, 0, N(Damage.Confusion) },
1459
1456
  };
1460
1457
  try expectLog1(expected, buf[0..8]);
1461
1458
  stream.reset();
@@ -1463,8 +1460,8 @@ test "|-damage|" {
1463
1460
  chansey.status = gen1.Status.init(.PSN);
1464
1461
  try log.damage(.{ p2.ident(2), &chansey, .RecoilOf, p1.ident(1) });
1465
1462
  expected = switch (endian) {
1466
- .Big => &.{ N(ArgType.Damage), 0b1010, 0, 100, 1, 0, 0b1000, N(Damage.RecoilOf), 1 },
1467
- .Little => &.{ N(ArgType.Damage), 0b1010, 100, 0, 0, 1, 0b1000, N(Damage.RecoilOf), 1 },
1463
+ big => &.{ N(ArgType.Damage), 0b1010, 0, 100, 1, 0, 0b1000, N(Damage.RecoilOf), 1 },
1464
+ little => &.{ N(ArgType.Damage), 0b1010, 100, 0, 0, 1, 0b1000, N(Damage.RecoilOf), 1 },
1468
1465
  };
1469
1466
  try expectLog1(expected, buf[0..9]);
1470
1467
  stream.reset();
@@ -1476,8 +1473,8 @@ test "|-heal|" {
1476
1473
  chansey.status = gen1.Status.slp(1);
1477
1474
  try log.heal(.{ p2.ident(2), &chansey, .None });
1478
1475
  var expected: []const u8 = switch (endian) {
1479
- .Big => &.{ N(ArgType.Heal), 0b1010, 2, 100, 2, 191, 1, N(Heal.None) },
1480
- .Little => &.{ N(ArgType.Heal), 0b1010, 100, 2, 191, 2, 1, N(Heal.None) },
1476
+ big => &.{ N(ArgType.Heal), 0b1010, 2, 100, 2, 191, 1, N(Heal.None) },
1477
+ little => &.{ N(ArgType.Heal), 0b1010, 100, 2, 191, 2, 1, N(Heal.None) },
1481
1478
  };
1482
1479
  try expectLog1(expected, buf[0..8]);
1483
1480
  stream.reset();
@@ -1487,16 +1484,16 @@ test "|-heal|" {
1487
1484
  chansey.status = 0;
1488
1485
  try log.heal(.{ p2.ident(2), &chansey, .Silent });
1489
1486
  expected = switch (endian) {
1490
- .Big => &.{ N(ArgType.Heal), 0b1010, 0, 100, 1, 0, 0, N(Heal.Silent) },
1491
- .Little => &.{ N(ArgType.Heal), 0b1010, 100, 0, 0, 1, 0, N(Heal.Silent) },
1487
+ big => &.{ N(ArgType.Heal), 0b1010, 0, 100, 1, 0, 0, N(Heal.Silent) },
1488
+ little => &.{ N(ArgType.Heal), 0b1010, 100, 0, 0, 1, 0, N(Heal.Silent) },
1492
1489
  };
1493
1490
  try expectLog1(expected, buf[0..8]);
1494
1491
  stream.reset();
1495
1492
 
1496
1493
  try log.heal(.{ p2.ident(2), &chansey, .Drain, p1.ident(1) });
1497
1494
  expected = switch (endian) {
1498
- .Big => &.{ N(ArgType.Heal), 0b1010, 0, 100, 1, 0, 0, N(Heal.Drain), 1 },
1499
- .Little => &.{ N(ArgType.Heal), 0b1010, 100, 0, 0, 1, 0, N(Heal.Drain), 1 },
1495
+ big => &.{ N(ArgType.Heal), 0b1010, 0, 100, 1, 0, 0, N(Heal.Drain), 1 },
1496
+ little => &.{ N(ArgType.Heal), 0b1010, 100, 0, 0, 1, 0, N(Heal.Drain), 1 },
1500
1497
  };
1501
1498
  try expectLog1(expected, buf[0..9]);
1502
1499
  stream.reset();
@@ -1739,8 +1736,8 @@ test "|drag|" {
1739
1736
  N(gen2.Gender.Female),
1740
1737
  91,
1741
1738
  } ++ switch (endian) {
1742
- .Big => .{ 0, 200, 1, 144, par },
1743
- .Little => .{ 200, 0, 144, 1, par },
1739
+ big => .{ 0, 200, 1, 144, par },
1740
+ little => .{ 200, 0, 144, 1, par },
1744
1741
  });
1745
1742
  try expectLog2(expected, buf[0..10]);
1746
1743
  stream.reset();
@@ -1772,9 +1769,9 @@ test "|-sethp|" {
1772
1769
  var blissey = gen2.helpers.Pokemon.init(.{ .species = .Blissey, .moves = &.{.PainSplit} });
1773
1770
  blissey.hp = 612;
1774
1771
  try log.sethp(.{ p2.ident(2), &blissey, .Silent });
1775
- var expected: []const u8 = switch (endian) {
1776
- .Big => &.{ N(ArgType.SetHP), 0b1010, 2, 100, 2, 201, 0, N(SetHP.Silent) },
1777
- .Little => &.{ N(ArgType.SetHP), 0b1010, 100, 2, 201, 2, 0, N(SetHP.Silent) },
1772
+ const expected: []const u8 = switch (endian) {
1773
+ big => &.{ N(ArgType.SetHP), 0b1010, 2, 100, 2, 201, 0, N(SetHP.Silent) },
1774
+ little => &.{ N(ArgType.SetHP), 0b1010, 100, 2, 201, 2, 0, N(SetHP.Silent) },
1778
1775
  };
1779
1776
  try expectLog2(expected, buf[0..8]);
1780
1777
  stream.reset();