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