@pkmn/engine 0.1.0-dev.d3e796d5 → 0.1.0-dev.d56bdadd
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/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 +2 -2
- package/build/pkg/gen1.js +2 -2
- package/build/pkg/gen1.js.map +1 -1
- package/build/pkg/protocol.js +56 -37
- package/build/pkg/protocol.js.map +1 -1
- package/build.zig +21 -15
- package/package.json +26 -14
- package/src/lib/binding/node.zig +1 -1
- package/src/lib/common/data.zig +8 -20
- package/src/lib/common/optional.zig +8 -1
- package/src/lib/common/protocol.zig +500 -56
- package/src/lib/common/rational.zig +5 -5
- package/src/lib/common/rng.zig +15 -6
- package/src/lib/gen1/README.md +31 -29
- package/src/lib/gen1/calc.zig +4 -4
- package/src/lib/gen1/chance.zig +55 -39
- package/src/lib/gen1/data/moves.zig +192 -180
- package/src/lib/gen1/data/species.zig +2 -2
- package/src/lib/gen1/data/types.zig +7 -7
- package/src/lib/gen1/data.zig +31 -43
- package/src/lib/gen1/helpers.zig +26 -41
- package/src/lib/gen1/mechanics.zig +131 -169
- package/src/lib/gen2/README.md +18 -72
- package/src/lib/gen2/calc.zig +143 -0
- package/src/lib/gen2/chance.zig +1314 -0
- package/src/lib/gen2/data/items.zig +12 -18
- package/src/lib/gen2/data/moves.zig +649 -568
- package/src/lib/gen2/data/species.zig +1 -1
- package/src/lib/gen2/data/types.zig +134 -31
- package/src/lib/gen2/data.zig +70 -67
- package/src/lib/gen2/generated.zig +808 -0
- package/src/lib/gen2/helpers.zig +4 -9
- package/src/lib/gen2/mechanics.zig +3113 -100
|
@@ -1,11 +1,13 @@
|
|
|
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
|
|
|
5
|
+
const rng = @import("../../common/rng.zig");
|
|
5
6
|
const gen2 = @import("../../gen2/data.zig");
|
|
6
7
|
|
|
7
8
|
const assert = std.debug.assert;
|
|
8
9
|
|
|
10
|
+
const percent = rng.Gen12.percent;
|
|
9
11
|
const Type = gen2.Type;
|
|
10
12
|
|
|
11
13
|
/// Representation of a Generation II Pokémon move.
|
|
@@ -271,16 +273,32 @@ pub const Move = enum(u8) {
|
|
|
271
273
|
bp: u8,
|
|
272
274
|
/// The move's type.
|
|
273
275
|
type: Type,
|
|
274
|
-
/// The move's base PP.
|
|
275
|
-
pp: u8,
|
|
276
276
|
/// The move's accuracy percentage.
|
|
277
277
|
accuracy: u8,
|
|
278
278
|
/// The move's targeting behavior.
|
|
279
279
|
target: Target,
|
|
280
280
|
/// The chance of the move's secondary effect occurring.
|
|
281
281
|
chance: u8 = 0,
|
|
282
|
-
/// The priority of the move
|
|
282
|
+
/// The priority of the move.
|
|
283
283
|
priority: i8 = 0,
|
|
284
|
+
/// Miscellaneous extra data/flags.
|
|
285
|
+
extra: Extra = .{},
|
|
286
|
+
|
|
287
|
+
/// Miscellaneous extra move related data/flags.
|
|
288
|
+
const Extra = packed struct(u8) {
|
|
289
|
+
/// Whether this move can be called via Metronome.
|
|
290
|
+
metronome: bool = true,
|
|
291
|
+
/// Whether this move can be called via Sleep Talk.
|
|
292
|
+
sleep_talk: bool = true,
|
|
293
|
+
/// Whether this move is considered to be "continuous".
|
|
294
|
+
continuous: bool = false,
|
|
295
|
+
/// Whether this move can hit a flying target.
|
|
296
|
+
flying: bool = false,
|
|
297
|
+
/// Whether this move can hit an underground target.
|
|
298
|
+
underground: bool = false,
|
|
299
|
+
/// Protocol reason offset associated with this move.
|
|
300
|
+
protocol: u3 = 0,
|
|
301
|
+
};
|
|
284
302
|
|
|
285
303
|
comptime {
|
|
286
304
|
assert(@sizeOf(Data) == 8);
|
|
@@ -293,8 +311,7 @@ pub const Move = enum(u8) {
|
|
|
293
311
|
.effect = .None,
|
|
294
312
|
.bp = 40,
|
|
295
313
|
.type = .Normal,
|
|
296
|
-
.
|
|
297
|
-
.accuracy = 100,
|
|
314
|
+
.accuracy = percent(100),
|
|
298
315
|
.target = .Other,
|
|
299
316
|
},
|
|
300
317
|
// KarateChop
|
|
@@ -302,8 +319,7 @@ pub const Move = enum(u8) {
|
|
|
302
319
|
.effect = .HighCritical,
|
|
303
320
|
.bp = 50,
|
|
304
321
|
.type = .Fighting,
|
|
305
|
-
.
|
|
306
|
-
.accuracy = 100,
|
|
322
|
+
.accuracy = percent(100),
|
|
307
323
|
.target = .Other,
|
|
308
324
|
},
|
|
309
325
|
// DoubleSlap
|
|
@@ -311,8 +327,7 @@ pub const Move = enum(u8) {
|
|
|
311
327
|
.effect = .MultiHit,
|
|
312
328
|
.bp = 15,
|
|
313
329
|
.type = .Normal,
|
|
314
|
-
.
|
|
315
|
-
.accuracy = 85,
|
|
330
|
+
.accuracy = percent(85),
|
|
316
331
|
.target = .Other,
|
|
317
332
|
},
|
|
318
333
|
// CometPunch
|
|
@@ -320,8 +335,7 @@ pub const Move = enum(u8) {
|
|
|
320
335
|
.effect = .MultiHit,
|
|
321
336
|
.bp = 18,
|
|
322
337
|
.type = .Normal,
|
|
323
|
-
.
|
|
324
|
-
.accuracy = 85,
|
|
338
|
+
.accuracy = percent(85),
|
|
325
339
|
.target = .Other,
|
|
326
340
|
},
|
|
327
341
|
// MegaPunch
|
|
@@ -329,8 +343,7 @@ pub const Move = enum(u8) {
|
|
|
329
343
|
.effect = .None,
|
|
330
344
|
.bp = 80,
|
|
331
345
|
.type = .Normal,
|
|
332
|
-
.
|
|
333
|
-
.accuracy = 85,
|
|
346
|
+
.accuracy = percent(85),
|
|
334
347
|
.target = .Other,
|
|
335
348
|
},
|
|
336
349
|
// PayDay
|
|
@@ -338,8 +351,7 @@ pub const Move = enum(u8) {
|
|
|
338
351
|
.effect = .PayDay,
|
|
339
352
|
.bp = 40,
|
|
340
353
|
.type = .Normal,
|
|
341
|
-
.
|
|
342
|
-
.accuracy = 100,
|
|
354
|
+
.accuracy = percent(100),
|
|
343
355
|
.target = .Other,
|
|
344
356
|
},
|
|
345
357
|
// FirePunch
|
|
@@ -347,38 +359,34 @@ pub const Move = enum(u8) {
|
|
|
347
359
|
.effect = .BurnChance,
|
|
348
360
|
.bp = 75,
|
|
349
361
|
.type = .Fire,
|
|
350
|
-
.
|
|
351
|
-
.accuracy = 100,
|
|
362
|
+
.accuracy = percent(100),
|
|
352
363
|
.target = .Other,
|
|
353
|
-
.chance =
|
|
364
|
+
.chance = percent(10),
|
|
354
365
|
},
|
|
355
366
|
// IcePunch
|
|
356
367
|
.{
|
|
357
368
|
.effect = .FreezeChance,
|
|
358
369
|
.bp = 75,
|
|
359
370
|
.type = .Ice,
|
|
360
|
-
.
|
|
361
|
-
.accuracy = 100,
|
|
371
|
+
.accuracy = percent(100),
|
|
362
372
|
.target = .Other,
|
|
363
|
-
.chance =
|
|
373
|
+
.chance = percent(10),
|
|
364
374
|
},
|
|
365
375
|
// ThunderPunch
|
|
366
376
|
.{
|
|
367
377
|
.effect = .ParalyzeChance,
|
|
368
378
|
.bp = 75,
|
|
369
379
|
.type = .Electric,
|
|
370
|
-
.
|
|
371
|
-
.accuracy = 100,
|
|
380
|
+
.accuracy = percent(100),
|
|
372
381
|
.target = .Other,
|
|
373
|
-
.chance =
|
|
382
|
+
.chance = percent(10),
|
|
374
383
|
},
|
|
375
384
|
// Scratch
|
|
376
385
|
.{
|
|
377
386
|
.effect = .None,
|
|
378
387
|
.bp = 40,
|
|
379
388
|
.type = .Normal,
|
|
380
|
-
.
|
|
381
|
-
.accuracy = 100,
|
|
389
|
+
.accuracy = percent(100),
|
|
382
390
|
.target = .Other,
|
|
383
391
|
},
|
|
384
392
|
// ViseGrip
|
|
@@ -386,8 +394,7 @@ pub const Move = enum(u8) {
|
|
|
386
394
|
.effect = .None,
|
|
387
395
|
.bp = 55,
|
|
388
396
|
.type = .Normal,
|
|
389
|
-
.
|
|
390
|
-
.accuracy = 100,
|
|
397
|
+
.accuracy = percent(100),
|
|
391
398
|
.target = .Other,
|
|
392
399
|
},
|
|
393
400
|
// Guillotine
|
|
@@ -395,8 +402,7 @@ pub const Move = enum(u8) {
|
|
|
395
402
|
.effect = .OHKO,
|
|
396
403
|
.bp = 0,
|
|
397
404
|
.type = .Normal,
|
|
398
|
-
.
|
|
399
|
-
.accuracy = 30,
|
|
405
|
+
.accuracy = percent(30),
|
|
400
406
|
.target = .Other,
|
|
401
407
|
},
|
|
402
408
|
// RazorWind
|
|
@@ -404,17 +410,16 @@ pub const Move = enum(u8) {
|
|
|
404
410
|
.effect = .RazorWind,
|
|
405
411
|
.bp = 80,
|
|
406
412
|
.type = .Normal,
|
|
407
|
-
.
|
|
408
|
-
.accuracy = 75,
|
|
413
|
+
.accuracy = percent(75),
|
|
409
414
|
.target = .Foes,
|
|
415
|
+
.extra = .{ .sleep_talk = false, .continuous = true },
|
|
410
416
|
},
|
|
411
417
|
// SwordsDance
|
|
412
418
|
.{
|
|
413
419
|
.effect = .AttackUp2,
|
|
414
420
|
.bp = 0,
|
|
415
421
|
.type = .Normal,
|
|
416
|
-
.
|
|
417
|
-
.accuracy = 100,
|
|
422
|
+
.accuracy = percent(100),
|
|
418
423
|
.target = .Self,
|
|
419
424
|
},
|
|
420
425
|
// Cut
|
|
@@ -422,8 +427,7 @@ pub const Move = enum(u8) {
|
|
|
422
427
|
.effect = .None,
|
|
423
428
|
.bp = 50,
|
|
424
429
|
.type = .Normal,
|
|
425
|
-
.
|
|
426
|
-
.accuracy = 95,
|
|
430
|
+
.accuracy = percent(95),
|
|
427
431
|
.target = .Other,
|
|
428
432
|
},
|
|
429
433
|
// Gust
|
|
@@ -431,17 +435,16 @@ pub const Move = enum(u8) {
|
|
|
431
435
|
.effect = .Gust,
|
|
432
436
|
.bp = 40,
|
|
433
437
|
.type = .Flying,
|
|
434
|
-
.
|
|
435
|
-
.accuracy = 100,
|
|
438
|
+
.accuracy = percent(100),
|
|
436
439
|
.target = .Any,
|
|
440
|
+
.extra = .{ .flying = true },
|
|
437
441
|
},
|
|
438
442
|
// WingAttack
|
|
439
443
|
.{
|
|
440
444
|
.effect = .None,
|
|
441
445
|
.bp = 60,
|
|
442
446
|
.type = .Flying,
|
|
443
|
-
.
|
|
444
|
-
.accuracy = 100,
|
|
447
|
+
.accuracy = percent(100),
|
|
445
448
|
.target = .Any,
|
|
446
449
|
},
|
|
447
450
|
// Whirlwind
|
|
@@ -449,36 +452,35 @@ pub const Move = enum(u8) {
|
|
|
449
452
|
.effect = .ForceSwitch,
|
|
450
453
|
.bp = 0,
|
|
451
454
|
.type = .Normal,
|
|
452
|
-
.
|
|
453
|
-
.accuracy = 100,
|
|
455
|
+
.accuracy = percent(100),
|
|
454
456
|
.target = .Other,
|
|
455
457
|
.priority = -1,
|
|
458
|
+
.extra = .{ .flying = true },
|
|
456
459
|
},
|
|
457
460
|
// Fly
|
|
458
461
|
.{
|
|
459
|
-
.effect = .
|
|
462
|
+
.effect = .FlyDig,
|
|
460
463
|
.bp = 70,
|
|
461
464
|
.type = .Flying,
|
|
462
|
-
.
|
|
463
|
-
.accuracy = 95,
|
|
465
|
+
.accuracy = percent(95),
|
|
464
466
|
.target = .Any,
|
|
467
|
+
.extra = .{ .sleep_talk = false, .continuous = true },
|
|
465
468
|
},
|
|
466
469
|
// Bind
|
|
467
470
|
.{
|
|
468
471
|
.effect = .Binding,
|
|
469
472
|
.bp = 15,
|
|
470
473
|
.type = .Normal,
|
|
471
|
-
.
|
|
472
|
-
.accuracy = 75,
|
|
474
|
+
.accuracy = percent(75),
|
|
473
475
|
.target = .Other,
|
|
476
|
+
.extra = .{ .protocol = 1 },
|
|
474
477
|
},
|
|
475
478
|
// Slam
|
|
476
479
|
.{
|
|
477
480
|
.effect = .None,
|
|
478
481
|
.bp = 80,
|
|
479
482
|
.type = .Normal,
|
|
480
|
-
.
|
|
481
|
-
.accuracy = 75,
|
|
483
|
+
.accuracy = percent(75),
|
|
482
484
|
.target = .Other,
|
|
483
485
|
},
|
|
484
486
|
// VineWhip
|
|
@@ -486,8 +488,7 @@ pub const Move = enum(u8) {
|
|
|
486
488
|
.effect = .None,
|
|
487
489
|
.bp = 35,
|
|
488
490
|
.type = .Grass,
|
|
489
|
-
.
|
|
490
|
-
.accuracy = 100,
|
|
491
|
+
.accuracy = percent(100),
|
|
491
492
|
.target = .Other,
|
|
492
493
|
},
|
|
493
494
|
// Stomp
|
|
@@ -495,18 +496,16 @@ pub const Move = enum(u8) {
|
|
|
495
496
|
.effect = .Stomp,
|
|
496
497
|
.bp = 65,
|
|
497
498
|
.type = .Normal,
|
|
498
|
-
.
|
|
499
|
-
.accuracy = 100,
|
|
499
|
+
.accuracy = percent(100),
|
|
500
500
|
.target = .Other,
|
|
501
|
-
.chance =
|
|
501
|
+
.chance = percent(30),
|
|
502
502
|
},
|
|
503
503
|
// DoubleKick
|
|
504
504
|
.{
|
|
505
505
|
.effect = .DoubleHit,
|
|
506
506
|
.bp = 30,
|
|
507
507
|
.type = .Fighting,
|
|
508
|
-
.
|
|
509
|
-
.accuracy = 100,
|
|
508
|
+
.accuracy = percent(100),
|
|
510
509
|
.target = .Other,
|
|
511
510
|
},
|
|
512
511
|
// MegaKick
|
|
@@ -514,8 +513,7 @@ pub const Move = enum(u8) {
|
|
|
514
513
|
.effect = .None,
|
|
515
514
|
.bp = 120,
|
|
516
515
|
.type = .Normal,
|
|
517
|
-
.
|
|
518
|
-
.accuracy = 75,
|
|
516
|
+
.accuracy = percent(75),
|
|
519
517
|
.target = .Other,
|
|
520
518
|
},
|
|
521
519
|
// JumpKick
|
|
@@ -523,8 +521,7 @@ pub const Move = enum(u8) {
|
|
|
523
521
|
.effect = .JumpKick,
|
|
524
522
|
.bp = 70,
|
|
525
523
|
.type = .Fighting,
|
|
526
|
-
.
|
|
527
|
-
.accuracy = 95,
|
|
524
|
+
.accuracy = percent(95),
|
|
528
525
|
.target = .Other,
|
|
529
526
|
},
|
|
530
527
|
// RollingKick
|
|
@@ -532,18 +529,16 @@ pub const Move = enum(u8) {
|
|
|
532
529
|
.effect = .FlinchChance,
|
|
533
530
|
.bp = 60,
|
|
534
531
|
.type = .Fighting,
|
|
535
|
-
.
|
|
536
|
-
.accuracy = 85,
|
|
532
|
+
.accuracy = percent(85),
|
|
537
533
|
.target = .Other,
|
|
538
|
-
.chance =
|
|
534
|
+
.chance = percent(30),
|
|
539
535
|
},
|
|
540
536
|
// SandAttack
|
|
541
537
|
.{
|
|
542
538
|
.effect = .AccuracyDown1,
|
|
543
539
|
.bp = 0,
|
|
544
540
|
.type = .Ground,
|
|
545
|
-
.
|
|
546
|
-
.accuracy = 100,
|
|
541
|
+
.accuracy = percent(100),
|
|
547
542
|
.target = .Other,
|
|
548
543
|
},
|
|
549
544
|
// Headbutt
|
|
@@ -551,18 +546,16 @@ pub const Move = enum(u8) {
|
|
|
551
546
|
.effect = .FlinchChance,
|
|
552
547
|
.bp = 70,
|
|
553
548
|
.type = .Normal,
|
|
554
|
-
.
|
|
555
|
-
.accuracy = 100,
|
|
549
|
+
.accuracy = percent(100),
|
|
556
550
|
.target = .Other,
|
|
557
|
-
.chance =
|
|
551
|
+
.chance = percent(30),
|
|
558
552
|
},
|
|
559
553
|
// HornAttack
|
|
560
554
|
.{
|
|
561
555
|
.effect = .None,
|
|
562
556
|
.bp = 65,
|
|
563
557
|
.type = .Normal,
|
|
564
|
-
.
|
|
565
|
-
.accuracy = 100,
|
|
558
|
+
.accuracy = percent(100),
|
|
566
559
|
.target = .Other,
|
|
567
560
|
},
|
|
568
561
|
// FuryAttack
|
|
@@ -570,8 +563,7 @@ pub const Move = enum(u8) {
|
|
|
570
563
|
.effect = .MultiHit,
|
|
571
564
|
.bp = 15,
|
|
572
565
|
.type = .Normal,
|
|
573
|
-
.
|
|
574
|
-
.accuracy = 85,
|
|
566
|
+
.accuracy = percent(85),
|
|
575
567
|
.target = .Other,
|
|
576
568
|
},
|
|
577
569
|
// HornDrill
|
|
@@ -579,8 +571,7 @@ pub const Move = enum(u8) {
|
|
|
579
571
|
.effect = .OHKO,
|
|
580
572
|
.bp = 0,
|
|
581
573
|
.type = .Normal,
|
|
582
|
-
.
|
|
583
|
-
.accuracy = 30,
|
|
574
|
+
.accuracy = percent(30),
|
|
584
575
|
.target = .Other,
|
|
585
576
|
},
|
|
586
577
|
// Tackle
|
|
@@ -588,8 +579,7 @@ pub const Move = enum(u8) {
|
|
|
588
579
|
.effect = .None,
|
|
589
580
|
.bp = 35,
|
|
590
581
|
.type = .Normal,
|
|
591
|
-
.
|
|
592
|
-
.accuracy = 95,
|
|
582
|
+
.accuracy = percent(95),
|
|
593
583
|
.target = .Other,
|
|
594
584
|
},
|
|
595
585
|
// BodySlam
|
|
@@ -597,27 +587,25 @@ pub const Move = enum(u8) {
|
|
|
597
587
|
.effect = .ParalyzeChance,
|
|
598
588
|
.bp = 85,
|
|
599
589
|
.type = .Normal,
|
|
600
|
-
.
|
|
601
|
-
.accuracy = 100,
|
|
590
|
+
.accuracy = percent(100),
|
|
602
591
|
.target = .Other,
|
|
603
|
-
.chance =
|
|
592
|
+
.chance = percent(30),
|
|
604
593
|
},
|
|
605
594
|
// Wrap
|
|
606
595
|
.{
|
|
607
596
|
.effect = .Binding,
|
|
608
597
|
.bp = 15,
|
|
609
598
|
.type = .Normal,
|
|
610
|
-
.
|
|
611
|
-
.accuracy = 85,
|
|
599
|
+
.accuracy = percent(85),
|
|
612
600
|
.target = .Other,
|
|
601
|
+
.extra = .{ .protocol = 2 },
|
|
613
602
|
},
|
|
614
603
|
// TakeDown
|
|
615
604
|
.{
|
|
616
605
|
.effect = .Recoil,
|
|
617
606
|
.bp = 90,
|
|
618
607
|
.type = .Normal,
|
|
619
|
-
.
|
|
620
|
-
.accuracy = 85,
|
|
608
|
+
.accuracy = percent(85),
|
|
621
609
|
.target = .Other,
|
|
622
610
|
},
|
|
623
611
|
// Thrash
|
|
@@ -625,17 +613,16 @@ pub const Move = enum(u8) {
|
|
|
625
613
|
.effect = .Thrashing,
|
|
626
614
|
.bp = 90,
|
|
627
615
|
.type = .Normal,
|
|
628
|
-
.
|
|
629
|
-
.accuracy = 100,
|
|
616
|
+
.accuracy = percent(100),
|
|
630
617
|
.target = .RandomFoe,
|
|
618
|
+
.extra = .{ .continuous = true },
|
|
631
619
|
},
|
|
632
620
|
// DoubleEdge
|
|
633
621
|
.{
|
|
634
622
|
.effect = .Recoil,
|
|
635
623
|
.bp = 120,
|
|
636
624
|
.type = .Normal,
|
|
637
|
-
.
|
|
638
|
-
.accuracy = 100,
|
|
625
|
+
.accuracy = percent(100),
|
|
639
626
|
.target = .Other,
|
|
640
627
|
},
|
|
641
628
|
// TailWhip
|
|
@@ -643,8 +630,7 @@ pub const Move = enum(u8) {
|
|
|
643
630
|
.effect = .DefenseDown1,
|
|
644
631
|
.bp = 0,
|
|
645
632
|
.type = .Normal,
|
|
646
|
-
.
|
|
647
|
-
.accuracy = 100,
|
|
633
|
+
.accuracy = percent(100),
|
|
648
634
|
.target = .Foes,
|
|
649
635
|
},
|
|
650
636
|
// PoisonSting
|
|
@@ -652,28 +638,25 @@ pub const Move = enum(u8) {
|
|
|
652
638
|
.effect = .PoisonChance,
|
|
653
639
|
.bp = 15,
|
|
654
640
|
.type = .Poison,
|
|
655
|
-
.
|
|
656
|
-
.accuracy = 100,
|
|
641
|
+
.accuracy = percent(100),
|
|
657
642
|
.target = .Other,
|
|
658
|
-
.chance =
|
|
643
|
+
.chance = percent(30),
|
|
659
644
|
},
|
|
660
645
|
// Twineedle
|
|
661
646
|
.{
|
|
662
647
|
.effect = .Twineedle,
|
|
663
648
|
.bp = 25,
|
|
664
649
|
.type = .Bug,
|
|
665
|
-
.
|
|
666
|
-
.accuracy = 100,
|
|
650
|
+
.accuracy = percent(100),
|
|
667
651
|
.target = .Other,
|
|
668
|
-
.chance =
|
|
652
|
+
.chance = percent(20),
|
|
669
653
|
},
|
|
670
654
|
// PinMissile
|
|
671
655
|
.{
|
|
672
656
|
.effect = .MultiHit,
|
|
673
657
|
.bp = 14,
|
|
674
658
|
.type = .Bug,
|
|
675
|
-
.
|
|
676
|
-
.accuracy = 85,
|
|
659
|
+
.accuracy = percent(85),
|
|
677
660
|
.target = .Other,
|
|
678
661
|
},
|
|
679
662
|
// Leer
|
|
@@ -681,8 +664,7 @@ pub const Move = enum(u8) {
|
|
|
681
664
|
.effect = .DefenseDown1,
|
|
682
665
|
.bp = 0,
|
|
683
666
|
.type = .Normal,
|
|
684
|
-
.
|
|
685
|
-
.accuracy = 100,
|
|
667
|
+
.accuracy = percent(100),
|
|
686
668
|
.target = .Foes,
|
|
687
669
|
},
|
|
688
670
|
// Bite
|
|
@@ -690,18 +672,16 @@ pub const Move = enum(u8) {
|
|
|
690
672
|
.effect = .FlinchChance,
|
|
691
673
|
.bp = 60,
|
|
692
674
|
.type = .Dark,
|
|
693
|
-
.
|
|
694
|
-
.accuracy = 100,
|
|
675
|
+
.accuracy = percent(100),
|
|
695
676
|
.target = .Other,
|
|
696
|
-
.chance =
|
|
677
|
+
.chance = percent(30),
|
|
697
678
|
},
|
|
698
679
|
// Growl
|
|
699
680
|
.{
|
|
700
681
|
.effect = .AttackDown1,
|
|
701
682
|
.bp = 0,
|
|
702
683
|
.type = .Normal,
|
|
703
|
-
.
|
|
704
|
-
.accuracy = 100,
|
|
684
|
+
.accuracy = percent(100),
|
|
705
685
|
.target = .Foes,
|
|
706
686
|
},
|
|
707
687
|
// Roar
|
|
@@ -709,8 +689,7 @@ pub const Move = enum(u8) {
|
|
|
709
689
|
.effect = .ForceSwitch,
|
|
710
690
|
.bp = 0,
|
|
711
691
|
.type = .Normal,
|
|
712
|
-
.
|
|
713
|
-
.accuracy = 100,
|
|
692
|
+
.accuracy = percent(100),
|
|
714
693
|
.target = .Other,
|
|
715
694
|
.priority = -1,
|
|
716
695
|
},
|
|
@@ -719,8 +698,7 @@ pub const Move = enum(u8) {
|
|
|
719
698
|
.effect = .Sleep,
|
|
720
699
|
.bp = 0,
|
|
721
700
|
.type = .Normal,
|
|
722
|
-
.
|
|
723
|
-
.accuracy = 55,
|
|
701
|
+
.accuracy = percent(55),
|
|
724
702
|
.target = .Other,
|
|
725
703
|
},
|
|
726
704
|
// Supersonic
|
|
@@ -728,8 +706,7 @@ pub const Move = enum(u8) {
|
|
|
728
706
|
.effect = .Confusion,
|
|
729
707
|
.bp = 0,
|
|
730
708
|
.type = .Normal,
|
|
731
|
-
.
|
|
732
|
-
.accuracy = 55,
|
|
709
|
+
.accuracy = percent(55),
|
|
733
710
|
.target = .Other,
|
|
734
711
|
},
|
|
735
712
|
// SonicBoom
|
|
@@ -737,8 +714,7 @@ pub const Move = enum(u8) {
|
|
|
737
714
|
.effect = .FixedDamage,
|
|
738
715
|
.bp = 0,
|
|
739
716
|
.type = .Normal,
|
|
740
|
-
.
|
|
741
|
-
.accuracy = 90,
|
|
717
|
+
.accuracy = percent(90),
|
|
742
718
|
.target = .Other,
|
|
743
719
|
},
|
|
744
720
|
// Disable
|
|
@@ -746,8 +722,7 @@ pub const Move = enum(u8) {
|
|
|
746
722
|
.effect = .Disable,
|
|
747
723
|
.bp = 0,
|
|
748
724
|
.type = .Normal,
|
|
749
|
-
.
|
|
750
|
-
.accuracy = 55,
|
|
725
|
+
.accuracy = percent(55),
|
|
751
726
|
.target = .Other,
|
|
752
727
|
},
|
|
753
728
|
// Acid
|
|
@@ -755,38 +730,34 @@ pub const Move = enum(u8) {
|
|
|
755
730
|
.effect = .DefenseDownChance,
|
|
756
731
|
.bp = 40,
|
|
757
732
|
.type = .Poison,
|
|
758
|
-
.
|
|
759
|
-
.accuracy = 100,
|
|
733
|
+
.accuracy = percent(100),
|
|
760
734
|
.target = .Foes,
|
|
761
|
-
.chance =
|
|
735
|
+
.chance = percent(10),
|
|
762
736
|
},
|
|
763
737
|
// Ember
|
|
764
738
|
.{
|
|
765
739
|
.effect = .BurnChance,
|
|
766
740
|
.bp = 40,
|
|
767
741
|
.type = .Fire,
|
|
768
|
-
.
|
|
769
|
-
.accuracy = 100,
|
|
742
|
+
.accuracy = percent(100),
|
|
770
743
|
.target = .Other,
|
|
771
|
-
.chance =
|
|
744
|
+
.chance = percent(10),
|
|
772
745
|
},
|
|
773
746
|
// Flamethrower
|
|
774
747
|
.{
|
|
775
748
|
.effect = .BurnChance,
|
|
776
749
|
.bp = 95,
|
|
777
750
|
.type = .Fire,
|
|
778
|
-
.
|
|
779
|
-
.accuracy = 100,
|
|
751
|
+
.accuracy = percent(100),
|
|
780
752
|
.target = .Other,
|
|
781
|
-
.chance =
|
|
753
|
+
.chance = percent(10),
|
|
782
754
|
},
|
|
783
755
|
// Mist
|
|
784
756
|
.{
|
|
785
757
|
.effect = .Mist,
|
|
786
758
|
.bp = 0,
|
|
787
759
|
.type = .Ice,
|
|
788
|
-
.
|
|
789
|
-
.accuracy = 100,
|
|
760
|
+
.accuracy = percent(100),
|
|
790
761
|
.target = .Self,
|
|
791
762
|
},
|
|
792
763
|
// WaterGun
|
|
@@ -794,8 +765,7 @@ pub const Move = enum(u8) {
|
|
|
794
765
|
.effect = .None,
|
|
795
766
|
.bp = 40,
|
|
796
767
|
.type = .Water,
|
|
797
|
-
.
|
|
798
|
-
.accuracy = 100,
|
|
768
|
+
.accuracy = percent(100),
|
|
799
769
|
.target = .Other,
|
|
800
770
|
},
|
|
801
771
|
// HydroPump
|
|
@@ -803,8 +773,7 @@ pub const Move = enum(u8) {
|
|
|
803
773
|
.effect = .None,
|
|
804
774
|
.bp = 120,
|
|
805
775
|
.type = .Water,
|
|
806
|
-
.
|
|
807
|
-
.accuracy = 80,
|
|
776
|
+
.accuracy = percent(80),
|
|
808
777
|
.target = .Other,
|
|
809
778
|
},
|
|
810
779
|
// Surf
|
|
@@ -812,8 +781,7 @@ pub const Move = enum(u8) {
|
|
|
812
781
|
.effect = .None,
|
|
813
782
|
.bp = 95,
|
|
814
783
|
.type = .Water,
|
|
815
|
-
.
|
|
816
|
-
.accuracy = 100,
|
|
784
|
+
.accuracy = percent(100),
|
|
817
785
|
.target = .Foes,
|
|
818
786
|
},
|
|
819
787
|
// IceBeam
|
|
@@ -821,58 +789,52 @@ pub const Move = enum(u8) {
|
|
|
821
789
|
.effect = .FreezeChance,
|
|
822
790
|
.bp = 95,
|
|
823
791
|
.type = .Ice,
|
|
824
|
-
.
|
|
825
|
-
.accuracy = 100,
|
|
792
|
+
.accuracy = percent(100),
|
|
826
793
|
.target = .Other,
|
|
827
|
-
.chance =
|
|
794
|
+
.chance = percent(10),
|
|
828
795
|
},
|
|
829
796
|
// Blizzard
|
|
830
797
|
.{
|
|
831
798
|
.effect = .FreezeChance,
|
|
832
799
|
.bp = 120,
|
|
833
800
|
.type = .Ice,
|
|
834
|
-
.
|
|
835
|
-
.accuracy = 70,
|
|
801
|
+
.accuracy = percent(70),
|
|
836
802
|
.target = .Foes,
|
|
837
|
-
.chance =
|
|
803
|
+
.chance = percent(10),
|
|
838
804
|
},
|
|
839
805
|
// Psybeam
|
|
840
806
|
.{
|
|
841
807
|
.effect = .ConfusionChance,
|
|
842
808
|
.bp = 65,
|
|
843
809
|
.type = .Psychic,
|
|
844
|
-
.
|
|
845
|
-
.accuracy = 100,
|
|
810
|
+
.accuracy = percent(100),
|
|
846
811
|
.target = .Other,
|
|
847
|
-
.chance =
|
|
812
|
+
.chance = percent(10),
|
|
848
813
|
},
|
|
849
814
|
// BubbleBeam
|
|
850
815
|
.{
|
|
851
816
|
.effect = .SpeedDownChance,
|
|
852
817
|
.bp = 65,
|
|
853
818
|
.type = .Water,
|
|
854
|
-
.
|
|
855
|
-
.accuracy = 100,
|
|
819
|
+
.accuracy = percent(100),
|
|
856
820
|
.target = .Other,
|
|
857
|
-
.chance =
|
|
821
|
+
.chance = percent(10),
|
|
858
822
|
},
|
|
859
823
|
// AuroraBeam
|
|
860
824
|
.{
|
|
861
825
|
.effect = .AttackDownChance,
|
|
862
826
|
.bp = 65,
|
|
863
827
|
.type = .Ice,
|
|
864
|
-
.
|
|
865
|
-
.accuracy = 100,
|
|
828
|
+
.accuracy = percent(100),
|
|
866
829
|
.target = .Other,
|
|
867
|
-
.chance =
|
|
830
|
+
.chance = percent(10),
|
|
868
831
|
},
|
|
869
832
|
// HyperBeam
|
|
870
833
|
.{
|
|
871
834
|
.effect = .HyperBeam,
|
|
872
835
|
.bp = 150,
|
|
873
836
|
.type = .Normal,
|
|
874
|
-
.
|
|
875
|
-
.accuracy = 90,
|
|
837
|
+
.accuracy = percent(90),
|
|
876
838
|
.target = .Other,
|
|
877
839
|
},
|
|
878
840
|
// Peck
|
|
@@ -880,8 +842,7 @@ pub const Move = enum(u8) {
|
|
|
880
842
|
.effect = .None,
|
|
881
843
|
.bp = 35,
|
|
882
844
|
.type = .Flying,
|
|
883
|
-
.
|
|
884
|
-
.accuracy = 100,
|
|
845
|
+
.accuracy = percent(100),
|
|
885
846
|
.target = .Any,
|
|
886
847
|
},
|
|
887
848
|
// DrillPeck
|
|
@@ -889,8 +850,7 @@ pub const Move = enum(u8) {
|
|
|
889
850
|
.effect = .None,
|
|
890
851
|
.bp = 80,
|
|
891
852
|
.type = .Flying,
|
|
892
|
-
.
|
|
893
|
-
.accuracy = 100,
|
|
853
|
+
.accuracy = percent(100),
|
|
894
854
|
.target = .Any,
|
|
895
855
|
},
|
|
896
856
|
// Submission
|
|
@@ -898,8 +858,7 @@ pub const Move = enum(u8) {
|
|
|
898
858
|
.effect = .Recoil,
|
|
899
859
|
.bp = 80,
|
|
900
860
|
.type = .Fighting,
|
|
901
|
-
.
|
|
902
|
-
.accuracy = 80,
|
|
861
|
+
.accuracy = percent(80),
|
|
903
862
|
.target = .Other,
|
|
904
863
|
},
|
|
905
864
|
// LowKick
|
|
@@ -907,28 +866,26 @@ pub const Move = enum(u8) {
|
|
|
907
866
|
.effect = .FlinchChance,
|
|
908
867
|
.bp = 50,
|
|
909
868
|
.type = .Fighting,
|
|
910
|
-
.
|
|
911
|
-
.accuracy = 90,
|
|
869
|
+
.accuracy = percent(90),
|
|
912
870
|
.target = .Other,
|
|
913
|
-
.chance =
|
|
871
|
+
.chance = percent(30),
|
|
914
872
|
},
|
|
915
873
|
// Counter
|
|
916
874
|
.{
|
|
917
875
|
.effect = .Counter,
|
|
918
876
|
.bp = 0,
|
|
919
877
|
.type = .Fighting,
|
|
920
|
-
.
|
|
921
|
-
.accuracy = 100,
|
|
878
|
+
.accuracy = percent(100),
|
|
922
879
|
.target = .Depends,
|
|
923
880
|
.priority = -1,
|
|
881
|
+
.extra = .{ .metronome = false },
|
|
924
882
|
},
|
|
925
883
|
// SeismicToss
|
|
926
884
|
.{
|
|
927
885
|
.effect = .LevelDamage,
|
|
928
886
|
.bp = 0,
|
|
929
887
|
.type = .Fighting,
|
|
930
|
-
.
|
|
931
|
-
.accuracy = 100,
|
|
888
|
+
.accuracy = percent(100),
|
|
932
889
|
.target = .Other,
|
|
933
890
|
},
|
|
934
891
|
// Strength
|
|
@@ -936,8 +893,7 @@ pub const Move = enum(u8) {
|
|
|
936
893
|
.effect = .None,
|
|
937
894
|
.bp = 80,
|
|
938
895
|
.type = .Normal,
|
|
939
|
-
.
|
|
940
|
-
.accuracy = 100,
|
|
896
|
+
.accuracy = percent(100),
|
|
941
897
|
.target = .Other,
|
|
942
898
|
},
|
|
943
899
|
// Absorb
|
|
@@ -945,8 +901,7 @@ pub const Move = enum(u8) {
|
|
|
945
901
|
.effect = .DrainHP,
|
|
946
902
|
.bp = 20,
|
|
947
903
|
.type = .Grass,
|
|
948
|
-
.
|
|
949
|
-
.accuracy = 100,
|
|
904
|
+
.accuracy = percent(100),
|
|
950
905
|
.target = .Other,
|
|
951
906
|
},
|
|
952
907
|
// MegaDrain
|
|
@@ -954,8 +909,7 @@ pub const Move = enum(u8) {
|
|
|
954
909
|
.effect = .DrainHP,
|
|
955
910
|
.bp = 40,
|
|
956
911
|
.type = .Grass,
|
|
957
|
-
.
|
|
958
|
-
.accuracy = 100,
|
|
912
|
+
.accuracy = percent(100),
|
|
959
913
|
.target = .Other,
|
|
960
914
|
},
|
|
961
915
|
// LeechSeed
|
|
@@ -963,8 +917,7 @@ pub const Move = enum(u8) {
|
|
|
963
917
|
.effect = .LeechSeed,
|
|
964
918
|
.bp = 0,
|
|
965
919
|
.type = .Grass,
|
|
966
|
-
.
|
|
967
|
-
.accuracy = 90,
|
|
920
|
+
.accuracy = percent(90),
|
|
968
921
|
.target = .Other,
|
|
969
922
|
},
|
|
970
923
|
// Growth
|
|
@@ -972,8 +925,7 @@ pub const Move = enum(u8) {
|
|
|
972
925
|
.effect = .SpAtkUp1,
|
|
973
926
|
.bp = 0,
|
|
974
927
|
.type = .Normal,
|
|
975
|
-
.
|
|
976
|
-
.accuracy = 100,
|
|
928
|
+
.accuracy = percent(100),
|
|
977
929
|
.target = .Self,
|
|
978
930
|
},
|
|
979
931
|
// RazorLeaf
|
|
@@ -981,26 +933,24 @@ pub const Move = enum(u8) {
|
|
|
981
933
|
.effect = .HighCritical,
|
|
982
934
|
.bp = 55,
|
|
983
935
|
.type = .Grass,
|
|
984
|
-
.
|
|
985
|
-
.accuracy = 95,
|
|
936
|
+
.accuracy = percent(95),
|
|
986
937
|
.target = .Foes,
|
|
987
938
|
},
|
|
988
939
|
// SolarBeam
|
|
989
940
|
.{
|
|
990
|
-
.effect = .
|
|
941
|
+
.effect = .SolarBeam,
|
|
991
942
|
.bp = 120,
|
|
992
943
|
.type = .Grass,
|
|
993
|
-
.
|
|
994
|
-
.accuracy = 100,
|
|
944
|
+
.accuracy = percent(100),
|
|
995
945
|
.target = .Other,
|
|
946
|
+
.extra = .{ .sleep_talk = false, .continuous = true },
|
|
996
947
|
},
|
|
997
948
|
// PoisonPowder
|
|
998
949
|
.{
|
|
999
950
|
.effect = .Poison,
|
|
1000
951
|
.bp = 0,
|
|
1001
952
|
.type = .Poison,
|
|
1002
|
-
.
|
|
1003
|
-
.accuracy = 75,
|
|
953
|
+
.accuracy = percent(75),
|
|
1004
954
|
.target = .Other,
|
|
1005
955
|
},
|
|
1006
956
|
// StunSpore
|
|
@@ -1008,8 +958,7 @@ pub const Move = enum(u8) {
|
|
|
1008
958
|
.effect = .Paralyze,
|
|
1009
959
|
.bp = 0,
|
|
1010
960
|
.type = .Grass,
|
|
1011
|
-
.
|
|
1012
|
-
.accuracy = 75,
|
|
961
|
+
.accuracy = percent(75),
|
|
1013
962
|
.target = .Other,
|
|
1014
963
|
},
|
|
1015
964
|
// SleepPowder
|
|
@@ -1017,8 +966,7 @@ pub const Move = enum(u8) {
|
|
|
1017
966
|
.effect = .Sleep,
|
|
1018
967
|
.bp = 0,
|
|
1019
968
|
.type = .Grass,
|
|
1020
|
-
.
|
|
1021
|
-
.accuracy = 75,
|
|
969
|
+
.accuracy = percent(75),
|
|
1022
970
|
.target = .Other,
|
|
1023
971
|
},
|
|
1024
972
|
// PetalDance
|
|
@@ -1026,17 +974,16 @@ pub const Move = enum(u8) {
|
|
|
1026
974
|
.effect = .Thrashing,
|
|
1027
975
|
.bp = 70,
|
|
1028
976
|
.type = .Grass,
|
|
1029
|
-
.
|
|
1030
|
-
.accuracy = 100,
|
|
977
|
+
.accuracy = percent(100),
|
|
1031
978
|
.target = .RandomFoe,
|
|
979
|
+
.extra = .{ .continuous = true },
|
|
1032
980
|
},
|
|
1033
981
|
// StringShot
|
|
1034
982
|
.{
|
|
1035
983
|
.effect = .SpeedDown1,
|
|
1036
984
|
.bp = 0,
|
|
1037
985
|
.type = .Bug,
|
|
1038
|
-
.
|
|
1039
|
-
.accuracy = 95,
|
|
986
|
+
.accuracy = percent(95),
|
|
1040
987
|
.target = .Foes,
|
|
1041
988
|
},
|
|
1042
989
|
// DragonRage
|
|
@@ -1044,8 +991,7 @@ pub const Move = enum(u8) {
|
|
|
1044
991
|
.effect = .FixedDamage,
|
|
1045
992
|
.bp = 0,
|
|
1046
993
|
.type = .Dragon,
|
|
1047
|
-
.
|
|
1048
|
-
.accuracy = 100,
|
|
994
|
+
.accuracy = percent(100),
|
|
1049
995
|
.target = .Other,
|
|
1050
996
|
},
|
|
1051
997
|
// FireSpin
|
|
@@ -1053,37 +999,34 @@ pub const Move = enum(u8) {
|
|
|
1053
999
|
.effect = .Binding,
|
|
1054
1000
|
.bp = 15,
|
|
1055
1001
|
.type = .Fire,
|
|
1056
|
-
.
|
|
1057
|
-
.accuracy = 70,
|
|
1002
|
+
.accuracy = percent(70),
|
|
1058
1003
|
.target = .Other,
|
|
1004
|
+
.extra = .{ .protocol = 3 },
|
|
1059
1005
|
},
|
|
1060
1006
|
// ThunderShock
|
|
1061
1007
|
.{
|
|
1062
1008
|
.effect = .ParalyzeChance,
|
|
1063
1009
|
.bp = 40,
|
|
1064
1010
|
.type = .Electric,
|
|
1065
|
-
.
|
|
1066
|
-
.accuracy = 100,
|
|
1011
|
+
.accuracy = percent(100),
|
|
1067
1012
|
.target = .Other,
|
|
1068
|
-
.chance =
|
|
1013
|
+
.chance = percent(10),
|
|
1069
1014
|
},
|
|
1070
1015
|
// Thunderbolt
|
|
1071
1016
|
.{
|
|
1072
1017
|
.effect = .ParalyzeChance,
|
|
1073
1018
|
.bp = 95,
|
|
1074
1019
|
.type = .Electric,
|
|
1075
|
-
.
|
|
1076
|
-
.accuracy = 100,
|
|
1020
|
+
.accuracy = percent(100),
|
|
1077
1021
|
.target = .Other,
|
|
1078
|
-
.chance =
|
|
1022
|
+
.chance = percent(10),
|
|
1079
1023
|
},
|
|
1080
1024
|
// ThunderWave
|
|
1081
1025
|
.{
|
|
1082
1026
|
.effect = .Paralyze,
|
|
1083
1027
|
.bp = 0,
|
|
1084
1028
|
.type = .Electric,
|
|
1085
|
-
.
|
|
1086
|
-
.accuracy = 100,
|
|
1029
|
+
.accuracy = percent(100),
|
|
1087
1030
|
.target = .Other,
|
|
1088
1031
|
},
|
|
1089
1032
|
// Thunder
|
|
@@ -1091,18 +1034,17 @@ pub const Move = enum(u8) {
|
|
|
1091
1034
|
.effect = .Thunder,
|
|
1092
1035
|
.bp = 120,
|
|
1093
1036
|
.type = .Electric,
|
|
1094
|
-
.
|
|
1095
|
-
.accuracy = 70,
|
|
1037
|
+
.accuracy = percent(70),
|
|
1096
1038
|
.target = .Other,
|
|
1097
|
-
.chance =
|
|
1039
|
+
.chance = percent(30),
|
|
1040
|
+
.extra = .{ .flying = true },
|
|
1098
1041
|
},
|
|
1099
1042
|
// RockThrow
|
|
1100
1043
|
.{
|
|
1101
1044
|
.effect = .None,
|
|
1102
1045
|
.bp = 50,
|
|
1103
1046
|
.type = .Rock,
|
|
1104
|
-
.
|
|
1105
|
-
.accuracy = 90,
|
|
1047
|
+
.accuracy = percent(90),
|
|
1106
1048
|
.target = .Other,
|
|
1107
1049
|
},
|
|
1108
1050
|
// Earthquake
|
|
@@ -1110,35 +1052,34 @@ pub const Move = enum(u8) {
|
|
|
1110
1052
|
.effect = .Earthquake,
|
|
1111
1053
|
.bp = 100,
|
|
1112
1054
|
.type = .Ground,
|
|
1113
|
-
.
|
|
1114
|
-
.accuracy = 100,
|
|
1055
|
+
.accuracy = percent(100),
|
|
1115
1056
|
.target = .AllOthers,
|
|
1057
|
+
.extra = .{ .underground = true },
|
|
1116
1058
|
},
|
|
1117
1059
|
// Fissure
|
|
1118
1060
|
.{
|
|
1119
1061
|
.effect = .OHKO,
|
|
1120
1062
|
.bp = 0,
|
|
1121
1063
|
.type = .Ground,
|
|
1122
|
-
.
|
|
1123
|
-
.accuracy = 30,
|
|
1064
|
+
.accuracy = percent(30),
|
|
1124
1065
|
.target = .Other,
|
|
1066
|
+
.extra = .{ .underground = true },
|
|
1125
1067
|
},
|
|
1126
1068
|
// Dig
|
|
1127
1069
|
.{
|
|
1128
|
-
.effect = .
|
|
1070
|
+
.effect = .FlyDig,
|
|
1129
1071
|
.bp = 60,
|
|
1130
1072
|
.type = .Ground,
|
|
1131
|
-
.
|
|
1132
|
-
.accuracy = 100,
|
|
1073
|
+
.accuracy = percent(100),
|
|
1133
1074
|
.target = .Other,
|
|
1075
|
+
.extra = .{ .sleep_talk = false },
|
|
1134
1076
|
},
|
|
1135
1077
|
// Toxic
|
|
1136
1078
|
.{
|
|
1137
1079
|
.effect = .Toxic,
|
|
1138
1080
|
.bp = 0,
|
|
1139
1081
|
.type = .Poison,
|
|
1140
|
-
.
|
|
1141
|
-
.accuracy = 85,
|
|
1082
|
+
.accuracy = percent(85),
|
|
1142
1083
|
.target = .Other,
|
|
1143
1084
|
},
|
|
1144
1085
|
// Confusion
|
|
@@ -1146,28 +1087,25 @@ pub const Move = enum(u8) {
|
|
|
1146
1087
|
.effect = .ConfusionChance,
|
|
1147
1088
|
.bp = 50,
|
|
1148
1089
|
.type = .Psychic,
|
|
1149
|
-
.
|
|
1150
|
-
.accuracy = 100,
|
|
1090
|
+
.accuracy = percent(100),
|
|
1151
1091
|
.target = .Other,
|
|
1152
|
-
.chance =
|
|
1092
|
+
.chance = percent(10),
|
|
1153
1093
|
},
|
|
1154
1094
|
// Psychic
|
|
1155
1095
|
.{
|
|
1156
1096
|
.effect = .SpDefDownChance,
|
|
1157
1097
|
.bp = 90,
|
|
1158
1098
|
.type = .Psychic,
|
|
1159
|
-
.
|
|
1160
|
-
.accuracy = 100,
|
|
1099
|
+
.accuracy = percent(100),
|
|
1161
1100
|
.target = .Other,
|
|
1162
|
-
.chance =
|
|
1101
|
+
.chance = percent(10),
|
|
1163
1102
|
},
|
|
1164
1103
|
// Hypnosis
|
|
1165
1104
|
.{
|
|
1166
1105
|
.effect = .Sleep,
|
|
1167
1106
|
.bp = 0,
|
|
1168
1107
|
.type = .Psychic,
|
|
1169
|
-
.
|
|
1170
|
-
.accuracy = 60,
|
|
1108
|
+
.accuracy = percent(60),
|
|
1171
1109
|
.target = .Other,
|
|
1172
1110
|
},
|
|
1173
1111
|
// Meditate
|
|
@@ -1175,8 +1113,7 @@ pub const Move = enum(u8) {
|
|
|
1175
1113
|
.effect = .AttackUp1,
|
|
1176
1114
|
.bp = 0,
|
|
1177
1115
|
.type = .Psychic,
|
|
1178
|
-
.
|
|
1179
|
-
.accuracy = 100,
|
|
1116
|
+
.accuracy = percent(100),
|
|
1180
1117
|
.target = .Self,
|
|
1181
1118
|
},
|
|
1182
1119
|
// Agility
|
|
@@ -1184,8 +1121,7 @@ pub const Move = enum(u8) {
|
|
|
1184
1121
|
.effect = .SpeedUp2,
|
|
1185
1122
|
.bp = 0,
|
|
1186
1123
|
.type = .Psychic,
|
|
1187
|
-
.
|
|
1188
|
-
.accuracy = 100,
|
|
1124
|
+
.accuracy = percent(100),
|
|
1189
1125
|
.target = .Self,
|
|
1190
1126
|
},
|
|
1191
1127
|
// QuickAttack
|
|
@@ -1193,8 +1129,7 @@ pub const Move = enum(u8) {
|
|
|
1193
1129
|
.effect = .Priority,
|
|
1194
1130
|
.bp = 40,
|
|
1195
1131
|
.type = .Normal,
|
|
1196
|
-
.
|
|
1197
|
-
.accuracy = 100,
|
|
1132
|
+
.accuracy = percent(100),
|
|
1198
1133
|
.target = .Other,
|
|
1199
1134
|
.priority = 1,
|
|
1200
1135
|
},
|
|
@@ -1203,8 +1138,7 @@ pub const Move = enum(u8) {
|
|
|
1203
1138
|
.effect = .Rage,
|
|
1204
1139
|
.bp = 20,
|
|
1205
1140
|
.type = .Normal,
|
|
1206
|
-
.
|
|
1207
|
-
.accuracy = 100,
|
|
1141
|
+
.accuracy = percent(100),
|
|
1208
1142
|
.target = .Other,
|
|
1209
1143
|
},
|
|
1210
1144
|
// Teleport
|
|
@@ -1212,8 +1146,7 @@ pub const Move = enum(u8) {
|
|
|
1212
1146
|
.effect = .Teleport,
|
|
1213
1147
|
.bp = 0,
|
|
1214
1148
|
.type = .Psychic,
|
|
1215
|
-
.
|
|
1216
|
-
.accuracy = 100,
|
|
1149
|
+
.accuracy = percent(100),
|
|
1217
1150
|
.target = .Self,
|
|
1218
1151
|
},
|
|
1219
1152
|
// NightShade
|
|
@@ -1221,8 +1154,7 @@ pub const Move = enum(u8) {
|
|
|
1221
1154
|
.effect = .LevelDamage,
|
|
1222
1155
|
.bp = 0,
|
|
1223
1156
|
.type = .Ghost,
|
|
1224
|
-
.
|
|
1225
|
-
.accuracy = 100,
|
|
1157
|
+
.accuracy = percent(100),
|
|
1226
1158
|
.target = .Other,
|
|
1227
1159
|
},
|
|
1228
1160
|
// Mimic
|
|
@@ -1230,17 +1162,16 @@ pub const Move = enum(u8) {
|
|
|
1230
1162
|
.effect = .Mimic,
|
|
1231
1163
|
.bp = 0,
|
|
1232
1164
|
.type = .Normal,
|
|
1233
|
-
.
|
|
1234
|
-
.accuracy = 100,
|
|
1165
|
+
.accuracy = percent(100),
|
|
1235
1166
|
.target = .Other,
|
|
1167
|
+
.extra = .{ .metronome = false },
|
|
1236
1168
|
},
|
|
1237
1169
|
// Screech
|
|
1238
1170
|
.{
|
|
1239
1171
|
.effect = .DefenseDown2,
|
|
1240
1172
|
.bp = 0,
|
|
1241
1173
|
.type = .Normal,
|
|
1242
|
-
.
|
|
1243
|
-
.accuracy = 85,
|
|
1174
|
+
.accuracy = percent(85),
|
|
1244
1175
|
.target = .Other,
|
|
1245
1176
|
},
|
|
1246
1177
|
// DoubleTeam
|
|
@@ -1248,8 +1179,7 @@ pub const Move = enum(u8) {
|
|
|
1248
1179
|
.effect = .EvasionUp1,
|
|
1249
1180
|
.bp = 0,
|
|
1250
1181
|
.type = .Normal,
|
|
1251
|
-
.
|
|
1252
|
-
.accuracy = 100,
|
|
1182
|
+
.accuracy = percent(100),
|
|
1253
1183
|
.target = .Self,
|
|
1254
1184
|
},
|
|
1255
1185
|
// Recover
|
|
@@ -1257,8 +1187,7 @@ pub const Move = enum(u8) {
|
|
|
1257
1187
|
.effect = .Heal,
|
|
1258
1188
|
.bp = 0,
|
|
1259
1189
|
.type = .Normal,
|
|
1260
|
-
.
|
|
1261
|
-
.accuracy = 100,
|
|
1190
|
+
.accuracy = percent(100),
|
|
1262
1191
|
.target = .Self,
|
|
1263
1192
|
},
|
|
1264
1193
|
// Harden
|
|
@@ -1266,8 +1195,7 @@ pub const Move = enum(u8) {
|
|
|
1266
1195
|
.effect = .DefenseUp1,
|
|
1267
1196
|
.bp = 0,
|
|
1268
1197
|
.type = .Normal,
|
|
1269
|
-
.
|
|
1270
|
-
.accuracy = 100,
|
|
1198
|
+
.accuracy = percent(100),
|
|
1271
1199
|
.target = .Self,
|
|
1272
1200
|
},
|
|
1273
1201
|
// Minimize
|
|
@@ -1275,8 +1203,7 @@ pub const Move = enum(u8) {
|
|
|
1275
1203
|
.effect = .EvasionUp1,
|
|
1276
1204
|
.bp = 0,
|
|
1277
1205
|
.type = .Normal,
|
|
1278
|
-
.
|
|
1279
|
-
.accuracy = 100,
|
|
1206
|
+
.accuracy = percent(100),
|
|
1280
1207
|
.target = .Self,
|
|
1281
1208
|
},
|
|
1282
1209
|
// Smokescreen
|
|
@@ -1284,8 +1211,7 @@ pub const Move = enum(u8) {
|
|
|
1284
1211
|
.effect = .AccuracyDown1,
|
|
1285
1212
|
.bp = 0,
|
|
1286
1213
|
.type = .Normal,
|
|
1287
|
-
.
|
|
1288
|
-
.accuracy = 100,
|
|
1214
|
+
.accuracy = percent(100),
|
|
1289
1215
|
.target = .Other,
|
|
1290
1216
|
},
|
|
1291
1217
|
// ConfuseRay
|
|
@@ -1293,8 +1219,7 @@ pub const Move = enum(u8) {
|
|
|
1293
1219
|
.effect = .Confusion,
|
|
1294
1220
|
.bp = 0,
|
|
1295
1221
|
.type = .Ghost,
|
|
1296
|
-
.
|
|
1297
|
-
.accuracy = 100,
|
|
1222
|
+
.accuracy = percent(100),
|
|
1298
1223
|
.target = .Other,
|
|
1299
1224
|
},
|
|
1300
1225
|
// Withdraw
|
|
@@ -1302,8 +1227,7 @@ pub const Move = enum(u8) {
|
|
|
1302
1227
|
.effect = .DefenseUp1,
|
|
1303
1228
|
.bp = 0,
|
|
1304
1229
|
.type = .Water,
|
|
1305
|
-
.
|
|
1306
|
-
.accuracy = 100,
|
|
1230
|
+
.accuracy = percent(100),
|
|
1307
1231
|
.target = .Self,
|
|
1308
1232
|
},
|
|
1309
1233
|
// DefenseCurl
|
|
@@ -1311,8 +1235,7 @@ pub const Move = enum(u8) {
|
|
|
1311
1235
|
.effect = .DefenseCurl,
|
|
1312
1236
|
.bp = 0,
|
|
1313
1237
|
.type = .Normal,
|
|
1314
|
-
.
|
|
1315
|
-
.accuracy = 100,
|
|
1238
|
+
.accuracy = percent(100),
|
|
1316
1239
|
.target = .Self,
|
|
1317
1240
|
},
|
|
1318
1241
|
// Barrier
|
|
@@ -1320,8 +1243,7 @@ pub const Move = enum(u8) {
|
|
|
1320
1243
|
.effect = .DefenseUp2,
|
|
1321
1244
|
.bp = 0,
|
|
1322
1245
|
.type = .Psychic,
|
|
1323
|
-
.
|
|
1324
|
-
.accuracy = 100,
|
|
1246
|
+
.accuracy = percent(100),
|
|
1325
1247
|
.target = .Self,
|
|
1326
1248
|
},
|
|
1327
1249
|
// LightScreen
|
|
@@ -1329,8 +1251,7 @@ pub const Move = enum(u8) {
|
|
|
1329
1251
|
.effect = .LightScreen,
|
|
1330
1252
|
.bp = 0,
|
|
1331
1253
|
.type = .Psychic,
|
|
1332
|
-
.
|
|
1333
|
-
.accuracy = 100,
|
|
1254
|
+
.accuracy = percent(100),
|
|
1334
1255
|
.target = .AllySide,
|
|
1335
1256
|
},
|
|
1336
1257
|
// Haze
|
|
@@ -1338,8 +1259,7 @@ pub const Move = enum(u8) {
|
|
|
1338
1259
|
.effect = .Haze,
|
|
1339
1260
|
.bp = 0,
|
|
1340
1261
|
.type = .Ice,
|
|
1341
|
-
.
|
|
1342
|
-
.accuracy = 100,
|
|
1262
|
+
.accuracy = percent(100),
|
|
1343
1263
|
.target = .All,
|
|
1344
1264
|
},
|
|
1345
1265
|
// Reflect
|
|
@@ -1347,8 +1267,7 @@ pub const Move = enum(u8) {
|
|
|
1347
1267
|
.effect = .Reflect,
|
|
1348
1268
|
.bp = 0,
|
|
1349
1269
|
.type = .Psychic,
|
|
1350
|
-
.
|
|
1351
|
-
.accuracy = 100,
|
|
1270
|
+
.accuracy = percent(100),
|
|
1352
1271
|
.target = .AllySide,
|
|
1353
1272
|
},
|
|
1354
1273
|
// FocusEnergy
|
|
@@ -1356,8 +1275,7 @@ pub const Move = enum(u8) {
|
|
|
1356
1275
|
.effect = .FocusEnergy,
|
|
1357
1276
|
.bp = 0,
|
|
1358
1277
|
.type = .Normal,
|
|
1359
|
-
.
|
|
1360
|
-
.accuracy = 100,
|
|
1278
|
+
.accuracy = percent(100),
|
|
1361
1279
|
.target = .Self,
|
|
1362
1280
|
},
|
|
1363
1281
|
// Bide
|
|
@@ -1365,26 +1283,25 @@ pub const Move = enum(u8) {
|
|
|
1365
1283
|
.effect = .Bide,
|
|
1366
1284
|
.bp = 0,
|
|
1367
1285
|
.type = .Normal,
|
|
1368
|
-
.
|
|
1369
|
-
.accuracy = 100,
|
|
1286
|
+
.accuracy = percent(100),
|
|
1370
1287
|
.target = .Self,
|
|
1288
|
+
.extra = .{ .sleep_talk = false, .continuous = true },
|
|
1371
1289
|
},
|
|
1372
1290
|
// Metronome
|
|
1373
1291
|
.{
|
|
1374
1292
|
.effect = .Metronome,
|
|
1375
1293
|
.bp = 0,
|
|
1376
1294
|
.type = .Normal,
|
|
1377
|
-
.
|
|
1378
|
-
.accuracy = 100,
|
|
1295
|
+
.accuracy = percent(100),
|
|
1379
1296
|
.target = .Self,
|
|
1297
|
+
.extra = .{ .metronome = false },
|
|
1380
1298
|
},
|
|
1381
1299
|
// MirrorMove
|
|
1382
1300
|
.{
|
|
1383
1301
|
.effect = .MirrorMove,
|
|
1384
1302
|
.bp = 0,
|
|
1385
1303
|
.type = .Flying,
|
|
1386
|
-
.
|
|
1387
|
-
.accuracy = 100,
|
|
1304
|
+
.accuracy = percent(100),
|
|
1388
1305
|
.target = .Self,
|
|
1389
1306
|
},
|
|
1390
1307
|
// SelfDestruct
|
|
@@ -1392,8 +1309,7 @@ pub const Move = enum(u8) {
|
|
|
1392
1309
|
.effect = .Explode,
|
|
1393
1310
|
.bp = 200,
|
|
1394
1311
|
.type = .Normal,
|
|
1395
|
-
.
|
|
1396
|
-
.accuracy = 100,
|
|
1312
|
+
.accuracy = percent(100),
|
|
1397
1313
|
.target = .AllOthers,
|
|
1398
1314
|
},
|
|
1399
1315
|
// EggBomb
|
|
@@ -1401,8 +1317,7 @@ pub const Move = enum(u8) {
|
|
|
1401
1317
|
.effect = .None,
|
|
1402
1318
|
.bp = 100,
|
|
1403
1319
|
.type = .Normal,
|
|
1404
|
-
.
|
|
1405
|
-
.accuracy = 75,
|
|
1320
|
+
.accuracy = percent(75),
|
|
1406
1321
|
.target = .Other,
|
|
1407
1322
|
},
|
|
1408
1323
|
// Lick
|
|
@@ -1410,58 +1325,52 @@ pub const Move = enum(u8) {
|
|
|
1410
1325
|
.effect = .ParalyzeChance,
|
|
1411
1326
|
.bp = 20,
|
|
1412
1327
|
.type = .Ghost,
|
|
1413
|
-
.
|
|
1414
|
-
.accuracy = 100,
|
|
1328
|
+
.accuracy = percent(100),
|
|
1415
1329
|
.target = .Other,
|
|
1416
|
-
.chance =
|
|
1330
|
+
.chance = percent(30),
|
|
1417
1331
|
},
|
|
1418
1332
|
// Smog
|
|
1419
1333
|
.{
|
|
1420
1334
|
.effect = .PoisonChance,
|
|
1421
1335
|
.bp = 20,
|
|
1422
1336
|
.type = .Poison,
|
|
1423
|
-
.
|
|
1424
|
-
.accuracy = 70,
|
|
1337
|
+
.accuracy = percent(70),
|
|
1425
1338
|
.target = .Other,
|
|
1426
|
-
.chance =
|
|
1339
|
+
.chance = percent(40),
|
|
1427
1340
|
},
|
|
1428
1341
|
// Sludge
|
|
1429
1342
|
.{
|
|
1430
1343
|
.effect = .PoisonChance,
|
|
1431
1344
|
.bp = 65,
|
|
1432
1345
|
.type = .Poison,
|
|
1433
|
-
.
|
|
1434
|
-
.accuracy = 100,
|
|
1346
|
+
.accuracy = percent(100),
|
|
1435
1347
|
.target = .Other,
|
|
1436
|
-
.chance =
|
|
1348
|
+
.chance = percent(30),
|
|
1437
1349
|
},
|
|
1438
1350
|
// BoneClub
|
|
1439
1351
|
.{
|
|
1440
1352
|
.effect = .FlinchChance,
|
|
1441
1353
|
.bp = 65,
|
|
1442
1354
|
.type = .Ground,
|
|
1443
|
-
.
|
|
1444
|
-
.accuracy = 85,
|
|
1355
|
+
.accuracy = percent(85),
|
|
1445
1356
|
.target = .Other,
|
|
1446
|
-
.chance =
|
|
1357
|
+
.chance = percent(10),
|
|
1447
1358
|
},
|
|
1448
1359
|
// FireBlast
|
|
1449
1360
|
.{
|
|
1450
1361
|
.effect = .BurnChance,
|
|
1451
1362
|
.bp = 120,
|
|
1452
1363
|
.type = .Fire,
|
|
1453
|
-
.
|
|
1454
|
-
.accuracy = 85,
|
|
1364
|
+
.accuracy = percent(85),
|
|
1455
1365
|
.target = .Other,
|
|
1456
|
-
.chance =
|
|
1366
|
+
.chance = percent(10),
|
|
1457
1367
|
},
|
|
1458
1368
|
// Waterfall
|
|
1459
1369
|
.{
|
|
1460
1370
|
.effect = .None,
|
|
1461
1371
|
.bp = 80,
|
|
1462
1372
|
.type = .Water,
|
|
1463
|
-
.
|
|
1464
|
-
.accuracy = 100,
|
|
1373
|
+
.accuracy = percent(100),
|
|
1465
1374
|
.target = .Other,
|
|
1466
1375
|
},
|
|
1467
1376
|
// Clamp
|
|
@@ -1469,17 +1378,16 @@ pub const Move = enum(u8) {
|
|
|
1469
1378
|
.effect = .Binding,
|
|
1470
1379
|
.bp = 35,
|
|
1471
1380
|
.type = .Water,
|
|
1472
|
-
.
|
|
1473
|
-
.accuracy = 75,
|
|
1381
|
+
.accuracy = percent(75),
|
|
1474
1382
|
.target = .Other,
|
|
1383
|
+
.extra = .{ .protocol = 4 },
|
|
1475
1384
|
},
|
|
1476
1385
|
// Swift
|
|
1477
1386
|
.{
|
|
1478
1387
|
.effect = .AlwaysHit,
|
|
1479
1388
|
.bp = 60,
|
|
1480
1389
|
.type = .Normal,
|
|
1481
|
-
.
|
|
1482
|
-
.accuracy = 100,
|
|
1390
|
+
.accuracy = percent(100),
|
|
1483
1391
|
.target = .Foes,
|
|
1484
1392
|
},
|
|
1485
1393
|
// SkullBash
|
|
@@ -1487,17 +1395,16 @@ pub const Move = enum(u8) {
|
|
|
1487
1395
|
.effect = .SkullBash,
|
|
1488
1396
|
.bp = 100,
|
|
1489
1397
|
.type = .Normal,
|
|
1490
|
-
.
|
|
1491
|
-
.accuracy = 100,
|
|
1398
|
+
.accuracy = percent(100),
|
|
1492
1399
|
.target = .Other,
|
|
1400
|
+
.extra = .{ .sleep_talk = false, .continuous = true },
|
|
1493
1401
|
},
|
|
1494
1402
|
// SpikeCannon
|
|
1495
1403
|
.{
|
|
1496
1404
|
.effect = .MultiHit,
|
|
1497
1405
|
.bp = 20,
|
|
1498
1406
|
.type = .Normal,
|
|
1499
|
-
.
|
|
1500
|
-
.accuracy = 100,
|
|
1407
|
+
.accuracy = percent(100),
|
|
1501
1408
|
.target = .Other,
|
|
1502
1409
|
},
|
|
1503
1410
|
// Constrict
|
|
@@ -1505,18 +1412,16 @@ pub const Move = enum(u8) {
|
|
|
1505
1412
|
.effect = .SpeedDownChance,
|
|
1506
1413
|
.bp = 10,
|
|
1507
1414
|
.type = .Normal,
|
|
1508
|
-
.
|
|
1509
|
-
.accuracy = 100,
|
|
1415
|
+
.accuracy = percent(100),
|
|
1510
1416
|
.target = .Other,
|
|
1511
|
-
.chance =
|
|
1417
|
+
.chance = percent(10),
|
|
1512
1418
|
},
|
|
1513
1419
|
// Amnesia
|
|
1514
1420
|
.{
|
|
1515
1421
|
.effect = .SpDefUp2,
|
|
1516
1422
|
.bp = 0,
|
|
1517
1423
|
.type = .Psychic,
|
|
1518
|
-
.
|
|
1519
|
-
.accuracy = 100,
|
|
1424
|
+
.accuracy = percent(100),
|
|
1520
1425
|
.target = .Self,
|
|
1521
1426
|
},
|
|
1522
1427
|
// Kinesis
|
|
@@ -1524,8 +1429,7 @@ pub const Move = enum(u8) {
|
|
|
1524
1429
|
.effect = .AccuracyDown1,
|
|
1525
1430
|
.bp = 0,
|
|
1526
1431
|
.type = .Psychic,
|
|
1527
|
-
.
|
|
1528
|
-
.accuracy = 80,
|
|
1432
|
+
.accuracy = percent(80),
|
|
1529
1433
|
.target = .Other,
|
|
1530
1434
|
},
|
|
1531
1435
|
// SoftBoiled
|
|
@@ -1533,8 +1437,7 @@ pub const Move = enum(u8) {
|
|
|
1533
1437
|
.effect = .Heal,
|
|
1534
1438
|
.bp = 0,
|
|
1535
1439
|
.type = .Normal,
|
|
1536
|
-
.
|
|
1537
|
-
.accuracy = 100,
|
|
1440
|
+
.accuracy = percent(100),
|
|
1538
1441
|
.target = .Self,
|
|
1539
1442
|
},
|
|
1540
1443
|
// HighJumpKick
|
|
@@ -1542,8 +1445,7 @@ pub const Move = enum(u8) {
|
|
|
1542
1445
|
.effect = .JumpKick,
|
|
1543
1446
|
.bp = 85,
|
|
1544
1447
|
.type = .Fighting,
|
|
1545
|
-
.
|
|
1546
|
-
.accuracy = 90,
|
|
1448
|
+
.accuracy = percent(90),
|
|
1547
1449
|
.target = .Other,
|
|
1548
1450
|
},
|
|
1549
1451
|
// Glare
|
|
@@ -1551,8 +1453,7 @@ pub const Move = enum(u8) {
|
|
|
1551
1453
|
.effect = .Paralyze,
|
|
1552
1454
|
.bp = 0,
|
|
1553
1455
|
.type = .Normal,
|
|
1554
|
-
.
|
|
1555
|
-
.accuracy = 75,
|
|
1456
|
+
.accuracy = percent(75),
|
|
1556
1457
|
.target = .Other,
|
|
1557
1458
|
},
|
|
1558
1459
|
// DreamEater
|
|
@@ -1560,8 +1461,7 @@ pub const Move = enum(u8) {
|
|
|
1560
1461
|
.effect = .DreamEater,
|
|
1561
1462
|
.bp = 100,
|
|
1562
1463
|
.type = .Psychic,
|
|
1563
|
-
.
|
|
1564
|
-
.accuracy = 100,
|
|
1464
|
+
.accuracy = percent(100),
|
|
1565
1465
|
.target = .Other,
|
|
1566
1466
|
},
|
|
1567
1467
|
// PoisonGas
|
|
@@ -1569,8 +1469,7 @@ pub const Move = enum(u8) {
|
|
|
1569
1469
|
.effect = .Poison,
|
|
1570
1470
|
.bp = 0,
|
|
1571
1471
|
.type = .Poison,
|
|
1572
|
-
.
|
|
1573
|
-
.accuracy = 55,
|
|
1472
|
+
.accuracy = percent(55),
|
|
1574
1473
|
.target = .Other,
|
|
1575
1474
|
},
|
|
1576
1475
|
// Barrage
|
|
@@ -1578,8 +1477,7 @@ pub const Move = enum(u8) {
|
|
|
1578
1477
|
.effect = .MultiHit,
|
|
1579
1478
|
.bp = 15,
|
|
1580
1479
|
.type = .Normal,
|
|
1581
|
-
.
|
|
1582
|
-
.accuracy = 85,
|
|
1480
|
+
.accuracy = percent(85),
|
|
1583
1481
|
.target = .Other,
|
|
1584
1482
|
},
|
|
1585
1483
|
// LeechLife
|
|
@@ -1587,8 +1485,7 @@ pub const Move = enum(u8) {
|
|
|
1587
1485
|
.effect = .DrainHP,
|
|
1588
1486
|
.bp = 20,
|
|
1589
1487
|
.type = .Bug,
|
|
1590
|
-
.
|
|
1591
|
-
.accuracy = 100,
|
|
1488
|
+
.accuracy = percent(100),
|
|
1592
1489
|
.target = .Other,
|
|
1593
1490
|
},
|
|
1594
1491
|
// LovelyKiss
|
|
@@ -1596,8 +1493,7 @@ pub const Move = enum(u8) {
|
|
|
1596
1493
|
.effect = .Sleep,
|
|
1597
1494
|
.bp = 0,
|
|
1598
1495
|
.type = .Normal,
|
|
1599
|
-
.
|
|
1600
|
-
.accuracy = 75,
|
|
1496
|
+
.accuracy = percent(75),
|
|
1601
1497
|
.target = .Other,
|
|
1602
1498
|
},
|
|
1603
1499
|
// SkyAttack
|
|
@@ -1605,17 +1501,16 @@ pub const Move = enum(u8) {
|
|
|
1605
1501
|
.effect = .SkyAttack,
|
|
1606
1502
|
.bp = 140,
|
|
1607
1503
|
.type = .Flying,
|
|
1608
|
-
.
|
|
1609
|
-
.accuracy = 90,
|
|
1504
|
+
.accuracy = percent(90),
|
|
1610
1505
|
.target = .Any,
|
|
1506
|
+
.extra = .{ .sleep_talk = false, .continuous = true },
|
|
1611
1507
|
},
|
|
1612
1508
|
// Transform
|
|
1613
1509
|
.{
|
|
1614
1510
|
.effect = .Transform,
|
|
1615
1511
|
.bp = 0,
|
|
1616
1512
|
.type = .Normal,
|
|
1617
|
-
.
|
|
1618
|
-
.accuracy = 100,
|
|
1513
|
+
.accuracy = percent(100),
|
|
1619
1514
|
.target = .Other,
|
|
1620
1515
|
},
|
|
1621
1516
|
// Bubble
|
|
@@ -1623,28 +1518,25 @@ pub const Move = enum(u8) {
|
|
|
1623
1518
|
.effect = .SpeedDownChance,
|
|
1624
1519
|
.bp = 20,
|
|
1625
1520
|
.type = .Water,
|
|
1626
|
-
.
|
|
1627
|
-
.accuracy = 100,
|
|
1521
|
+
.accuracy = percent(100),
|
|
1628
1522
|
.target = .Foes,
|
|
1629
|
-
.chance =
|
|
1523
|
+
.chance = percent(10),
|
|
1630
1524
|
},
|
|
1631
1525
|
// DizzyPunch
|
|
1632
1526
|
.{
|
|
1633
1527
|
.effect = .ConfusionChance,
|
|
1634
1528
|
.bp = 70,
|
|
1635
1529
|
.type = .Normal,
|
|
1636
|
-
.
|
|
1637
|
-
.accuracy = 100,
|
|
1530
|
+
.accuracy = percent(100),
|
|
1638
1531
|
.target = .Other,
|
|
1639
|
-
.chance =
|
|
1532
|
+
.chance = percent(20),
|
|
1640
1533
|
},
|
|
1641
1534
|
// Spore
|
|
1642
1535
|
.{
|
|
1643
1536
|
.effect = .Sleep,
|
|
1644
1537
|
.bp = 0,
|
|
1645
1538
|
.type = .Grass,
|
|
1646
|
-
.
|
|
1647
|
-
.accuracy = 100,
|
|
1539
|
+
.accuracy = percent(100),
|
|
1648
1540
|
.target = .Other,
|
|
1649
1541
|
},
|
|
1650
1542
|
// Flash
|
|
@@ -1652,8 +1544,7 @@ pub const Move = enum(u8) {
|
|
|
1652
1544
|
.effect = .AccuracyDown1,
|
|
1653
1545
|
.bp = 0,
|
|
1654
1546
|
.type = .Normal,
|
|
1655
|
-
.
|
|
1656
|
-
.accuracy = 70,
|
|
1547
|
+
.accuracy = percent(70),
|
|
1657
1548
|
.target = .Other,
|
|
1658
1549
|
},
|
|
1659
1550
|
// Psywave
|
|
@@ -1661,8 +1552,7 @@ pub const Move = enum(u8) {
|
|
|
1661
1552
|
.effect = .Psywave,
|
|
1662
1553
|
.bp = 0,
|
|
1663
1554
|
.type = .Psychic,
|
|
1664
|
-
.
|
|
1665
|
-
.accuracy = 80,
|
|
1555
|
+
.accuracy = percent(80),
|
|
1666
1556
|
.target = .Other,
|
|
1667
1557
|
},
|
|
1668
1558
|
// Splash
|
|
@@ -1670,8 +1560,7 @@ pub const Move = enum(u8) {
|
|
|
1670
1560
|
.effect = .Splash,
|
|
1671
1561
|
.bp = 0,
|
|
1672
1562
|
.type = .Normal,
|
|
1673
|
-
.
|
|
1674
|
-
.accuracy = 100,
|
|
1563
|
+
.accuracy = percent(100),
|
|
1675
1564
|
.target = .Self,
|
|
1676
1565
|
},
|
|
1677
1566
|
// AcidArmor
|
|
@@ -1679,8 +1568,7 @@ pub const Move = enum(u8) {
|
|
|
1679
1568
|
.effect = .DefenseUp2,
|
|
1680
1569
|
.bp = 0,
|
|
1681
1570
|
.type = .Poison,
|
|
1682
|
-
.
|
|
1683
|
-
.accuracy = 100,
|
|
1571
|
+
.accuracy = percent(100),
|
|
1684
1572
|
.target = .Self,
|
|
1685
1573
|
},
|
|
1686
1574
|
// Crabhammer
|
|
@@ -1688,8 +1576,7 @@ pub const Move = enum(u8) {
|
|
|
1688
1576
|
.effect = .HighCritical,
|
|
1689
1577
|
.bp = 90,
|
|
1690
1578
|
.type = .Water,
|
|
1691
|
-
.
|
|
1692
|
-
.accuracy = 85,
|
|
1579
|
+
.accuracy = percent(85),
|
|
1693
1580
|
.target = .Other,
|
|
1694
1581
|
},
|
|
1695
1582
|
// Explosion
|
|
@@ -1697,8 +1584,7 @@ pub const Move = enum(u8) {
|
|
|
1697
1584
|
.effect = .Explode,
|
|
1698
1585
|
.bp = 250,
|
|
1699
1586
|
.type = .Normal,
|
|
1700
|
-
.
|
|
1701
|
-
.accuracy = 100,
|
|
1587
|
+
.accuracy = percent(100),
|
|
1702
1588
|
.target = .AllOthers,
|
|
1703
1589
|
},
|
|
1704
1590
|
// FurySwipes
|
|
@@ -1706,8 +1592,7 @@ pub const Move = enum(u8) {
|
|
|
1706
1592
|
.effect = .MultiHit,
|
|
1707
1593
|
.bp = 18,
|
|
1708
1594
|
.type = .Normal,
|
|
1709
|
-
.
|
|
1710
|
-
.accuracy = 80,
|
|
1595
|
+
.accuracy = percent(80),
|
|
1711
1596
|
.target = .Other,
|
|
1712
1597
|
},
|
|
1713
1598
|
// Bonemerang
|
|
@@ -1715,8 +1600,7 @@ pub const Move = enum(u8) {
|
|
|
1715
1600
|
.effect = .DoubleHit,
|
|
1716
1601
|
.bp = 50,
|
|
1717
1602
|
.type = .Ground,
|
|
1718
|
-
.
|
|
1719
|
-
.accuracy = 90,
|
|
1603
|
+
.accuracy = percent(90),
|
|
1720
1604
|
.target = .Other,
|
|
1721
1605
|
},
|
|
1722
1606
|
// Rest
|
|
@@ -1724,8 +1608,7 @@ pub const Move = enum(u8) {
|
|
|
1724
1608
|
.effect = .Heal,
|
|
1725
1609
|
.bp = 0,
|
|
1726
1610
|
.type = .Psychic,
|
|
1727
|
-
.
|
|
1728
|
-
.accuracy = 100,
|
|
1611
|
+
.accuracy = percent(100),
|
|
1729
1612
|
.target = .Self,
|
|
1730
1613
|
},
|
|
1731
1614
|
// RockSlide
|
|
@@ -1733,28 +1616,25 @@ pub const Move = enum(u8) {
|
|
|
1733
1616
|
.effect = .FlinchChance,
|
|
1734
1617
|
.bp = 75,
|
|
1735
1618
|
.type = .Rock,
|
|
1736
|
-
.
|
|
1737
|
-
.accuracy = 90,
|
|
1619
|
+
.accuracy = percent(90),
|
|
1738
1620
|
.target = .Foes,
|
|
1739
|
-
.chance =
|
|
1621
|
+
.chance = percent(30),
|
|
1740
1622
|
},
|
|
1741
1623
|
// HyperFang
|
|
1742
1624
|
.{
|
|
1743
1625
|
.effect = .FlinchChance,
|
|
1744
1626
|
.bp = 80,
|
|
1745
1627
|
.type = .Normal,
|
|
1746
|
-
.
|
|
1747
|
-
.accuracy = 90,
|
|
1628
|
+
.accuracy = percent(90),
|
|
1748
1629
|
.target = .Other,
|
|
1749
|
-
.chance =
|
|
1630
|
+
.chance = percent(10),
|
|
1750
1631
|
},
|
|
1751
1632
|
// Sharpen
|
|
1752
1633
|
.{
|
|
1753
1634
|
.effect = .AttackUp1,
|
|
1754
1635
|
.bp = 0,
|
|
1755
1636
|
.type = .Normal,
|
|
1756
|
-
.
|
|
1757
|
-
.accuracy = 100,
|
|
1637
|
+
.accuracy = percent(100),
|
|
1758
1638
|
.target = .Self,
|
|
1759
1639
|
},
|
|
1760
1640
|
// Conversion
|
|
@@ -1762,8 +1642,7 @@ pub const Move = enum(u8) {
|
|
|
1762
1642
|
.effect = .Conversion,
|
|
1763
1643
|
.bp = 0,
|
|
1764
1644
|
.type = .Normal,
|
|
1765
|
-
.
|
|
1766
|
-
.accuracy = 100,
|
|
1645
|
+
.accuracy = percent(100),
|
|
1767
1646
|
.target = .Self,
|
|
1768
1647
|
},
|
|
1769
1648
|
// TriAttack
|
|
@@ -1771,18 +1650,16 @@ pub const Move = enum(u8) {
|
|
|
1771
1650
|
.effect = .TriAttack,
|
|
1772
1651
|
.bp = 80,
|
|
1773
1652
|
.type = .Normal,
|
|
1774
|
-
.
|
|
1775
|
-
.accuracy = 100,
|
|
1653
|
+
.accuracy = percent(100),
|
|
1776
1654
|
.target = .Other,
|
|
1777
|
-
.chance =
|
|
1655
|
+
.chance = percent(20),
|
|
1778
1656
|
},
|
|
1779
1657
|
// SuperFang
|
|
1780
1658
|
.{
|
|
1781
1659
|
.effect = .SuperFang,
|
|
1782
1660
|
.bp = 0,
|
|
1783
1661
|
.type = .Normal,
|
|
1784
|
-
.
|
|
1785
|
-
.accuracy = 90,
|
|
1662
|
+
.accuracy = percent(90),
|
|
1786
1663
|
.target = .Other,
|
|
1787
1664
|
},
|
|
1788
1665
|
// Slash
|
|
@@ -1790,8 +1667,7 @@ pub const Move = enum(u8) {
|
|
|
1790
1667
|
.effect = .HighCritical,
|
|
1791
1668
|
.bp = 70,
|
|
1792
1669
|
.type = .Normal,
|
|
1793
|
-
.
|
|
1794
|
-
.accuracy = 100,
|
|
1670
|
+
.accuracy = percent(100),
|
|
1795
1671
|
.target = .Other,
|
|
1796
1672
|
},
|
|
1797
1673
|
// Substitute
|
|
@@ -1799,8 +1675,7 @@ pub const Move = enum(u8) {
|
|
|
1799
1675
|
.effect = .Substitute,
|
|
1800
1676
|
.bp = 0,
|
|
1801
1677
|
.type = .Normal,
|
|
1802
|
-
.
|
|
1803
|
-
.accuracy = 100,
|
|
1678
|
+
.accuracy = percent(100),
|
|
1804
1679
|
.target = .Self,
|
|
1805
1680
|
},
|
|
1806
1681
|
// Struggle
|
|
@@ -1808,26 +1683,25 @@ pub const Move = enum(u8) {
|
|
|
1808
1683
|
.effect = .Recoil,
|
|
1809
1684
|
.bp = 50,
|
|
1810
1685
|
.type = .Normal,
|
|
1811
|
-
.
|
|
1812
|
-
.accuracy = 100,
|
|
1686
|
+
.accuracy = percent(100),
|
|
1813
1687
|
.target = .RandomFoe,
|
|
1688
|
+
.extra = .{ .metronome = false },
|
|
1814
1689
|
},
|
|
1815
1690
|
// Sketch
|
|
1816
1691
|
.{
|
|
1817
1692
|
.effect = .Sketch,
|
|
1818
1693
|
.bp = 0,
|
|
1819
1694
|
.type = .Normal,
|
|
1820
|
-
.
|
|
1821
|
-
.accuracy = 100,
|
|
1695
|
+
.accuracy = percent(100),
|
|
1822
1696
|
.target = .Other,
|
|
1697
|
+
.extra = .{ .metronome = false },
|
|
1823
1698
|
},
|
|
1824
1699
|
// TripleKick
|
|
1825
1700
|
.{
|
|
1826
1701
|
.effect = .TripleKick,
|
|
1827
1702
|
.bp = 10,
|
|
1828
1703
|
.type = .Fighting,
|
|
1829
|
-
.
|
|
1830
|
-
.accuracy = 90,
|
|
1704
|
+
.accuracy = percent(90),
|
|
1831
1705
|
.target = .Other,
|
|
1832
1706
|
},
|
|
1833
1707
|
// Thief
|
|
@@ -1835,18 +1709,17 @@ pub const Move = enum(u8) {
|
|
|
1835
1709
|
.effect = .Thief,
|
|
1836
1710
|
.bp = 40,
|
|
1837
1711
|
.type = .Dark,
|
|
1838
|
-
.
|
|
1839
|
-
.accuracy = 100,
|
|
1712
|
+
.accuracy = percent(100),
|
|
1840
1713
|
.target = .Other,
|
|
1841
|
-
.chance =
|
|
1714
|
+
.chance = percent(100),
|
|
1715
|
+
.extra = .{ .metronome = false },
|
|
1842
1716
|
},
|
|
1843
1717
|
// SpiderWeb
|
|
1844
1718
|
.{
|
|
1845
1719
|
.effect = .MeanLook,
|
|
1846
1720
|
.bp = 0,
|
|
1847
1721
|
.type = .Bug,
|
|
1848
|
-
.
|
|
1849
|
-
.accuracy = 100,
|
|
1722
|
+
.accuracy = percent(100),
|
|
1850
1723
|
.target = .Other,
|
|
1851
1724
|
},
|
|
1852
1725
|
// MindReader
|
|
@@ -1854,8 +1727,7 @@ pub const Move = enum(u8) {
|
|
|
1854
1727
|
.effect = .LockOn,
|
|
1855
1728
|
.bp = 0,
|
|
1856
1729
|
.type = .Normal,
|
|
1857
|
-
.
|
|
1858
|
-
.accuracy = 100,
|
|
1730
|
+
.accuracy = percent(100),
|
|
1859
1731
|
.target = .Other,
|
|
1860
1732
|
},
|
|
1861
1733
|
// Nightmare
|
|
@@ -1863,8 +1735,7 @@ pub const Move = enum(u8) {
|
|
|
1863
1735
|
.effect = .Nightmare,
|
|
1864
1736
|
.bp = 0,
|
|
1865
1737
|
.type = .Ghost,
|
|
1866
|
-
.
|
|
1867
|
-
.accuracy = 100,
|
|
1738
|
+
.accuracy = percent(100),
|
|
1868
1739
|
.target = .Other,
|
|
1869
1740
|
},
|
|
1870
1741
|
// FlameWheel
|
|
@@ -1872,28 +1743,25 @@ pub const Move = enum(u8) {
|
|
|
1872
1743
|
.effect = .FlameWheel,
|
|
1873
1744
|
.bp = 60,
|
|
1874
1745
|
.type = .Fire,
|
|
1875
|
-
.
|
|
1876
|
-
.accuracy = 100,
|
|
1746
|
+
.accuracy = percent(100),
|
|
1877
1747
|
.target = .Other,
|
|
1878
|
-
.chance =
|
|
1748
|
+
.chance = percent(10),
|
|
1879
1749
|
},
|
|
1880
1750
|
// Snore
|
|
1881
1751
|
.{
|
|
1882
1752
|
.effect = .Snore,
|
|
1883
1753
|
.bp = 40,
|
|
1884
1754
|
.type = .Normal,
|
|
1885
|
-
.
|
|
1886
|
-
.accuracy = 100,
|
|
1755
|
+
.accuracy = percent(100),
|
|
1887
1756
|
.target = .Other,
|
|
1888
|
-
.chance =
|
|
1757
|
+
.chance = percent(30),
|
|
1889
1758
|
},
|
|
1890
1759
|
// Curse
|
|
1891
1760
|
.{
|
|
1892
1761
|
.effect = .Curse,
|
|
1893
1762
|
.bp = 0,
|
|
1894
1763
|
.type = .@"???",
|
|
1895
|
-
.
|
|
1896
|
-
.accuracy = 100,
|
|
1764
|
+
.accuracy = percent(100),
|
|
1897
1765
|
.target = .Other,
|
|
1898
1766
|
},
|
|
1899
1767
|
// Flail
|
|
@@ -1901,8 +1769,7 @@ pub const Move = enum(u8) {
|
|
|
1901
1769
|
.effect = .Reversal,
|
|
1902
1770
|
.bp = 0,
|
|
1903
1771
|
.type = .Normal,
|
|
1904
|
-
.
|
|
1905
|
-
.accuracy = 100,
|
|
1772
|
+
.accuracy = percent(100),
|
|
1906
1773
|
.target = .Other,
|
|
1907
1774
|
},
|
|
1908
1775
|
// Conversion2
|
|
@@ -1910,8 +1777,7 @@ pub const Move = enum(u8) {
|
|
|
1910
1777
|
.effect = .Conversion2,
|
|
1911
1778
|
.bp = 0,
|
|
1912
1779
|
.type = .Normal,
|
|
1913
|
-
.
|
|
1914
|
-
.accuracy = 100,
|
|
1780
|
+
.accuracy = percent(100),
|
|
1915
1781
|
.target = .Other,
|
|
1916
1782
|
},
|
|
1917
1783
|
// Aeroblast
|
|
@@ -1919,8 +1785,7 @@ pub const Move = enum(u8) {
|
|
|
1919
1785
|
.effect = .HighCritical,
|
|
1920
1786
|
.bp = 100,
|
|
1921
1787
|
.type = .Flying,
|
|
1922
|
-
.
|
|
1923
|
-
.accuracy = 95,
|
|
1788
|
+
.accuracy = percent(95),
|
|
1924
1789
|
.target = .Any,
|
|
1925
1790
|
},
|
|
1926
1791
|
// CottonSpore
|
|
@@ -1928,8 +1793,7 @@ pub const Move = enum(u8) {
|
|
|
1928
1793
|
.effect = .SpeedDown2,
|
|
1929
1794
|
.bp = 0,
|
|
1930
1795
|
.type = .Grass,
|
|
1931
|
-
.
|
|
1932
|
-
.accuracy = 85,
|
|
1796
|
+
.accuracy = percent(85),
|
|
1933
1797
|
.target = .Other,
|
|
1934
1798
|
},
|
|
1935
1799
|
// Reversal
|
|
@@ -1937,8 +1801,7 @@ pub const Move = enum(u8) {
|
|
|
1937
1801
|
.effect = .Reversal,
|
|
1938
1802
|
.bp = 0,
|
|
1939
1803
|
.type = .Fighting,
|
|
1940
|
-
.
|
|
1941
|
-
.accuracy = 100,
|
|
1804
|
+
.accuracy = percent(100),
|
|
1942
1805
|
.target = .Other,
|
|
1943
1806
|
},
|
|
1944
1807
|
// Spite
|
|
@@ -1946,8 +1809,7 @@ pub const Move = enum(u8) {
|
|
|
1946
1809
|
.effect = .Spite,
|
|
1947
1810
|
.bp = 0,
|
|
1948
1811
|
.type = .Ghost,
|
|
1949
|
-
.
|
|
1950
|
-
.accuracy = 100,
|
|
1812
|
+
.accuracy = percent(100),
|
|
1951
1813
|
.target = .Other,
|
|
1952
1814
|
},
|
|
1953
1815
|
// PowderSnow
|
|
@@ -1955,28 +1817,26 @@ pub const Move = enum(u8) {
|
|
|
1955
1817
|
.effect = .FreezeChance,
|
|
1956
1818
|
.bp = 40,
|
|
1957
1819
|
.type = .Ice,
|
|
1958
|
-
.
|
|
1959
|
-
.accuracy = 100,
|
|
1820
|
+
.accuracy = percent(100),
|
|
1960
1821
|
.target = .Foes,
|
|
1961
|
-
.chance =
|
|
1822
|
+
.chance = percent(10),
|
|
1962
1823
|
},
|
|
1963
1824
|
// Protect
|
|
1964
1825
|
.{
|
|
1965
1826
|
.effect = .Protect,
|
|
1966
1827
|
.bp = 0,
|
|
1967
1828
|
.type = .Normal,
|
|
1968
|
-
.
|
|
1969
|
-
.accuracy = 100,
|
|
1829
|
+
.accuracy = percent(100),
|
|
1970
1830
|
.target = .Self,
|
|
1971
1831
|
.priority = 2,
|
|
1832
|
+
.extra = .{ .metronome = false },
|
|
1972
1833
|
},
|
|
1973
1834
|
// MachPunch
|
|
1974
1835
|
.{
|
|
1975
1836
|
.effect = .Priority,
|
|
1976
1837
|
.bp = 40,
|
|
1977
1838
|
.type = .Fighting,
|
|
1978
|
-
.
|
|
1979
|
-
.accuracy = 100,
|
|
1839
|
+
.accuracy = percent(100),
|
|
1980
1840
|
.target = .Other,
|
|
1981
1841
|
.priority = 1,
|
|
1982
1842
|
},
|
|
@@ -1985,8 +1845,7 @@ pub const Move = enum(u8) {
|
|
|
1985
1845
|
.effect = .SpeedDown2,
|
|
1986
1846
|
.bp = 0,
|
|
1987
1847
|
.type = .Normal,
|
|
1988
|
-
.
|
|
1989
|
-
.accuracy = 90,
|
|
1848
|
+
.accuracy = percent(90),
|
|
1990
1849
|
.target = .Other,
|
|
1991
1850
|
},
|
|
1992
1851
|
// FeintAttack
|
|
@@ -1994,8 +1853,7 @@ pub const Move = enum(u8) {
|
|
|
1994
1853
|
.effect = .AlwaysHit,
|
|
1995
1854
|
.bp = 60,
|
|
1996
1855
|
.type = .Dark,
|
|
1997
|
-
.
|
|
1998
|
-
.accuracy = 100,
|
|
1856
|
+
.accuracy = percent(100),
|
|
1999
1857
|
.target = .Other,
|
|
2000
1858
|
},
|
|
2001
1859
|
// SweetKiss
|
|
@@ -2003,8 +1861,7 @@ pub const Move = enum(u8) {
|
|
|
2003
1861
|
.effect = .Confusion,
|
|
2004
1862
|
.bp = 0,
|
|
2005
1863
|
.type = .Normal,
|
|
2006
|
-
.
|
|
2007
|
-
.accuracy = 75,
|
|
1864
|
+
.accuracy = percent(75),
|
|
2008
1865
|
.target = .Other,
|
|
2009
1866
|
},
|
|
2010
1867
|
// BellyDrum
|
|
@@ -2012,8 +1869,7 @@ pub const Move = enum(u8) {
|
|
|
2012
1869
|
.effect = .BellyDrum,
|
|
2013
1870
|
.bp = 0,
|
|
2014
1871
|
.type = .Normal,
|
|
2015
|
-
.
|
|
2016
|
-
.accuracy = 100,
|
|
1872
|
+
.accuracy = percent(100),
|
|
2017
1873
|
.target = .Self,
|
|
2018
1874
|
},
|
|
2019
1875
|
// SludgeBomb
|
|
@@ -2021,38 +1877,34 @@ pub const Move = enum(u8) {
|
|
|
2021
1877
|
.effect = .PoisonChance,
|
|
2022
1878
|
.bp = 90,
|
|
2023
1879
|
.type = .Poison,
|
|
2024
|
-
.
|
|
2025
|
-
.accuracy = 100,
|
|
1880
|
+
.accuracy = percent(100),
|
|
2026
1881
|
.target = .Other,
|
|
2027
|
-
.chance =
|
|
1882
|
+
.chance = percent(30),
|
|
2028
1883
|
},
|
|
2029
1884
|
// MudSlap
|
|
2030
1885
|
.{
|
|
2031
1886
|
.effect = .AccuracyDownChance,
|
|
2032
1887
|
.bp = 20,
|
|
2033
1888
|
.type = .Ground,
|
|
2034
|
-
.
|
|
2035
|
-
.accuracy = 100,
|
|
1889
|
+
.accuracy = percent(100),
|
|
2036
1890
|
.target = .Other,
|
|
2037
|
-
.chance =
|
|
1891
|
+
.chance = percent(100),
|
|
2038
1892
|
},
|
|
2039
1893
|
// Octazooka
|
|
2040
1894
|
.{
|
|
2041
1895
|
.effect = .AccuracyDownChance,
|
|
2042
1896
|
.bp = 65,
|
|
2043
1897
|
.type = .Water,
|
|
2044
|
-
.
|
|
2045
|
-
.accuracy = 85,
|
|
1898
|
+
.accuracy = percent(85),
|
|
2046
1899
|
.target = .Other,
|
|
2047
|
-
.chance =
|
|
1900
|
+
.chance = percent(50),
|
|
2048
1901
|
},
|
|
2049
1902
|
// Spikes
|
|
2050
1903
|
.{
|
|
2051
1904
|
.effect = .Spikes,
|
|
2052
1905
|
.bp = 0,
|
|
2053
1906
|
.type = .Ground,
|
|
2054
|
-
.
|
|
2055
|
-
.accuracy = 100,
|
|
1907
|
+
.accuracy = percent(100),
|
|
2056
1908
|
.target = .FoeSide,
|
|
2057
1909
|
},
|
|
2058
1910
|
// ZapCannon
|
|
@@ -2060,18 +1912,16 @@ pub const Move = enum(u8) {
|
|
|
2060
1912
|
.effect = .ParalyzeChance,
|
|
2061
1913
|
.bp = 100,
|
|
2062
1914
|
.type = .Electric,
|
|
2063
|
-
.
|
|
2064
|
-
.accuracy = 50,
|
|
1915
|
+
.accuracy = percent(50),
|
|
2065
1916
|
.target = .Other,
|
|
2066
|
-
.chance =
|
|
1917
|
+
.chance = percent(100),
|
|
2067
1918
|
},
|
|
2068
1919
|
// Foresight
|
|
2069
1920
|
.{
|
|
2070
1921
|
.effect = .Foresight,
|
|
2071
1922
|
.bp = 0,
|
|
2072
1923
|
.type = .Normal,
|
|
2073
|
-
.
|
|
2074
|
-
.accuracy = 100,
|
|
1924
|
+
.accuracy = percent(100),
|
|
2075
1925
|
.target = .Other,
|
|
2076
1926
|
},
|
|
2077
1927
|
// DestinyBond
|
|
@@ -2079,17 +1929,16 @@ pub const Move = enum(u8) {
|
|
|
2079
1929
|
.effect = .DestinyBond,
|
|
2080
1930
|
.bp = 0,
|
|
2081
1931
|
.type = .Ghost,
|
|
2082
|
-
.
|
|
2083
|
-
.accuracy = 100,
|
|
1932
|
+
.accuracy = percent(100),
|
|
2084
1933
|
.target = .Self,
|
|
1934
|
+
.extra = .{ .metronome = false },
|
|
2085
1935
|
},
|
|
2086
1936
|
// PerishSong
|
|
2087
1937
|
.{
|
|
2088
1938
|
.effect = .PerishSong,
|
|
2089
1939
|
.bp = 0,
|
|
2090
1940
|
.type = .Normal,
|
|
2091
|
-
.
|
|
2092
|
-
.accuracy = 100,
|
|
1941
|
+
.accuracy = percent(100),
|
|
2093
1942
|
.target = .All,
|
|
2094
1943
|
},
|
|
2095
1944
|
// IcyWind
|
|
@@ -2097,28 +1946,26 @@ pub const Move = enum(u8) {
|
|
|
2097
1946
|
.effect = .SpeedDownChance,
|
|
2098
1947
|
.bp = 55,
|
|
2099
1948
|
.type = .Ice,
|
|
2100
|
-
.
|
|
2101
|
-
.accuracy = 95,
|
|
1949
|
+
.accuracy = percent(95),
|
|
2102
1950
|
.target = .Foes,
|
|
2103
|
-
.chance =
|
|
1951
|
+
.chance = percent(100),
|
|
2104
1952
|
},
|
|
2105
1953
|
// Detect
|
|
2106
1954
|
.{
|
|
2107
1955
|
.effect = .Protect,
|
|
2108
1956
|
.bp = 0,
|
|
2109
1957
|
.type = .Fighting,
|
|
2110
|
-
.
|
|
2111
|
-
.accuracy = 100,
|
|
1958
|
+
.accuracy = percent(100),
|
|
2112
1959
|
.target = .Self,
|
|
2113
1960
|
.priority = 2,
|
|
1961
|
+
.extra = .{ .metronome = false },
|
|
2114
1962
|
},
|
|
2115
1963
|
// BoneRush
|
|
2116
1964
|
.{
|
|
2117
1965
|
.effect = .MultiHit,
|
|
2118
1966
|
.bp = 25,
|
|
2119
1967
|
.type = .Ground,
|
|
2120
|
-
.
|
|
2121
|
-
.accuracy = 80,
|
|
1968
|
+
.accuracy = percent(80),
|
|
2122
1969
|
.target = .Other,
|
|
2123
1970
|
},
|
|
2124
1971
|
// LockOn
|
|
@@ -2126,8 +1973,7 @@ pub const Move = enum(u8) {
|
|
|
2126
1973
|
.effect = .LockOn,
|
|
2127
1974
|
.bp = 0,
|
|
2128
1975
|
.type = .Normal,
|
|
2129
|
-
.
|
|
2130
|
-
.accuracy = 100,
|
|
1976
|
+
.accuracy = percent(100),
|
|
2131
1977
|
.target = .Other,
|
|
2132
1978
|
},
|
|
2133
1979
|
// Outrage
|
|
@@ -2135,17 +1981,16 @@ pub const Move = enum(u8) {
|
|
|
2135
1981
|
.effect = .Thrashing,
|
|
2136
1982
|
.bp = 90,
|
|
2137
1983
|
.type = .Dragon,
|
|
2138
|
-
.
|
|
2139
|
-
.accuracy = 100,
|
|
1984
|
+
.accuracy = percent(100),
|
|
2140
1985
|
.target = .RandomFoe,
|
|
1986
|
+
.extra = .{ .continuous = true },
|
|
2141
1987
|
},
|
|
2142
1988
|
// Sandstorm
|
|
2143
1989
|
.{
|
|
2144
1990
|
.effect = .Sandstorm,
|
|
2145
1991
|
.bp = 0,
|
|
2146
1992
|
.type = .Rock,
|
|
2147
|
-
.
|
|
2148
|
-
.accuracy = 100,
|
|
1993
|
+
.accuracy = percent(100),
|
|
2149
1994
|
.target = .All,
|
|
2150
1995
|
},
|
|
2151
1996
|
// GigaDrain
|
|
@@ -2153,8 +1998,7 @@ pub const Move = enum(u8) {
|
|
|
2153
1998
|
.effect = .DrainHP,
|
|
2154
1999
|
.bp = 60,
|
|
2155
2000
|
.type = .Grass,
|
|
2156
|
-
.
|
|
2157
|
-
.accuracy = 100,
|
|
2001
|
+
.accuracy = percent(100),
|
|
2158
2002
|
.target = .Other,
|
|
2159
2003
|
},
|
|
2160
2004
|
// Endure
|
|
@@ -2162,18 +2006,17 @@ pub const Move = enum(u8) {
|
|
|
2162
2006
|
.effect = .Endure,
|
|
2163
2007
|
.bp = 0,
|
|
2164
2008
|
.type = .Normal,
|
|
2165
|
-
.
|
|
2166
|
-
.accuracy = 100,
|
|
2009
|
+
.accuracy = percent(100),
|
|
2167
2010
|
.target = .Self,
|
|
2168
2011
|
.priority = 2,
|
|
2012
|
+
.extra = .{ .metronome = false },
|
|
2169
2013
|
},
|
|
2170
2014
|
// Charm
|
|
2171
2015
|
.{
|
|
2172
2016
|
.effect = .AttackDown2,
|
|
2173
2017
|
.bp = 0,
|
|
2174
2018
|
.type = .Normal,
|
|
2175
|
-
.
|
|
2176
|
-
.accuracy = 100,
|
|
2019
|
+
.accuracy = percent(100),
|
|
2177
2020
|
.target = .Other,
|
|
2178
2021
|
},
|
|
2179
2022
|
// Rollout
|
|
@@ -2181,17 +2024,16 @@ pub const Move = enum(u8) {
|
|
|
2181
2024
|
.effect = .Rollout,
|
|
2182
2025
|
.bp = 30,
|
|
2183
2026
|
.type = .Rock,
|
|
2184
|
-
.
|
|
2185
|
-
.accuracy = 90,
|
|
2027
|
+
.accuracy = percent(90),
|
|
2186
2028
|
.target = .Other,
|
|
2029
|
+
.extra = .{ .continuous = true },
|
|
2187
2030
|
},
|
|
2188
2031
|
// FalseSwipe
|
|
2189
2032
|
.{
|
|
2190
2033
|
.effect = .FalseSwipe,
|
|
2191
2034
|
.bp = 40,
|
|
2192
2035
|
.type = .Normal,
|
|
2193
|
-
.
|
|
2194
|
-
.accuracy = 100,
|
|
2036
|
+
.accuracy = percent(100),
|
|
2195
2037
|
.target = .Other,
|
|
2196
2038
|
},
|
|
2197
2039
|
// Swagger
|
|
@@ -2199,8 +2041,7 @@ pub const Move = enum(u8) {
|
|
|
2199
2041
|
.effect = .Swagger,
|
|
2200
2042
|
.bp = 0,
|
|
2201
2043
|
.type = .Normal,
|
|
2202
|
-
.
|
|
2203
|
-
.accuracy = 90,
|
|
2044
|
+
.accuracy = percent(90),
|
|
2204
2045
|
.target = .Other,
|
|
2205
2046
|
},
|
|
2206
2047
|
// MilkDrink
|
|
@@ -2208,8 +2049,7 @@ pub const Move = enum(u8) {
|
|
|
2208
2049
|
.effect = .Heal,
|
|
2209
2050
|
.bp = 0,
|
|
2210
2051
|
.type = .Normal,
|
|
2211
|
-
.
|
|
2212
|
-
.accuracy = 100,
|
|
2052
|
+
.accuracy = percent(100),
|
|
2213
2053
|
.target = .Self,
|
|
2214
2054
|
},
|
|
2215
2055
|
// Spark
|
|
@@ -2217,18 +2057,16 @@ pub const Move = enum(u8) {
|
|
|
2217
2057
|
.effect = .ParalyzeChance,
|
|
2218
2058
|
.bp = 65,
|
|
2219
2059
|
.type = .Electric,
|
|
2220
|
-
.
|
|
2221
|
-
.accuracy = 100,
|
|
2060
|
+
.accuracy = percent(100),
|
|
2222
2061
|
.target = .Other,
|
|
2223
|
-
.chance =
|
|
2062
|
+
.chance = percent(30),
|
|
2224
2063
|
},
|
|
2225
2064
|
// FuryCutter
|
|
2226
2065
|
.{
|
|
2227
2066
|
.effect = .FuryCutter,
|
|
2228
2067
|
.bp = 10,
|
|
2229
2068
|
.type = .Bug,
|
|
2230
|
-
.
|
|
2231
|
-
.accuracy = 95,
|
|
2069
|
+
.accuracy = percent(95),
|
|
2232
2070
|
.target = .Other,
|
|
2233
2071
|
},
|
|
2234
2072
|
// SteelWing
|
|
@@ -2236,18 +2074,16 @@ pub const Move = enum(u8) {
|
|
|
2236
2074
|
.effect = .DefenseUpChance,
|
|
2237
2075
|
.bp = 70,
|
|
2238
2076
|
.type = .Steel,
|
|
2239
|
-
.
|
|
2240
|
-
.accuracy = 90,
|
|
2077
|
+
.accuracy = percent(90),
|
|
2241
2078
|
.target = .Other,
|
|
2242
|
-
.chance =
|
|
2079
|
+
.chance = percent(10),
|
|
2243
2080
|
},
|
|
2244
2081
|
// MeanLook
|
|
2245
2082
|
.{
|
|
2246
2083
|
.effect = .MeanLook,
|
|
2247
2084
|
.bp = 0,
|
|
2248
2085
|
.type = .Normal,
|
|
2249
|
-
.
|
|
2250
|
-
.accuracy = 100,
|
|
2086
|
+
.accuracy = percent(100),
|
|
2251
2087
|
.target = .Other,
|
|
2252
2088
|
},
|
|
2253
2089
|
// Attract
|
|
@@ -2255,8 +2091,7 @@ pub const Move = enum(u8) {
|
|
|
2255
2091
|
.effect = .Attract,
|
|
2256
2092
|
.bp = 0,
|
|
2257
2093
|
.type = .Normal,
|
|
2258
|
-
.
|
|
2259
|
-
.accuracy = 100,
|
|
2094
|
+
.accuracy = percent(100),
|
|
2260
2095
|
.target = .Other,
|
|
2261
2096
|
},
|
|
2262
2097
|
// SleepTalk
|
|
@@ -2264,17 +2099,16 @@ pub const Move = enum(u8) {
|
|
|
2264
2099
|
.effect = .SleepTalk,
|
|
2265
2100
|
.bp = 0,
|
|
2266
2101
|
.type = .Normal,
|
|
2267
|
-
.
|
|
2268
|
-
.accuracy = 100,
|
|
2102
|
+
.accuracy = percent(100),
|
|
2269
2103
|
.target = .Self,
|
|
2104
|
+
.extra = .{ .metronome = false },
|
|
2270
2105
|
},
|
|
2271
2106
|
// HealBell
|
|
2272
2107
|
.{
|
|
2273
2108
|
.effect = .HealBell,
|
|
2274
2109
|
.bp = 0,
|
|
2275
2110
|
.type = .Normal,
|
|
2276
|
-
.
|
|
2277
|
-
.accuracy = 100,
|
|
2111
|
+
.accuracy = percent(100),
|
|
2278
2112
|
.target = .Self,
|
|
2279
2113
|
},
|
|
2280
2114
|
// Return
|
|
@@ -2282,8 +2116,7 @@ pub const Move = enum(u8) {
|
|
|
2282
2116
|
.effect = .Return,
|
|
2283
2117
|
.bp = 0,
|
|
2284
2118
|
.type = .Normal,
|
|
2285
|
-
.
|
|
2286
|
-
.accuracy = 100,
|
|
2119
|
+
.accuracy = percent(100),
|
|
2287
2120
|
.target = .Other,
|
|
2288
2121
|
},
|
|
2289
2122
|
// Present
|
|
@@ -2291,8 +2124,7 @@ pub const Move = enum(u8) {
|
|
|
2291
2124
|
.effect = .Present,
|
|
2292
2125
|
.bp = 0,
|
|
2293
2126
|
.type = .Normal,
|
|
2294
|
-
.
|
|
2295
|
-
.accuracy = 90,
|
|
2127
|
+
.accuracy = percent(90),
|
|
2296
2128
|
.target = .Other,
|
|
2297
2129
|
},
|
|
2298
2130
|
// Frustration
|
|
@@ -2300,8 +2132,7 @@ pub const Move = enum(u8) {
|
|
|
2300
2132
|
.effect = .Frustration,
|
|
2301
2133
|
.bp = 0,
|
|
2302
2134
|
.type = .Normal,
|
|
2303
|
-
.
|
|
2304
|
-
.accuracy = 100,
|
|
2135
|
+
.accuracy = percent(100),
|
|
2305
2136
|
.target = .Other,
|
|
2306
2137
|
},
|
|
2307
2138
|
// Safeguard
|
|
@@ -2309,8 +2140,7 @@ pub const Move = enum(u8) {
|
|
|
2309
2140
|
.effect = .Safeguard,
|
|
2310
2141
|
.bp = 0,
|
|
2311
2142
|
.type = .Normal,
|
|
2312
|
-
.
|
|
2313
|
-
.accuracy = 100,
|
|
2143
|
+
.accuracy = percent(100),
|
|
2314
2144
|
.target = .AllySide,
|
|
2315
2145
|
},
|
|
2316
2146
|
// PainSplit
|
|
@@ -2318,8 +2148,7 @@ pub const Move = enum(u8) {
|
|
|
2318
2148
|
.effect = .PainSplit,
|
|
2319
2149
|
.bp = 0,
|
|
2320
2150
|
.type = .Normal,
|
|
2321
|
-
.
|
|
2322
|
-
.accuracy = 100,
|
|
2151
|
+
.accuracy = percent(100),
|
|
2323
2152
|
.target = .Other,
|
|
2324
2153
|
},
|
|
2325
2154
|
// SacredFire
|
|
@@ -2327,37 +2156,34 @@ pub const Move = enum(u8) {
|
|
|
2327
2156
|
.effect = .SacredFire,
|
|
2328
2157
|
.bp = 100,
|
|
2329
2158
|
.type = .Fire,
|
|
2330
|
-
.
|
|
2331
|
-
.accuracy = 95,
|
|
2159
|
+
.accuracy = percent(95),
|
|
2332
2160
|
.target = .Other,
|
|
2333
|
-
.chance =
|
|
2161
|
+
.chance = percent(50),
|
|
2334
2162
|
},
|
|
2335
2163
|
// Magnitude
|
|
2336
2164
|
.{
|
|
2337
2165
|
.effect = .Magnitude,
|
|
2338
2166
|
.bp = 0,
|
|
2339
2167
|
.type = .Ground,
|
|
2340
|
-
.
|
|
2341
|
-
.accuracy = 100,
|
|
2168
|
+
.accuracy = percent(100),
|
|
2342
2169
|
.target = .AllOthers,
|
|
2170
|
+
.extra = .{ .underground = true },
|
|
2343
2171
|
},
|
|
2344
2172
|
// DynamicPunch
|
|
2345
2173
|
.{
|
|
2346
2174
|
.effect = .ConfusionChance,
|
|
2347
2175
|
.bp = 100,
|
|
2348
2176
|
.type = .Fighting,
|
|
2349
|
-
.
|
|
2350
|
-
.accuracy = 50,
|
|
2177
|
+
.accuracy = percent(50),
|
|
2351
2178
|
.target = .Other,
|
|
2352
|
-
.chance =
|
|
2179
|
+
.chance = percent(100),
|
|
2353
2180
|
},
|
|
2354
2181
|
// Megahorn
|
|
2355
2182
|
.{
|
|
2356
2183
|
.effect = .None,
|
|
2357
2184
|
.bp = 120,
|
|
2358
2185
|
.type = .Bug,
|
|
2359
|
-
.
|
|
2360
|
-
.accuracy = 85,
|
|
2186
|
+
.accuracy = percent(85),
|
|
2361
2187
|
.target = .Other,
|
|
2362
2188
|
},
|
|
2363
2189
|
// DragonBreath
|
|
@@ -2365,18 +2191,16 @@ pub const Move = enum(u8) {
|
|
|
2365
2191
|
.effect = .ParalyzeChance,
|
|
2366
2192
|
.bp = 60,
|
|
2367
2193
|
.type = .Dragon,
|
|
2368
|
-
.
|
|
2369
|
-
.accuracy = 100,
|
|
2194
|
+
.accuracy = percent(100),
|
|
2370
2195
|
.target = .Other,
|
|
2371
|
-
.chance =
|
|
2196
|
+
.chance = percent(30),
|
|
2372
2197
|
},
|
|
2373
2198
|
// BatonPass
|
|
2374
2199
|
.{
|
|
2375
2200
|
.effect = .BatonPass,
|
|
2376
2201
|
.bp = 0,
|
|
2377
2202
|
.type = .Normal,
|
|
2378
|
-
.
|
|
2379
|
-
.accuracy = 100,
|
|
2203
|
+
.accuracy = percent(100),
|
|
2380
2204
|
.target = .Self,
|
|
2381
2205
|
},
|
|
2382
2206
|
// Encore
|
|
@@ -2384,8 +2208,7 @@ pub const Move = enum(u8) {
|
|
|
2384
2208
|
.effect = .Encore,
|
|
2385
2209
|
.bp = 0,
|
|
2386
2210
|
.type = .Normal,
|
|
2387
|
-
.
|
|
2388
|
-
.accuracy = 100,
|
|
2211
|
+
.accuracy = percent(100),
|
|
2389
2212
|
.target = .Other,
|
|
2390
2213
|
},
|
|
2391
2214
|
// Pursuit
|
|
@@ -2393,8 +2216,7 @@ pub const Move = enum(u8) {
|
|
|
2393
2216
|
.effect = .Pursuit,
|
|
2394
2217
|
.bp = 40,
|
|
2395
2218
|
.type = .Dark,
|
|
2396
|
-
.
|
|
2397
|
-
.accuracy = 100,
|
|
2219
|
+
.accuracy = percent(100),
|
|
2398
2220
|
.target = .Other,
|
|
2399
2221
|
},
|
|
2400
2222
|
// RapidSpin
|
|
@@ -2402,8 +2224,7 @@ pub const Move = enum(u8) {
|
|
|
2402
2224
|
.effect = .RapidSpin,
|
|
2403
2225
|
.bp = 20,
|
|
2404
2226
|
.type = .Normal,
|
|
2405
|
-
.
|
|
2406
|
-
.accuracy = 100,
|
|
2227
|
+
.accuracy = percent(100),
|
|
2407
2228
|
.target = .Other,
|
|
2408
2229
|
},
|
|
2409
2230
|
// SweetScent
|
|
@@ -2411,8 +2232,7 @@ pub const Move = enum(u8) {
|
|
|
2411
2232
|
.effect = .EvasionDown1,
|
|
2412
2233
|
.bp = 0,
|
|
2413
2234
|
.type = .Normal,
|
|
2414
|
-
.
|
|
2415
|
-
.accuracy = 100,
|
|
2235
|
+
.accuracy = percent(100),
|
|
2416
2236
|
.target = .Foes,
|
|
2417
2237
|
},
|
|
2418
2238
|
// IronTail
|
|
@@ -2420,28 +2240,25 @@ pub const Move = enum(u8) {
|
|
|
2420
2240
|
.effect = .DefenseDownChance,
|
|
2421
2241
|
.bp = 100,
|
|
2422
2242
|
.type = .Steel,
|
|
2423
|
-
.
|
|
2424
|
-
.accuracy = 75,
|
|
2243
|
+
.accuracy = percent(75),
|
|
2425
2244
|
.target = .Other,
|
|
2426
|
-
.chance =
|
|
2245
|
+
.chance = percent(30),
|
|
2427
2246
|
},
|
|
2428
2247
|
// MetalClaw
|
|
2429
2248
|
.{
|
|
2430
2249
|
.effect = .AttackUpChance,
|
|
2431
2250
|
.bp = 50,
|
|
2432
2251
|
.type = .Steel,
|
|
2433
|
-
.
|
|
2434
|
-
.accuracy = 95,
|
|
2252
|
+
.accuracy = percent(95),
|
|
2435
2253
|
.target = .Other,
|
|
2436
|
-
.chance =
|
|
2254
|
+
.chance = percent(10),
|
|
2437
2255
|
},
|
|
2438
2256
|
// VitalThrow
|
|
2439
2257
|
.{
|
|
2440
2258
|
.effect = .AlwaysHit,
|
|
2441
2259
|
.bp = 70,
|
|
2442
2260
|
.type = .Fighting,
|
|
2443
|
-
.
|
|
2444
|
-
.accuracy = 100,
|
|
2261
|
+
.accuracy = percent(100),
|
|
2445
2262
|
.target = .Other,
|
|
2446
2263
|
.priority = -1,
|
|
2447
2264
|
},
|
|
@@ -2450,8 +2267,7 @@ pub const Move = enum(u8) {
|
|
|
2450
2267
|
.effect = .MorningSun,
|
|
2451
2268
|
.bp = 0,
|
|
2452
2269
|
.type = .Normal,
|
|
2453
|
-
.
|
|
2454
|
-
.accuracy = 100,
|
|
2270
|
+
.accuracy = percent(100),
|
|
2455
2271
|
.target = .Self,
|
|
2456
2272
|
},
|
|
2457
2273
|
// Synthesis
|
|
@@ -2459,8 +2275,7 @@ pub const Move = enum(u8) {
|
|
|
2459
2275
|
.effect = .Synthesis,
|
|
2460
2276
|
.bp = 0,
|
|
2461
2277
|
.type = .Grass,
|
|
2462
|
-
.
|
|
2463
|
-
.accuracy = 100,
|
|
2278
|
+
.accuracy = percent(100),
|
|
2464
2279
|
.target = .Self,
|
|
2465
2280
|
},
|
|
2466
2281
|
// Moonlight
|
|
@@ -2468,8 +2283,7 @@ pub const Move = enum(u8) {
|
|
|
2468
2283
|
.effect = .Moonlight,
|
|
2469
2284
|
.bp = 0,
|
|
2470
2285
|
.type = .Normal,
|
|
2471
|
-
.
|
|
2472
|
-
.accuracy = 100,
|
|
2286
|
+
.accuracy = percent(100),
|
|
2473
2287
|
.target = .Self,
|
|
2474
2288
|
},
|
|
2475
2289
|
// HiddenPower
|
|
@@ -2477,8 +2291,7 @@ pub const Move = enum(u8) {
|
|
|
2477
2291
|
.effect = .HiddenPower,
|
|
2478
2292
|
.bp = 0,
|
|
2479
2293
|
.type = .Normal,
|
|
2480
|
-
.
|
|
2481
|
-
.accuracy = 100,
|
|
2294
|
+
.accuracy = percent(100),
|
|
2482
2295
|
.target = .Other,
|
|
2483
2296
|
},
|
|
2484
2297
|
// CrossChop
|
|
@@ -2486,8 +2299,7 @@ pub const Move = enum(u8) {
|
|
|
2486
2299
|
.effect = .HighCritical,
|
|
2487
2300
|
.bp = 100,
|
|
2488
2301
|
.type = .Fighting,
|
|
2489
|
-
.
|
|
2490
|
-
.accuracy = 80,
|
|
2302
|
+
.accuracy = percent(80),
|
|
2491
2303
|
.target = .Other,
|
|
2492
2304
|
},
|
|
2493
2305
|
// Twister
|
|
@@ -2495,18 +2307,17 @@ pub const Move = enum(u8) {
|
|
|
2495
2307
|
.effect = .Twister,
|
|
2496
2308
|
.bp = 40,
|
|
2497
2309
|
.type = .Dragon,
|
|
2498
|
-
.
|
|
2499
|
-
.accuracy = 100,
|
|
2310
|
+
.accuracy = percent(100),
|
|
2500
2311
|
.target = .Foes,
|
|
2501
|
-
.chance =
|
|
2312
|
+
.chance = percent(20),
|
|
2313
|
+
.extra = .{ .flying = true },
|
|
2502
2314
|
},
|
|
2503
2315
|
// RainDance
|
|
2504
2316
|
.{
|
|
2505
2317
|
.effect = .RainDance,
|
|
2506
2318
|
.bp = 0,
|
|
2507
2319
|
.type = .Water,
|
|
2508
|
-
.
|
|
2509
|
-
.accuracy = 100,
|
|
2320
|
+
.accuracy = percent(100),
|
|
2510
2321
|
.target = .All,
|
|
2511
2322
|
},
|
|
2512
2323
|
// SunnyDay
|
|
@@ -2514,8 +2325,7 @@ pub const Move = enum(u8) {
|
|
|
2514
2325
|
.effect = .SunnyDay,
|
|
2515
2326
|
.bp = 0,
|
|
2516
2327
|
.type = .Fire,
|
|
2517
|
-
.
|
|
2518
|
-
.accuracy = 100,
|
|
2328
|
+
.accuracy = percent(100),
|
|
2519
2329
|
.target = .All,
|
|
2520
2330
|
},
|
|
2521
2331
|
// Crunch
|
|
@@ -2523,28 +2333,26 @@ pub const Move = enum(u8) {
|
|
|
2523
2333
|
.effect = .SpDefDownChance,
|
|
2524
2334
|
.bp = 80,
|
|
2525
2335
|
.type = .Dark,
|
|
2526
|
-
.
|
|
2527
|
-
.accuracy = 100,
|
|
2336
|
+
.accuracy = percent(100),
|
|
2528
2337
|
.target = .Other,
|
|
2529
|
-
.chance =
|
|
2338
|
+
.chance = percent(20),
|
|
2530
2339
|
},
|
|
2531
2340
|
// MirrorCoat
|
|
2532
2341
|
.{
|
|
2533
2342
|
.effect = .MirrorCoat,
|
|
2534
2343
|
.bp = 0,
|
|
2535
2344
|
.type = .Psychic,
|
|
2536
|
-
.
|
|
2537
|
-
.accuracy = 100,
|
|
2345
|
+
.accuracy = percent(100),
|
|
2538
2346
|
.target = .Depends,
|
|
2539
2347
|
.priority = -1,
|
|
2348
|
+
.extra = .{ .metronome = false },
|
|
2540
2349
|
},
|
|
2541
2350
|
// PsychUp
|
|
2542
2351
|
.{
|
|
2543
2352
|
.effect = .PsychUp,
|
|
2544
2353
|
.bp = 0,
|
|
2545
2354
|
.type = .Normal,
|
|
2546
|
-
.
|
|
2547
|
-
.accuracy = 100,
|
|
2355
|
+
.accuracy = percent(100),
|
|
2548
2356
|
.target = .Other,
|
|
2549
2357
|
},
|
|
2550
2358
|
// ExtremeSpeed
|
|
@@ -2552,8 +2360,7 @@ pub const Move = enum(u8) {
|
|
|
2552
2360
|
.effect = .Priority,
|
|
2553
2361
|
.bp = 80,
|
|
2554
2362
|
.type = .Normal,
|
|
2555
|
-
.
|
|
2556
|
-
.accuracy = 100,
|
|
2363
|
+
.accuracy = percent(100),
|
|
2557
2364
|
.target = .Other,
|
|
2558
2365
|
.priority = 1,
|
|
2559
2366
|
},
|
|
@@ -2562,28 +2369,25 @@ pub const Move = enum(u8) {
|
|
|
2562
2369
|
.effect = .AllStatUpChance,
|
|
2563
2370
|
.bp = 60,
|
|
2564
2371
|
.type = .Rock,
|
|
2565
|
-
.
|
|
2566
|
-
.accuracy = 100,
|
|
2372
|
+
.accuracy = percent(100),
|
|
2567
2373
|
.target = .Other,
|
|
2568
|
-
.chance =
|
|
2374
|
+
.chance = percent(10),
|
|
2569
2375
|
},
|
|
2570
2376
|
// ShadowBall
|
|
2571
2377
|
.{
|
|
2572
2378
|
.effect = .SpDefDownChance,
|
|
2573
2379
|
.bp = 80,
|
|
2574
2380
|
.type = .Ghost,
|
|
2575
|
-
.
|
|
2576
|
-
.accuracy = 100,
|
|
2381
|
+
.accuracy = percent(100),
|
|
2577
2382
|
.target = .Other,
|
|
2578
|
-
.chance =
|
|
2383
|
+
.chance = percent(20),
|
|
2579
2384
|
},
|
|
2580
2385
|
// FutureSight
|
|
2581
2386
|
.{
|
|
2582
2387
|
.effect = .FutureSight,
|
|
2583
2388
|
.bp = 80,
|
|
2584
2389
|
.type = .Psychic,
|
|
2585
|
-
.
|
|
2586
|
-
.accuracy = 90,
|
|
2390
|
+
.accuracy = percent(90),
|
|
2587
2391
|
.target = .Other,
|
|
2588
2392
|
},
|
|
2589
2393
|
// RockSmash
|
|
@@ -2591,27 +2395,25 @@ pub const Move = enum(u8) {
|
|
|
2591
2395
|
.effect = .DefenseDownChance,
|
|
2592
2396
|
.bp = 20,
|
|
2593
2397
|
.type = .Fighting,
|
|
2594
|
-
.
|
|
2595
|
-
.accuracy = 100,
|
|
2398
|
+
.accuracy = percent(100),
|
|
2596
2399
|
.target = .Other,
|
|
2597
|
-
.chance =
|
|
2400
|
+
.chance = percent(50),
|
|
2598
2401
|
},
|
|
2599
2402
|
// Whirlpool
|
|
2600
2403
|
.{
|
|
2601
2404
|
.effect = .Binding,
|
|
2602
2405
|
.bp = 15,
|
|
2603
2406
|
.type = .Water,
|
|
2604
|
-
.
|
|
2605
|
-
.accuracy = 70,
|
|
2407
|
+
.accuracy = percent(70),
|
|
2606
2408
|
.target = .Other,
|
|
2409
|
+
.extra = .{ .protocol = 5 },
|
|
2607
2410
|
},
|
|
2608
2411
|
// BeatUp
|
|
2609
2412
|
.{
|
|
2610
2413
|
.effect = .BeatUp,
|
|
2611
2414
|
.bp = 10,
|
|
2612
2415
|
.type = .Dark,
|
|
2613
|
-
.
|
|
2614
|
-
.accuracy = 100,
|
|
2416
|
+
.accuracy = percent(100),
|
|
2615
2417
|
.target = .Other,
|
|
2616
2418
|
},
|
|
2617
2419
|
};
|
|
@@ -2664,7 +2466,7 @@ pub const Move = enum(u8) {
|
|
|
2664
2466
|
FixedDamage,
|
|
2665
2467
|
FlameWheel,
|
|
2666
2468
|
FlinchChance,
|
|
2667
|
-
|
|
2469
|
+
FlyDig,
|
|
2668
2470
|
FocusEnergy,
|
|
2669
2471
|
ForceSwitch,
|
|
2670
2472
|
Foresight,
|
|
@@ -2727,7 +2529,7 @@ pub const Move = enum(u8) {
|
|
|
2727
2529
|
Sleep,
|
|
2728
2530
|
SleepTalk,
|
|
2729
2531
|
Snore,
|
|
2730
|
-
|
|
2532
|
+
SolarBeam,
|
|
2731
2533
|
SpAtkUp1,
|
|
2732
2534
|
SpDefDownChance,
|
|
2733
2535
|
SpDefUp2,
|
|
@@ -2758,6 +2560,11 @@ pub const Move = enum(u8) {
|
|
|
2758
2560
|
comptime {
|
|
2759
2561
|
assert(@sizeOf(Effect) == 1);
|
|
2760
2562
|
}
|
|
2563
|
+
|
|
2564
|
+
/// Whether this effect has a high critical rate.
|
|
2565
|
+
pub fn isHighCritical(effect: Effect) bool {
|
|
2566
|
+
return effect == .HighCritical or effect == .RazorWind;
|
|
2567
|
+
}
|
|
2761
2568
|
};
|
|
2762
2569
|
|
|
2763
2570
|
const Target = enum(u8) {
|
|
@@ -2781,6 +2588,260 @@ pub const Move = enum(u8) {
|
|
|
2781
2588
|
RandomFoe,
|
|
2782
2589
|
};
|
|
2783
2590
|
|
|
2591
|
+
const PP = [_]u8{
|
|
2592
|
+
35, // Pound
|
|
2593
|
+
25, // KarateChop
|
|
2594
|
+
10, // DoubleSlap
|
|
2595
|
+
15, // CometPunch
|
|
2596
|
+
20, // MegaPunch
|
|
2597
|
+
20, // PayDay
|
|
2598
|
+
15, // FirePunch
|
|
2599
|
+
15, // IcePunch
|
|
2600
|
+
15, // ThunderPunch
|
|
2601
|
+
35, // Scratch
|
|
2602
|
+
30, // ViseGrip
|
|
2603
|
+
5, // Guillotine
|
|
2604
|
+
10, // RazorWind
|
|
2605
|
+
30, // SwordsDance
|
|
2606
|
+
30, // Cut
|
|
2607
|
+
35, // Gust
|
|
2608
|
+
35, // WingAttack
|
|
2609
|
+
20, // Whirlwind
|
|
2610
|
+
15, // Fly
|
|
2611
|
+
20, // Bind
|
|
2612
|
+
20, // Slam
|
|
2613
|
+
10, // VineWhip
|
|
2614
|
+
20, // Stomp
|
|
2615
|
+
30, // DoubleKick
|
|
2616
|
+
5, // MegaKick
|
|
2617
|
+
25, // JumpKick
|
|
2618
|
+
15, // RollingKick
|
|
2619
|
+
15, // SandAttack
|
|
2620
|
+
15, // Headbutt
|
|
2621
|
+
25, // HornAttack
|
|
2622
|
+
20, // FuryAttack
|
|
2623
|
+
5, // HornDrill
|
|
2624
|
+
35, // Tackle
|
|
2625
|
+
15, // BodySlam
|
|
2626
|
+
20, // Wrap
|
|
2627
|
+
20, // TakeDown
|
|
2628
|
+
20, // Thrash
|
|
2629
|
+
15, // DoubleEdge
|
|
2630
|
+
30, // TailWhip
|
|
2631
|
+
35, // PoisonSting
|
|
2632
|
+
20, // Twineedle
|
|
2633
|
+
20, // PinMissile
|
|
2634
|
+
30, // Leer
|
|
2635
|
+
25, // Bite
|
|
2636
|
+
40, // Growl
|
|
2637
|
+
20, // Roar
|
|
2638
|
+
15, // Sing
|
|
2639
|
+
20, // Supersonic
|
|
2640
|
+
20, // SonicBoom
|
|
2641
|
+
20, // Disable
|
|
2642
|
+
30, // Acid
|
|
2643
|
+
25, // Ember
|
|
2644
|
+
15, // Flamethrower
|
|
2645
|
+
30, // Mist
|
|
2646
|
+
25, // WaterGun
|
|
2647
|
+
5, // HydroPump
|
|
2648
|
+
15, // Surf
|
|
2649
|
+
10, // IceBeam
|
|
2650
|
+
5, // Blizzard
|
|
2651
|
+
20, // Psybeam
|
|
2652
|
+
20, // BubbleBeam
|
|
2653
|
+
20, // AuroraBeam
|
|
2654
|
+
5, // HyperBeam
|
|
2655
|
+
35, // Peck
|
|
2656
|
+
20, // DrillPeck
|
|
2657
|
+
25, // Submission
|
|
2658
|
+
20, // LowKick
|
|
2659
|
+
20, // Counter
|
|
2660
|
+
20, // SeismicToss
|
|
2661
|
+
15, // Strength
|
|
2662
|
+
20, // Absorb
|
|
2663
|
+
10, // MegaDrain
|
|
2664
|
+
10, // LeechSeed
|
|
2665
|
+
40, // Growth
|
|
2666
|
+
25, // RazorLeaf
|
|
2667
|
+
10, // SolarBeam
|
|
2668
|
+
35, // PoisonPowder
|
|
2669
|
+
30, // StunSpore
|
|
2670
|
+
15, // SleepPowder
|
|
2671
|
+
20, // PetalDance
|
|
2672
|
+
40, // StringShot
|
|
2673
|
+
10, // DragonRage
|
|
2674
|
+
15, // FireSpin
|
|
2675
|
+
30, // ThunderShock
|
|
2676
|
+
15, // Thunderbolt
|
|
2677
|
+
20, // ThunderWave
|
|
2678
|
+
10, // Thunder
|
|
2679
|
+
15, // RockThrow
|
|
2680
|
+
10, // Earthquake
|
|
2681
|
+
5, // Fissure
|
|
2682
|
+
10, // Dig
|
|
2683
|
+
10, // Toxic
|
|
2684
|
+
25, // Confusion
|
|
2685
|
+
10, // Psychic
|
|
2686
|
+
20, // Hypnosis
|
|
2687
|
+
40, // Meditate
|
|
2688
|
+
30, // Agility
|
|
2689
|
+
30, // QuickAttack
|
|
2690
|
+
20, // Rage
|
|
2691
|
+
20, // Teleport
|
|
2692
|
+
15, // NightShade
|
|
2693
|
+
10, // Mimic
|
|
2694
|
+
40, // Screech
|
|
2695
|
+
15, // DoubleTeam
|
|
2696
|
+
20, // Recover
|
|
2697
|
+
30, // Harden
|
|
2698
|
+
20, // Minimize
|
|
2699
|
+
20, // Smokescreen
|
|
2700
|
+
10, // ConfuseRay
|
|
2701
|
+
40, // Withdraw
|
|
2702
|
+
40, // DefenseCurl
|
|
2703
|
+
30, // Barrier
|
|
2704
|
+
30, // LightScreen
|
|
2705
|
+
30, // Haze
|
|
2706
|
+
20, // Reflect
|
|
2707
|
+
30, // FocusEnergy
|
|
2708
|
+
10, // Bide
|
|
2709
|
+
10, // Metronome
|
|
2710
|
+
20, // MirrorMove
|
|
2711
|
+
5, // SelfDestruct
|
|
2712
|
+
10, // EggBomb
|
|
2713
|
+
30, // Lick
|
|
2714
|
+
20, // Smog
|
|
2715
|
+
20, // Sludge
|
|
2716
|
+
20, // BoneClub
|
|
2717
|
+
5, // FireBlast
|
|
2718
|
+
15, // Waterfall
|
|
2719
|
+
10, // Clamp
|
|
2720
|
+
20, // Swift
|
|
2721
|
+
15, // SkullBash
|
|
2722
|
+
15, // SpikeCannon
|
|
2723
|
+
35, // Constrict
|
|
2724
|
+
20, // Amnesia
|
|
2725
|
+
15, // Kinesis
|
|
2726
|
+
10, // SoftBoiled
|
|
2727
|
+
20, // HighJumpKick
|
|
2728
|
+
30, // Glare
|
|
2729
|
+
15, // DreamEater
|
|
2730
|
+
40, // PoisonGas
|
|
2731
|
+
20, // Barrage
|
|
2732
|
+
15, // LeechLife
|
|
2733
|
+
10, // LovelyKiss
|
|
2734
|
+
5, // SkyAttack
|
|
2735
|
+
10, // Transform
|
|
2736
|
+
30, // Bubble
|
|
2737
|
+
10, // DizzyPunch
|
|
2738
|
+
15, // Spore
|
|
2739
|
+
20, // Flash
|
|
2740
|
+
15, // Psywave
|
|
2741
|
+
40, // Splash
|
|
2742
|
+
40, // AcidArmor
|
|
2743
|
+
10, // Crabhammer
|
|
2744
|
+
5, // Explosion
|
|
2745
|
+
15, // FurySwipes
|
|
2746
|
+
10, // Bonemerang
|
|
2747
|
+
10, // Rest
|
|
2748
|
+
10, // RockSlide
|
|
2749
|
+
15, // HyperFang
|
|
2750
|
+
30, // Sharpen
|
|
2751
|
+
30, // Conversion
|
|
2752
|
+
10, // TriAttack
|
|
2753
|
+
10, // SuperFang
|
|
2754
|
+
20, // Slash
|
|
2755
|
+
10, // Substitute
|
|
2756
|
+
1, // Struggle
|
|
2757
|
+
1, // Sketch
|
|
2758
|
+
10, // TripleKick
|
|
2759
|
+
10, // Thief
|
|
2760
|
+
10, // SpiderWeb
|
|
2761
|
+
5, // MindReader
|
|
2762
|
+
15, // Nightmare
|
|
2763
|
+
25, // FlameWheel
|
|
2764
|
+
15, // Snore
|
|
2765
|
+
10, // Curse
|
|
2766
|
+
15, // Flail
|
|
2767
|
+
30, // Conversion2
|
|
2768
|
+
5, // Aeroblast
|
|
2769
|
+
40, // CottonSpore
|
|
2770
|
+
15, // Reversal
|
|
2771
|
+
10, // Spite
|
|
2772
|
+
25, // PowderSnow
|
|
2773
|
+
10, // Protect
|
|
2774
|
+
30, // MachPunch
|
|
2775
|
+
10, // ScaryFace
|
|
2776
|
+
20, // FeintAttack
|
|
2777
|
+
10, // SweetKiss
|
|
2778
|
+
10, // BellyDrum
|
|
2779
|
+
10, // SludgeBomb
|
|
2780
|
+
10, // MudSlap
|
|
2781
|
+
10, // Octazooka
|
|
2782
|
+
20, // Spikes
|
|
2783
|
+
5, // ZapCannon
|
|
2784
|
+
40, // Foresight
|
|
2785
|
+
5, // DestinyBond
|
|
2786
|
+
5, // PerishSong
|
|
2787
|
+
15, // IcyWind
|
|
2788
|
+
5, // Detect
|
|
2789
|
+
10, // BoneRush
|
|
2790
|
+
5, // LockOn
|
|
2791
|
+
15, // Outrage
|
|
2792
|
+
10, // Sandstorm
|
|
2793
|
+
5, // GigaDrain
|
|
2794
|
+
10, // Endure
|
|
2795
|
+
20, // Charm
|
|
2796
|
+
20, // Rollout
|
|
2797
|
+
40, // FalseSwipe
|
|
2798
|
+
15, // Swagger
|
|
2799
|
+
10, // MilkDrink
|
|
2800
|
+
20, // Spark
|
|
2801
|
+
20, // FuryCutter
|
|
2802
|
+
25, // SteelWing
|
|
2803
|
+
5, // MeanLook
|
|
2804
|
+
15, // Attract
|
|
2805
|
+
10, // SleepTalk
|
|
2806
|
+
5, // HealBell
|
|
2807
|
+
20, // Return
|
|
2808
|
+
15, // Present
|
|
2809
|
+
20, // Frustration
|
|
2810
|
+
25, // Safeguard
|
|
2811
|
+
20, // PainSplit
|
|
2812
|
+
5, // SacredFire
|
|
2813
|
+
30, // Magnitude
|
|
2814
|
+
5, // DynamicPunch
|
|
2815
|
+
10, // Megahorn
|
|
2816
|
+
20, // DragonBreath
|
|
2817
|
+
40, // BatonPass
|
|
2818
|
+
5, // Encore
|
|
2819
|
+
20, // Pursuit
|
|
2820
|
+
40, // RapidSpin
|
|
2821
|
+
20, // SweetScent
|
|
2822
|
+
15, // IronTail
|
|
2823
|
+
35, // MetalClaw
|
|
2824
|
+
10, // VitalThrow
|
|
2825
|
+
5, // MorningSun
|
|
2826
|
+
5, // Synthesis
|
|
2827
|
+
5, // Moonlight
|
|
2828
|
+
15, // HiddenPower
|
|
2829
|
+
5, // CrossChop
|
|
2830
|
+
20, // Twister
|
|
2831
|
+
5, // RainDance
|
|
2832
|
+
5, // SunnyDay
|
|
2833
|
+
15, // Crunch
|
|
2834
|
+
20, // MirrorCoat
|
|
2835
|
+
10, // PsychUp
|
|
2836
|
+
5, // ExtremeSpeed
|
|
2837
|
+
5, // AncientPower
|
|
2838
|
+
15, // ShadowBall
|
|
2839
|
+
15, // FutureSight
|
|
2840
|
+
15, // RockSmash
|
|
2841
|
+
15, // Whirlpool
|
|
2842
|
+
10, // BeatUp,
|
|
2843
|
+
};
|
|
2844
|
+
|
|
2784
2845
|
comptime {
|
|
2785
2846
|
assert(@sizeOf(Move) == 1);
|
|
2786
2847
|
assert(@sizeOf(@TypeOf(DATA)) == 2008);
|
|
@@ -2789,9 +2850,29 @@ pub const Move = enum(u8) {
|
|
|
2789
2850
|
/// The number of Pokémon moves in this generation.
|
|
2790
2851
|
pub const size = 251;
|
|
2791
2852
|
|
|
2853
|
+
/// Pokémon moves that can be called by Metronome in this generation.
|
|
2854
|
+
pub const METRONOME = init: {
|
|
2855
|
+
var num = 0;
|
|
2856
|
+
var moves: [239]Move = undefined;
|
|
2857
|
+
for (1..Move.size + 1) |i| {
|
|
2858
|
+
if (Move.get(@enumFromInt(i)).extra.metronome) {
|
|
2859
|
+
moves[num] = @enumFromInt(i);
|
|
2860
|
+
num += 1;
|
|
2861
|
+
}
|
|
2862
|
+
}
|
|
2863
|
+
assert(num == moves.len);
|
|
2864
|
+
break :init moves;
|
|
2865
|
+
};
|
|
2866
|
+
|
|
2792
2867
|
/// Returns the `Data` corresponding to the move.
|
|
2793
|
-
pub
|
|
2868
|
+
pub fn get(id: Move) Data {
|
|
2794
2869
|
assert(id != .None);
|
|
2795
2870
|
return DATA[@intFromEnum(id) - 1];
|
|
2796
2871
|
}
|
|
2872
|
+
|
|
2873
|
+
/// Returns the base PP of the move.
|
|
2874
|
+
pub fn pp(id: Move) u8 {
|
|
2875
|
+
assert(id != .None);
|
|
2876
|
+
return PP[@intFromEnum(id) - 1];
|
|
2877
|
+
}
|
|
2797
2878
|
};
|