@pkmn/engine 0.1.0-dev.305a932f → 0.1.0-dev.30c63015

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.
@@ -266,7 +266,7 @@ pub const Rolls = struct {
266
266
  const PLAYERS = [_]Optional(Player){ .P1, .P2 };
267
267
 
268
268
  /// Returns a slice with the correct range of values for speed ties given the `action` state.
269
- pub inline fn speedTie(action: Action) []const Optional(Player) {
269
+ pub fn speedTie(action: Action) []const Optional(Player) {
270
270
  return if (@field(action, "speed_tie") == .None) &PLAYER_NONE else &PLAYERS;
271
271
  }
272
272
 
@@ -275,14 +275,14 @@ pub const Rolls = struct {
275
275
 
276
276
  /// Returns a slice with the correct range of values for hits given the `action` state
277
277
  /// and the state of the `parent` (whether the player's Pokémon was fully paralyzed).
278
- pub inline fn hit(action: Action, parent: Optional(bool)) []const Optional(bool) {
278
+ pub fn hit(action: Action, parent: Optional(bool)) []const Optional(bool) {
279
279
  if (parent == .true) return &BOOL_NONE;
280
280
  return if (@field(action, "hit") == .None) &BOOL_NONE else &BOOLS;
281
281
  }
282
282
 
283
283
  /// Returns a slice with the correct range of values for critical hits given the `action` state
284
284
  /// and the state of the `parent` (whether the player's Pokémon's move hit).
285
- pub inline fn criticalHit(
285
+ pub fn criticalHit(
286
286
  action: Action,
287
287
  parent: Optional(bool),
288
288
  ) []const Optional(bool) {
@@ -292,7 +292,7 @@ pub const Rolls = struct {
292
292
 
293
293
  /// Returns a slice with the correct range of values for secondary chances hits given the
294
294
  /// `action` state and the state of the `parent` (whether the player's Pokémon's move hit).
295
- pub inline fn secondaryChance(
295
+ pub fn secondaryChance(
296
296
  action: Action,
297
297
  parent: Optional(bool),
298
298
  ) []const Optional(bool) {
@@ -305,7 +305,7 @@ pub const Rolls = struct {
305
305
 
306
306
  /// Returns the range bounding damage rolls given the `action` state and the state of
307
307
  /// the `parent` (whether the player's Pokémon's move hit).
308
- pub inline fn damage(action: Action, parent: Optional(bool)) Range {
308
+ pub fn damage(action: Action, parent: Optional(bool)) Range {
309
309
  return if (parent == .false or @field(action, "damage") == 0)
310
310
  .{ .min = 0, .max = 1 }
311
311
  else
@@ -314,7 +314,7 @@ pub const Rolls = struct {
314
314
 
315
315
  /// Returns the max damage roll which will produce the same damage as `roll`
316
316
  /// given the base damage in `summaries`.
317
- pub inline fn coalesce(player: Player, roll: u8, summaries: *calc.Summaries, cap: bool) !u8 {
317
+ pub fn coalesce(player: Player, roll: u8, summaries: *calc.Summaries, cap: bool) !u8 {
318
318
  if (roll == 0) return roll;
319
319
 
320
320
  const dmg = summaries.get(player.foe()).damage;
@@ -326,13 +326,13 @@ pub const Rolls = struct {
326
326
 
327
327
  /// Returns a slice with the correct range of values for confused given the `action` state
328
328
  /// and the state of the `parent` (the player's Pokémon's remaining confusion turns).
329
- pub inline fn confused(action: Action, parent: u4) []const Optional(bool) {
329
+ pub fn confused(action: Action, parent: u4) []const Optional(bool) {
330
330
  return if (parent == 0 or @field(action, "confused") == .None) &BOOL_NONE else &BOOLS;
331
331
  }
332
332
 
333
333
  /// Returns a slice with the correct range of values for paralysis given the `action` state
334
334
  /// and the state of the `parent` (whether the player's Pokémon was confused).
335
- pub inline fn paralyzed(action: Action, parent: Optional(bool)) []const Optional(bool) {
335
+ pub fn paralyzed(action: Action, parent: Optional(bool)) []const Optional(bool) {
336
336
  if (parent == .true) return &BOOL_NONE;
337
337
  return if (@field(action, "paralyzed") == .None) &BOOL_NONE else &BOOLS;
338
338
  }
@@ -342,7 +342,7 @@ pub const Rolls = struct {
342
342
 
343
343
  /// Returns a slice with a range of values for duration given the `action` state
344
344
  /// and the state of the `parent` (whether the player's Pokémon's move hit).
345
- pub inline fn duration(action: Action, parent: Optional(bool)) []const u1 {
345
+ pub fn duration(action: Action, parent: Optional(bool)) []const u1 {
346
346
  if (parent == .false) return &DURATION_NONE;
347
347
  return if (@field(action, "duration") == 0) &DURATION_NONE else &DURATION;
348
348
  }
@@ -418,7 +418,7 @@ pub const Rolls = struct {
418
418
  /// and the state of the `parent` (whether the player's Pokémon's move hit).
419
419
  ///
420
420
  /// These slots may or **may not be valid** as slots may be unset / have 0 PP.
421
- pub inline fn moveSlot(action: Action, parent: Optional(bool)) []const u4 {
421
+ pub fn moveSlot(action: Action, parent: Optional(bool)) []const u4 {
422
422
  if (parent == .false) return &SLOT_NONE;
423
423
  return if (@field(action, "move_slot") == 0) &SLOT_NONE else &SLOT;
424
424
  }
@@ -428,7 +428,7 @@ pub const Rolls = struct {
428
428
 
429
429
  /// Returns a slice with the correct range of values for multi hit given the `action` state
430
430
  /// and the state of the `parent` (whether the player's Pokémon's move hit).
431
- pub inline fn multiHit(action: Action, parent: Optional(bool)) []const u4 {
431
+ pub fn multiHit(action: Action, parent: Optional(bool)) []const u4 {
432
432
  if (parent == .false) return &MULTI_NONE;
433
433
  return if (@field(action, "multi_hit") == 0) &MULTI_NONE else &MULTI;
434
434
  }
@@ -442,7 +442,7 @@ pub const Rolls = struct {
442
442
 
443
443
  /// Returns a slice with the correct range of values for psywave given the `action` state,
444
444
  /// the `side`, and the state of the `parent` (whether the player's Pokémon's move hit).
445
- pub inline fn psywave(
445
+ pub fn psywave(
446
446
  action: Action,
447
447
  side: *data.Side,
448
448
  parent: Optional(bool),
@@ -455,25 +455,10 @@ pub const Rolls = struct {
455
455
  }
456
456
 
457
457
  const MOVE_NONE = [_]Move{.None};
458
- const MOVES = init: {
459
- var moves: [Move.size - 2]Move = undefined;
460
- var i: usize = 0;
461
- for (@typeInfo(Move).Enum.fields) |f| {
462
- if (!(std.mem.eql(u8, f.name, "None") or
463
- std.mem.eql(u8, f.name, "Metronome") or
464
- std.mem.eql(u8, f.name, "Struggle") or
465
- std.mem.eql(u8, f.name, "SKIP_TURN")))
466
- {
467
- moves[i] = @field(Move, f.name);
468
- i += 1;
469
- }
470
- }
471
- break :init moves;
472
- };
473
458
 
474
459
  /// Returns a slice with the correct range of values for metronome given the `action` state.
475
- pub inline fn metronome(action: Action) []const Move {
476
- return if (@field(action, "metronome") == .None) &MOVE_NONE else &MOVES;
460
+ pub fn metronome(action: Action) []const Move {
461
+ return if (@field(action, "metronome") == .None) &MOVE_NONE else &Move.METRONOME;
477
462
  }
478
463
  };
479
464