@pkmn/engine 0.1.0-dev.e5b5a998 → 0.1.0-dev.f6c1a379
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 +53 -42
- package/build/pkg/addon.js +3 -2
- package/build/pkg/addon.js.map +1 -1
- package/build/pkg/data/ids.json +12 -12
- package/build/pkg/data/layout.json +24 -2
- package/build/pkg/data/protocol.json +69 -12
- package/build/pkg/data.d.ts +2 -2
- package/build/pkg/gen1.js +13 -16
- 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 +82 -57
- package/package.json +33 -15
- package/src/bin/install-pkmn-engine +10 -5
- package/src/lib/binding/node.zig +46 -141
- package/src/lib/binding/wasm.zig +4 -2
- package/src/lib/common/battle.zig +17 -0
- package/src/lib/common/data.zig +15 -27
- package/src/lib/common/debug.zig +20 -11
- package/src/lib/common/js.zig +118 -0
- package/src/lib/common/optional.zig +60 -0
- package/src/lib/common/options.zig +9 -0
- package/src/lib/common/protocol.zig +646 -138
- package/src/lib/common/rational.zig +353 -0
- package/src/lib/common/rng.zig +15 -15
- package/src/lib/common/util.zig +12 -0
- package/src/lib/gen1/README.md +257 -177
- package/src/lib/gen1/calc.zig +426 -0
- package/src/lib/gen1/chance.zig +1058 -0
- package/src/lib/gen1/data/moves.zig +168 -170
- package/src/lib/gen1/data/types.zig +3 -3
- package/src/lib/gen1/data.zig +61 -51
- package/src/lib/gen1/helpers.zig +588 -17
- package/src/lib/gen1/mechanics.zig +776 -502
- package/src/lib/gen2/README.md +106 -85
- package/src/lib/gen2/data/items.zig +11 -17
- package/src/lib/gen2/data/moves.zig +639 -562
- package/src/lib/gen2/data/types.zig +127 -25
- package/src/lib/gen2/data.zig +104 -78
- package/src/lib/gen2/helpers.zig +15 -21
- package/src/lib/gen2/mechanics.zig +1444 -11
- package/src/lib/pkmn.zig +61 -2
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
const std = @import("std");
|
|
4
4
|
|
|
5
|
+
const rng = @import("../../common/rng.zig");
|
|
5
6
|
const gen1 = @import("../../gen1/data.zig");
|
|
6
7
|
|
|
7
8
|
const assert = std.debug.assert;
|
|
8
9
|
|
|
10
|
+
const percent = rng.Gen12.percent;
|
|
9
11
|
const Type = gen1.Type;
|
|
10
12
|
|
|
11
13
|
/// Representation of a Generation I Pokémon move.
|
|
@@ -181,7 +183,7 @@ pub const Move = enum(u8) {
|
|
|
181
183
|
SKIP_TURN = 0xFF,
|
|
182
184
|
|
|
183
185
|
/// Data associated with a Pokémon move.
|
|
184
|
-
pub const Data = packed struct {
|
|
186
|
+
pub const Data = packed struct(u32) {
|
|
185
187
|
effect: Effect,
|
|
186
188
|
/// The move's base PP.
|
|
187
189
|
bp: u8,
|
|
@@ -191,10 +193,6 @@ pub const Move = enum(u8) {
|
|
|
191
193
|
type: Type,
|
|
192
194
|
/// The move's targeting behavior.
|
|
193
195
|
target: Target,
|
|
194
|
-
|
|
195
|
-
comptime {
|
|
196
|
-
assert(@sizeOf(Data) == 4);
|
|
197
|
-
}
|
|
198
196
|
};
|
|
199
197
|
|
|
200
198
|
const DATA = [_]Data{
|
|
@@ -203,7 +201,7 @@ pub const Move = enum(u8) {
|
|
|
203
201
|
.effect = .None,
|
|
204
202
|
.bp = 40,
|
|
205
203
|
.type = .Normal,
|
|
206
|
-
.accuracy = 100,
|
|
204
|
+
.accuracy = percent(100),
|
|
207
205
|
.target = .Other,
|
|
208
206
|
},
|
|
209
207
|
// KarateChop
|
|
@@ -211,7 +209,7 @@ pub const Move = enum(u8) {
|
|
|
211
209
|
.effect = .HighCritical,
|
|
212
210
|
.bp = 50,
|
|
213
211
|
.type = .Normal,
|
|
214
|
-
.accuracy = 100,
|
|
212
|
+
.accuracy = percent(100),
|
|
215
213
|
.target = .Other,
|
|
216
214
|
},
|
|
217
215
|
// DoubleSlap
|
|
@@ -219,7 +217,7 @@ pub const Move = enum(u8) {
|
|
|
219
217
|
.effect = .MultiHit,
|
|
220
218
|
.bp = 15,
|
|
221
219
|
.type = .Normal,
|
|
222
|
-
.accuracy = 85,
|
|
220
|
+
.accuracy = percent(85),
|
|
223
221
|
.target = .Other,
|
|
224
222
|
},
|
|
225
223
|
// CometPunch
|
|
@@ -227,7 +225,7 @@ pub const Move = enum(u8) {
|
|
|
227
225
|
.effect = .MultiHit,
|
|
228
226
|
.bp = 18,
|
|
229
227
|
.type = .Normal,
|
|
230
|
-
.accuracy = 85,
|
|
228
|
+
.accuracy = percent(85),
|
|
231
229
|
.target = .Other,
|
|
232
230
|
},
|
|
233
231
|
// MegaPunch
|
|
@@ -235,7 +233,7 @@ pub const Move = enum(u8) {
|
|
|
235
233
|
.effect = .None,
|
|
236
234
|
.bp = 80,
|
|
237
235
|
.type = .Normal,
|
|
238
|
-
.accuracy = 85,
|
|
236
|
+
.accuracy = percent(85),
|
|
239
237
|
.target = .Other,
|
|
240
238
|
},
|
|
241
239
|
// PayDay
|
|
@@ -243,7 +241,7 @@ pub const Move = enum(u8) {
|
|
|
243
241
|
.effect = .PayDay,
|
|
244
242
|
.bp = 40,
|
|
245
243
|
.type = .Normal,
|
|
246
|
-
.accuracy = 100,
|
|
244
|
+
.accuracy = percent(100),
|
|
247
245
|
.target = .Other,
|
|
248
246
|
},
|
|
249
247
|
// FirePunch
|
|
@@ -251,7 +249,7 @@ pub const Move = enum(u8) {
|
|
|
251
249
|
.effect = .BurnChance1,
|
|
252
250
|
.bp = 75,
|
|
253
251
|
.type = .Fire,
|
|
254
|
-
.accuracy = 100,
|
|
252
|
+
.accuracy = percent(100),
|
|
255
253
|
.target = .Other,
|
|
256
254
|
},
|
|
257
255
|
// IcePunch
|
|
@@ -259,7 +257,7 @@ pub const Move = enum(u8) {
|
|
|
259
257
|
.effect = .FreezeChance,
|
|
260
258
|
.bp = 75,
|
|
261
259
|
.type = .Ice,
|
|
262
|
-
.accuracy = 100,
|
|
260
|
+
.accuracy = percent(100),
|
|
263
261
|
.target = .Other,
|
|
264
262
|
},
|
|
265
263
|
// ThunderPunch
|
|
@@ -267,7 +265,7 @@ pub const Move = enum(u8) {
|
|
|
267
265
|
.effect = .ParalyzeChance1,
|
|
268
266
|
.bp = 75,
|
|
269
267
|
.type = .Electric,
|
|
270
|
-
.accuracy = 100,
|
|
268
|
+
.accuracy = percent(100),
|
|
271
269
|
.target = .Other,
|
|
272
270
|
},
|
|
273
271
|
// Scratch
|
|
@@ -275,7 +273,7 @@ pub const Move = enum(u8) {
|
|
|
275
273
|
.effect = .None,
|
|
276
274
|
.bp = 40,
|
|
277
275
|
.type = .Normal,
|
|
278
|
-
.accuracy = 100,
|
|
276
|
+
.accuracy = percent(100),
|
|
279
277
|
.target = .Other,
|
|
280
278
|
},
|
|
281
279
|
// ViseGrip
|
|
@@ -283,7 +281,7 @@ pub const Move = enum(u8) {
|
|
|
283
281
|
.effect = .None,
|
|
284
282
|
.bp = 55,
|
|
285
283
|
.type = .Normal,
|
|
286
|
-
.accuracy = 100,
|
|
284
|
+
.accuracy = percent(100),
|
|
287
285
|
.target = .Other,
|
|
288
286
|
},
|
|
289
287
|
// Guillotine
|
|
@@ -291,7 +289,7 @@ pub const Move = enum(u8) {
|
|
|
291
289
|
.effect = .OHKO,
|
|
292
290
|
.bp = 0,
|
|
293
291
|
.type = .Normal,
|
|
294
|
-
.accuracy = 30,
|
|
292
|
+
.accuracy = percent(30),
|
|
295
293
|
.target = .Other,
|
|
296
294
|
},
|
|
297
295
|
// RazorWind
|
|
@@ -299,7 +297,7 @@ pub const Move = enum(u8) {
|
|
|
299
297
|
.effect = .Charge,
|
|
300
298
|
.bp = 80,
|
|
301
299
|
.type = .Normal,
|
|
302
|
-
.accuracy = 75,
|
|
300
|
+
.accuracy = percent(75),
|
|
303
301
|
.target = .Other,
|
|
304
302
|
},
|
|
305
303
|
// SwordsDance
|
|
@@ -307,7 +305,7 @@ pub const Move = enum(u8) {
|
|
|
307
305
|
.effect = .AttackUp2,
|
|
308
306
|
.bp = 0,
|
|
309
307
|
.type = .Normal,
|
|
310
|
-
.accuracy = 100,
|
|
308
|
+
.accuracy = percent(100),
|
|
311
309
|
.target = .Self,
|
|
312
310
|
},
|
|
313
311
|
// Cut
|
|
@@ -315,7 +313,7 @@ pub const Move = enum(u8) {
|
|
|
315
313
|
.effect = .None,
|
|
316
314
|
.bp = 50,
|
|
317
315
|
.type = .Normal,
|
|
318
|
-
.accuracy = 95,
|
|
316
|
+
.accuracy = percent(95),
|
|
319
317
|
.target = .Other,
|
|
320
318
|
},
|
|
321
319
|
// Gust
|
|
@@ -323,7 +321,7 @@ pub const Move = enum(u8) {
|
|
|
323
321
|
.effect = .None,
|
|
324
322
|
.bp = 40,
|
|
325
323
|
.type = .Normal,
|
|
326
|
-
.accuracy = 100,
|
|
324
|
+
.accuracy = percent(100),
|
|
327
325
|
.target = .Any,
|
|
328
326
|
},
|
|
329
327
|
// WingAttack
|
|
@@ -331,7 +329,7 @@ pub const Move = enum(u8) {
|
|
|
331
329
|
.effect = .None,
|
|
332
330
|
.bp = 35,
|
|
333
331
|
.type = .Flying,
|
|
334
|
-
.accuracy = 100,
|
|
332
|
+
.accuracy = percent(100),
|
|
335
333
|
.target = .Any,
|
|
336
334
|
},
|
|
337
335
|
// Whirlwind
|
|
@@ -339,7 +337,7 @@ pub const Move = enum(u8) {
|
|
|
339
337
|
.effect = .SwitchAndTeleport,
|
|
340
338
|
.bp = 0,
|
|
341
339
|
.type = .Normal,
|
|
342
|
-
.accuracy = 85,
|
|
340
|
+
.accuracy = percent(85),
|
|
343
341
|
.target = .Other,
|
|
344
342
|
},
|
|
345
343
|
// Fly
|
|
@@ -347,7 +345,7 @@ pub const Move = enum(u8) {
|
|
|
347
345
|
.effect = .Charge,
|
|
348
346
|
.bp = 70,
|
|
349
347
|
.type = .Flying,
|
|
350
|
-
.accuracy = 95,
|
|
348
|
+
.accuracy = percent(95),
|
|
351
349
|
.target = .Any,
|
|
352
350
|
},
|
|
353
351
|
// Bind
|
|
@@ -355,7 +353,7 @@ pub const Move = enum(u8) {
|
|
|
355
353
|
.effect = .Binding,
|
|
356
354
|
.bp = 15,
|
|
357
355
|
.type = .Normal,
|
|
358
|
-
.accuracy = 75,
|
|
356
|
+
.accuracy = percent(75),
|
|
359
357
|
.target = .Other,
|
|
360
358
|
},
|
|
361
359
|
// Slam
|
|
@@ -363,7 +361,7 @@ pub const Move = enum(u8) {
|
|
|
363
361
|
.effect = .None,
|
|
364
362
|
.bp = 80,
|
|
365
363
|
.type = .Normal,
|
|
366
|
-
.accuracy = 75,
|
|
364
|
+
.accuracy = percent(75),
|
|
367
365
|
.target = .Other,
|
|
368
366
|
},
|
|
369
367
|
// VineWhip
|
|
@@ -371,7 +369,7 @@ pub const Move = enum(u8) {
|
|
|
371
369
|
.effect = .None,
|
|
372
370
|
.bp = 35,
|
|
373
371
|
.type = .Grass,
|
|
374
|
-
.accuracy = 100,
|
|
372
|
+
.accuracy = percent(100),
|
|
375
373
|
.target = .Other,
|
|
376
374
|
},
|
|
377
375
|
// Stomp
|
|
@@ -379,7 +377,7 @@ pub const Move = enum(u8) {
|
|
|
379
377
|
.effect = .FlinchChance2,
|
|
380
378
|
.bp = 65,
|
|
381
379
|
.type = .Normal,
|
|
382
|
-
.accuracy = 100,
|
|
380
|
+
.accuracy = percent(100),
|
|
383
381
|
.target = .Other,
|
|
384
382
|
},
|
|
385
383
|
// DoubleKick
|
|
@@ -387,7 +385,7 @@ pub const Move = enum(u8) {
|
|
|
387
385
|
.effect = .DoubleHit,
|
|
388
386
|
.bp = 30,
|
|
389
387
|
.type = .Fighting,
|
|
390
|
-
.accuracy = 100,
|
|
388
|
+
.accuracy = percent(100),
|
|
391
389
|
.target = .Other,
|
|
392
390
|
},
|
|
393
391
|
// MegaKick
|
|
@@ -395,7 +393,7 @@ pub const Move = enum(u8) {
|
|
|
395
393
|
.effect = .None,
|
|
396
394
|
.bp = 120,
|
|
397
395
|
.type = .Normal,
|
|
398
|
-
.accuracy = 75,
|
|
396
|
+
.accuracy = percent(75),
|
|
399
397
|
.target = .Other,
|
|
400
398
|
},
|
|
401
399
|
// JumpKick
|
|
@@ -403,7 +401,7 @@ pub const Move = enum(u8) {
|
|
|
403
401
|
.effect = .JumpKick,
|
|
404
402
|
.bp = 70,
|
|
405
403
|
.type = .Fighting,
|
|
406
|
-
.accuracy = 95,
|
|
404
|
+
.accuracy = percent(95),
|
|
407
405
|
.target = .Other,
|
|
408
406
|
},
|
|
409
407
|
// RollingKick
|
|
@@ -411,7 +409,7 @@ pub const Move = enum(u8) {
|
|
|
411
409
|
.effect = .FlinchChance2,
|
|
412
410
|
.bp = 60,
|
|
413
411
|
.type = .Fighting,
|
|
414
|
-
.accuracy = 85,
|
|
412
|
+
.accuracy = percent(85),
|
|
415
413
|
.target = .Other,
|
|
416
414
|
},
|
|
417
415
|
// SandAttack
|
|
@@ -419,7 +417,7 @@ pub const Move = enum(u8) {
|
|
|
419
417
|
.effect = .AccuracyDown1,
|
|
420
418
|
.bp = 0,
|
|
421
419
|
.type = .Normal,
|
|
422
|
-
.accuracy = 100,
|
|
420
|
+
.accuracy = percent(100),
|
|
423
421
|
.target = .Other,
|
|
424
422
|
},
|
|
425
423
|
// Headbutt
|
|
@@ -427,7 +425,7 @@ pub const Move = enum(u8) {
|
|
|
427
425
|
.effect = .FlinchChance2,
|
|
428
426
|
.bp = 70,
|
|
429
427
|
.type = .Normal,
|
|
430
|
-
.accuracy = 100,
|
|
428
|
+
.accuracy = percent(100),
|
|
431
429
|
.target = .Other,
|
|
432
430
|
},
|
|
433
431
|
// HornAttack
|
|
@@ -435,7 +433,7 @@ pub const Move = enum(u8) {
|
|
|
435
433
|
.effect = .None,
|
|
436
434
|
.bp = 65,
|
|
437
435
|
.type = .Normal,
|
|
438
|
-
.accuracy = 100,
|
|
436
|
+
.accuracy = percent(100),
|
|
439
437
|
.target = .Other,
|
|
440
438
|
},
|
|
441
439
|
// FuryAttack
|
|
@@ -443,7 +441,7 @@ pub const Move = enum(u8) {
|
|
|
443
441
|
.effect = .MultiHit,
|
|
444
442
|
.bp = 15,
|
|
445
443
|
.type = .Normal,
|
|
446
|
-
.accuracy = 85,
|
|
444
|
+
.accuracy = percent(85),
|
|
447
445
|
.target = .Other,
|
|
448
446
|
},
|
|
449
447
|
// HornDrill
|
|
@@ -451,7 +449,7 @@ pub const Move = enum(u8) {
|
|
|
451
449
|
.effect = .OHKO,
|
|
452
450
|
.bp = 0,
|
|
453
451
|
.type = .Normal,
|
|
454
|
-
.accuracy = 30,
|
|
452
|
+
.accuracy = percent(30),
|
|
455
453
|
.target = .Other,
|
|
456
454
|
},
|
|
457
455
|
// Tackle
|
|
@@ -459,7 +457,7 @@ pub const Move = enum(u8) {
|
|
|
459
457
|
.effect = .None,
|
|
460
458
|
.bp = 35,
|
|
461
459
|
.type = .Normal,
|
|
462
|
-
.accuracy = 95,
|
|
460
|
+
.accuracy = percent(95),
|
|
463
461
|
.target = .Other,
|
|
464
462
|
},
|
|
465
463
|
// BodySlam
|
|
@@ -467,7 +465,7 @@ pub const Move = enum(u8) {
|
|
|
467
465
|
.effect = .ParalyzeChance2,
|
|
468
466
|
.bp = 85,
|
|
469
467
|
.type = .Normal,
|
|
470
|
-
.accuracy = 100,
|
|
468
|
+
.accuracy = percent(100),
|
|
471
469
|
.target = .Other,
|
|
472
470
|
},
|
|
473
471
|
// Wrap
|
|
@@ -475,7 +473,7 @@ pub const Move = enum(u8) {
|
|
|
475
473
|
.effect = .Binding,
|
|
476
474
|
.bp = 15,
|
|
477
475
|
.type = .Normal,
|
|
478
|
-
.accuracy = 85,
|
|
476
|
+
.accuracy = percent(85),
|
|
479
477
|
.target = .Other,
|
|
480
478
|
},
|
|
481
479
|
// TakeDown
|
|
@@ -483,7 +481,7 @@ pub const Move = enum(u8) {
|
|
|
483
481
|
.effect = .Recoil,
|
|
484
482
|
.bp = 90,
|
|
485
483
|
.type = .Normal,
|
|
486
|
-
.accuracy = 85,
|
|
484
|
+
.accuracy = percent(85),
|
|
487
485
|
.target = .Other,
|
|
488
486
|
},
|
|
489
487
|
// Thrash
|
|
@@ -491,7 +489,7 @@ pub const Move = enum(u8) {
|
|
|
491
489
|
.effect = .Thrashing,
|
|
492
490
|
.bp = 90,
|
|
493
491
|
.type = .Normal,
|
|
494
|
-
.accuracy = 100,
|
|
492
|
+
.accuracy = percent(100),
|
|
495
493
|
.target = .RandomFoe,
|
|
496
494
|
},
|
|
497
495
|
// DoubleEdge
|
|
@@ -499,7 +497,7 @@ pub const Move = enum(u8) {
|
|
|
499
497
|
.effect = .Recoil,
|
|
500
498
|
.bp = 100,
|
|
501
499
|
.type = .Normal,
|
|
502
|
-
.accuracy = 100,
|
|
500
|
+
.accuracy = percent(100),
|
|
503
501
|
.target = .Other,
|
|
504
502
|
},
|
|
505
503
|
// TailWhip
|
|
@@ -507,7 +505,7 @@ pub const Move = enum(u8) {
|
|
|
507
505
|
.effect = .DefenseDown1,
|
|
508
506
|
.bp = 0,
|
|
509
507
|
.type = .Normal,
|
|
510
|
-
.accuracy = 100,
|
|
508
|
+
.accuracy = percent(100),
|
|
511
509
|
.target = .Foes,
|
|
512
510
|
},
|
|
513
511
|
// PoisonSting
|
|
@@ -515,7 +513,7 @@ pub const Move = enum(u8) {
|
|
|
515
513
|
.effect = .PoisonChance1,
|
|
516
514
|
.bp = 15,
|
|
517
515
|
.type = .Poison,
|
|
518
|
-
.accuracy = 100,
|
|
516
|
+
.accuracy = percent(100),
|
|
519
517
|
.target = .Other,
|
|
520
518
|
},
|
|
521
519
|
// Twineedle
|
|
@@ -523,7 +521,7 @@ pub const Move = enum(u8) {
|
|
|
523
521
|
.effect = .Twineedle,
|
|
524
522
|
.bp = 25,
|
|
525
523
|
.type = .Bug,
|
|
526
|
-
.accuracy = 100,
|
|
524
|
+
.accuracy = percent(100),
|
|
527
525
|
.target = .Other,
|
|
528
526
|
},
|
|
529
527
|
// PinMissile
|
|
@@ -531,7 +529,7 @@ pub const Move = enum(u8) {
|
|
|
531
529
|
.effect = .MultiHit,
|
|
532
530
|
.bp = 14,
|
|
533
531
|
.type = .Bug,
|
|
534
|
-
.accuracy = 85,
|
|
532
|
+
.accuracy = percent(85),
|
|
535
533
|
.target = .Other,
|
|
536
534
|
},
|
|
537
535
|
// Leer
|
|
@@ -539,7 +537,7 @@ pub const Move = enum(u8) {
|
|
|
539
537
|
.effect = .DefenseDown1,
|
|
540
538
|
.bp = 0,
|
|
541
539
|
.type = .Normal,
|
|
542
|
-
.accuracy = 100,
|
|
540
|
+
.accuracy = percent(100),
|
|
543
541
|
.target = .Foes,
|
|
544
542
|
},
|
|
545
543
|
// Bite
|
|
@@ -547,7 +545,7 @@ pub const Move = enum(u8) {
|
|
|
547
545
|
.effect = .FlinchChance1,
|
|
548
546
|
.bp = 60,
|
|
549
547
|
.type = .Normal,
|
|
550
|
-
.accuracy = 100,
|
|
548
|
+
.accuracy = percent(100),
|
|
551
549
|
.target = .Other,
|
|
552
550
|
},
|
|
553
551
|
// Growl
|
|
@@ -555,7 +553,7 @@ pub const Move = enum(u8) {
|
|
|
555
553
|
.effect = .AttackDown1,
|
|
556
554
|
.bp = 0,
|
|
557
555
|
.type = .Normal,
|
|
558
|
-
.accuracy = 100,
|
|
556
|
+
.accuracy = percent(100),
|
|
559
557
|
.target = .Foes,
|
|
560
558
|
},
|
|
561
559
|
// Roar
|
|
@@ -563,7 +561,7 @@ pub const Move = enum(u8) {
|
|
|
563
561
|
.effect = .SwitchAndTeleport,
|
|
564
562
|
.bp = 0,
|
|
565
563
|
.type = .Normal,
|
|
566
|
-
.accuracy = 100,
|
|
564
|
+
.accuracy = percent(100),
|
|
567
565
|
.target = .Other,
|
|
568
566
|
},
|
|
569
567
|
// Sing
|
|
@@ -571,7 +569,7 @@ pub const Move = enum(u8) {
|
|
|
571
569
|
.effect = .Sleep,
|
|
572
570
|
.bp = 0,
|
|
573
571
|
.type = .Normal,
|
|
574
|
-
.accuracy = 55,
|
|
572
|
+
.accuracy = percent(55),
|
|
575
573
|
.target = .Other,
|
|
576
574
|
},
|
|
577
575
|
// Supersonic
|
|
@@ -579,7 +577,7 @@ pub const Move = enum(u8) {
|
|
|
579
577
|
.effect = .Confusion,
|
|
580
578
|
.bp = 0,
|
|
581
579
|
.type = .Normal,
|
|
582
|
-
.accuracy = 55,
|
|
580
|
+
.accuracy = percent(55),
|
|
583
581
|
.target = .Other,
|
|
584
582
|
},
|
|
585
583
|
// SonicBoom
|
|
@@ -587,7 +585,7 @@ pub const Move = enum(u8) {
|
|
|
587
585
|
.effect = .SpecialDamage,
|
|
588
586
|
.bp = 1,
|
|
589
587
|
.type = .Normal,
|
|
590
|
-
.accuracy = 90,
|
|
588
|
+
.accuracy = percent(90),
|
|
591
589
|
.target = .Other,
|
|
592
590
|
},
|
|
593
591
|
// Disable
|
|
@@ -595,7 +593,7 @@ pub const Move = enum(u8) {
|
|
|
595
593
|
.effect = .Disable,
|
|
596
594
|
.bp = 0,
|
|
597
595
|
.type = .Normal,
|
|
598
|
-
.accuracy = 55,
|
|
596
|
+
.accuracy = percent(55),
|
|
599
597
|
.target = .Other,
|
|
600
598
|
},
|
|
601
599
|
// Acid
|
|
@@ -603,7 +601,7 @@ pub const Move = enum(u8) {
|
|
|
603
601
|
.effect = .DefenseDownChance,
|
|
604
602
|
.bp = 40,
|
|
605
603
|
.type = .Poison,
|
|
606
|
-
.accuracy = 100,
|
|
604
|
+
.accuracy = percent(100),
|
|
607
605
|
.target = .Other,
|
|
608
606
|
},
|
|
609
607
|
// Ember
|
|
@@ -611,7 +609,7 @@ pub const Move = enum(u8) {
|
|
|
611
609
|
.effect = .BurnChance1,
|
|
612
610
|
.bp = 40,
|
|
613
611
|
.type = .Fire,
|
|
614
|
-
.accuracy = 100,
|
|
612
|
+
.accuracy = percent(100),
|
|
615
613
|
.target = .Other,
|
|
616
614
|
},
|
|
617
615
|
// Flamethrower
|
|
@@ -619,7 +617,7 @@ pub const Move = enum(u8) {
|
|
|
619
617
|
.effect = .BurnChance1,
|
|
620
618
|
.bp = 95,
|
|
621
619
|
.type = .Fire,
|
|
622
|
-
.accuracy = 100,
|
|
620
|
+
.accuracy = percent(100),
|
|
623
621
|
.target = .Other,
|
|
624
622
|
},
|
|
625
623
|
// Mist
|
|
@@ -627,7 +625,7 @@ pub const Move = enum(u8) {
|
|
|
627
625
|
.effect = .Mist,
|
|
628
626
|
.bp = 0,
|
|
629
627
|
.type = .Ice,
|
|
630
|
-
.accuracy = 100,
|
|
628
|
+
.accuracy = percent(100),
|
|
631
629
|
.target = .Self,
|
|
632
630
|
},
|
|
633
631
|
// WaterGun
|
|
@@ -635,7 +633,7 @@ pub const Move = enum(u8) {
|
|
|
635
633
|
.effect = .None,
|
|
636
634
|
.bp = 40,
|
|
637
635
|
.type = .Water,
|
|
638
|
-
.accuracy = 100,
|
|
636
|
+
.accuracy = percent(100),
|
|
639
637
|
.target = .Other,
|
|
640
638
|
},
|
|
641
639
|
// HydroPump
|
|
@@ -643,7 +641,7 @@ pub const Move = enum(u8) {
|
|
|
643
641
|
.effect = .None,
|
|
644
642
|
.bp = 120,
|
|
645
643
|
.type = .Water,
|
|
646
|
-
.accuracy = 80,
|
|
644
|
+
.accuracy = percent(80),
|
|
647
645
|
.target = .Other,
|
|
648
646
|
},
|
|
649
647
|
// Surf
|
|
@@ -651,7 +649,7 @@ pub const Move = enum(u8) {
|
|
|
651
649
|
.effect = .None,
|
|
652
650
|
.bp = 95,
|
|
653
651
|
.type = .Water,
|
|
654
|
-
.accuracy = 100,
|
|
652
|
+
.accuracy = percent(100),
|
|
655
653
|
.target = .Foes,
|
|
656
654
|
},
|
|
657
655
|
// IceBeam
|
|
@@ -659,7 +657,7 @@ pub const Move = enum(u8) {
|
|
|
659
657
|
.effect = .FreezeChance,
|
|
660
658
|
.bp = 95,
|
|
661
659
|
.type = .Ice,
|
|
662
|
-
.accuracy = 100,
|
|
660
|
+
.accuracy = percent(100),
|
|
663
661
|
.target = .Other,
|
|
664
662
|
},
|
|
665
663
|
// Blizzard
|
|
@@ -667,7 +665,7 @@ pub const Move = enum(u8) {
|
|
|
667
665
|
.effect = .FreezeChance,
|
|
668
666
|
.bp = 120,
|
|
669
667
|
.type = .Ice,
|
|
670
|
-
.accuracy = 90,
|
|
668
|
+
.accuracy = percent(90),
|
|
671
669
|
.target = .Other,
|
|
672
670
|
},
|
|
673
671
|
// Psybeam
|
|
@@ -675,7 +673,7 @@ pub const Move = enum(u8) {
|
|
|
675
673
|
.effect = .ConfusionChance,
|
|
676
674
|
.bp = 65,
|
|
677
675
|
.type = .Psychic,
|
|
678
|
-
.accuracy = 100,
|
|
676
|
+
.accuracy = percent(100),
|
|
679
677
|
.target = .Other,
|
|
680
678
|
},
|
|
681
679
|
// BubbleBeam
|
|
@@ -683,7 +681,7 @@ pub const Move = enum(u8) {
|
|
|
683
681
|
.effect = .SpeedDownChance,
|
|
684
682
|
.bp = 65,
|
|
685
683
|
.type = .Water,
|
|
686
|
-
.accuracy = 100,
|
|
684
|
+
.accuracy = percent(100),
|
|
687
685
|
.target = .Other,
|
|
688
686
|
},
|
|
689
687
|
// AuroraBeam
|
|
@@ -691,7 +689,7 @@ pub const Move = enum(u8) {
|
|
|
691
689
|
.effect = .AttackDownChance,
|
|
692
690
|
.bp = 65,
|
|
693
691
|
.type = .Ice,
|
|
694
|
-
.accuracy = 100,
|
|
692
|
+
.accuracy = percent(100),
|
|
695
693
|
.target = .Other,
|
|
696
694
|
},
|
|
697
695
|
// HyperBeam
|
|
@@ -699,7 +697,7 @@ pub const Move = enum(u8) {
|
|
|
699
697
|
.effect = .HyperBeam,
|
|
700
698
|
.bp = 150,
|
|
701
699
|
.type = .Normal,
|
|
702
|
-
.accuracy = 90,
|
|
700
|
+
.accuracy = percent(90),
|
|
703
701
|
.target = .Other,
|
|
704
702
|
},
|
|
705
703
|
// Peck
|
|
@@ -707,7 +705,7 @@ pub const Move = enum(u8) {
|
|
|
707
705
|
.effect = .None,
|
|
708
706
|
.bp = 35,
|
|
709
707
|
.type = .Flying,
|
|
710
|
-
.accuracy = 100,
|
|
708
|
+
.accuracy = percent(100),
|
|
711
709
|
.target = .Any,
|
|
712
710
|
},
|
|
713
711
|
// DrillPeck
|
|
@@ -715,7 +713,7 @@ pub const Move = enum(u8) {
|
|
|
715
713
|
.effect = .None,
|
|
716
714
|
.bp = 80,
|
|
717
715
|
.type = .Flying,
|
|
718
|
-
.accuracy = 100,
|
|
716
|
+
.accuracy = percent(100),
|
|
719
717
|
.target = .Any,
|
|
720
718
|
},
|
|
721
719
|
// Submission
|
|
@@ -723,7 +721,7 @@ pub const Move = enum(u8) {
|
|
|
723
721
|
.effect = .Recoil,
|
|
724
722
|
.bp = 80,
|
|
725
723
|
.type = .Fighting,
|
|
726
|
-
.accuracy = 80,
|
|
724
|
+
.accuracy = percent(80),
|
|
727
725
|
.target = .Other,
|
|
728
726
|
},
|
|
729
727
|
// LowKick
|
|
@@ -731,7 +729,7 @@ pub const Move = enum(u8) {
|
|
|
731
729
|
.effect = .FlinchChance2,
|
|
732
730
|
.bp = 50,
|
|
733
731
|
.type = .Fighting,
|
|
734
|
-
.accuracy = 90,
|
|
732
|
+
.accuracy = percent(90),
|
|
735
733
|
.target = .Other,
|
|
736
734
|
},
|
|
737
735
|
// Counter
|
|
@@ -739,7 +737,7 @@ pub const Move = enum(u8) {
|
|
|
739
737
|
.effect = .None,
|
|
740
738
|
.bp = 1,
|
|
741
739
|
.type = .Fighting,
|
|
742
|
-
.accuracy = 100,
|
|
740
|
+
.accuracy = percent(100),
|
|
743
741
|
.target = .Depends,
|
|
744
742
|
},
|
|
745
743
|
// SeismicToss
|
|
@@ -747,7 +745,7 @@ pub const Move = enum(u8) {
|
|
|
747
745
|
.effect = .SpecialDamage,
|
|
748
746
|
.bp = 1,
|
|
749
747
|
.type = .Fighting,
|
|
750
|
-
.accuracy = 100,
|
|
748
|
+
.accuracy = percent(100),
|
|
751
749
|
.target = .Other,
|
|
752
750
|
},
|
|
753
751
|
// Strength
|
|
@@ -755,7 +753,7 @@ pub const Move = enum(u8) {
|
|
|
755
753
|
.effect = .None,
|
|
756
754
|
.bp = 80,
|
|
757
755
|
.type = .Normal,
|
|
758
|
-
.accuracy = 100,
|
|
756
|
+
.accuracy = percent(100),
|
|
759
757
|
.target = .Other,
|
|
760
758
|
},
|
|
761
759
|
// Absorb
|
|
@@ -763,7 +761,7 @@ pub const Move = enum(u8) {
|
|
|
763
761
|
.effect = .DrainHP,
|
|
764
762
|
.bp = 20,
|
|
765
763
|
.type = .Grass,
|
|
766
|
-
.accuracy = 100,
|
|
764
|
+
.accuracy = percent(100),
|
|
767
765
|
.target = .Other,
|
|
768
766
|
},
|
|
769
767
|
// MegaDrain
|
|
@@ -771,7 +769,7 @@ pub const Move = enum(u8) {
|
|
|
771
769
|
.effect = .DrainHP,
|
|
772
770
|
.bp = 40,
|
|
773
771
|
.type = .Grass,
|
|
774
|
-
.accuracy = 100,
|
|
772
|
+
.accuracy = percent(100),
|
|
775
773
|
.target = .Other,
|
|
776
774
|
},
|
|
777
775
|
// LeechSeed
|
|
@@ -779,7 +777,7 @@ pub const Move = enum(u8) {
|
|
|
779
777
|
.effect = .LeechSeed,
|
|
780
778
|
.bp = 0,
|
|
781
779
|
.type = .Grass,
|
|
782
|
-
.accuracy = 90,
|
|
780
|
+
.accuracy = percent(90),
|
|
783
781
|
.target = .Other,
|
|
784
782
|
},
|
|
785
783
|
// Growth
|
|
@@ -787,7 +785,7 @@ pub const Move = enum(u8) {
|
|
|
787
785
|
.effect = .SpecialUp1,
|
|
788
786
|
.bp = 0,
|
|
789
787
|
.type = .Normal,
|
|
790
|
-
.accuracy = 100,
|
|
788
|
+
.accuracy = percent(100),
|
|
791
789
|
.target = .Self,
|
|
792
790
|
},
|
|
793
791
|
// RazorLeaf
|
|
@@ -795,7 +793,7 @@ pub const Move = enum(u8) {
|
|
|
795
793
|
.effect = .HighCritical,
|
|
796
794
|
.bp = 55,
|
|
797
795
|
.type = .Grass,
|
|
798
|
-
.accuracy = 95,
|
|
796
|
+
.accuracy = percent(95),
|
|
799
797
|
.target = .Other,
|
|
800
798
|
},
|
|
801
799
|
// SolarBeam
|
|
@@ -803,7 +801,7 @@ pub const Move = enum(u8) {
|
|
|
803
801
|
.effect = .Charge,
|
|
804
802
|
.bp = 120,
|
|
805
803
|
.type = .Grass,
|
|
806
|
-
.accuracy = 100,
|
|
804
|
+
.accuracy = percent(100),
|
|
807
805
|
.target = .Other,
|
|
808
806
|
},
|
|
809
807
|
// PoisonPowder
|
|
@@ -811,7 +809,7 @@ pub const Move = enum(u8) {
|
|
|
811
809
|
.effect = .Poison,
|
|
812
810
|
.bp = 0,
|
|
813
811
|
.type = .Poison,
|
|
814
|
-
.accuracy = 75,
|
|
812
|
+
.accuracy = percent(75),
|
|
815
813
|
.target = .Other,
|
|
816
814
|
},
|
|
817
815
|
// StunSpore
|
|
@@ -819,7 +817,7 @@ pub const Move = enum(u8) {
|
|
|
819
817
|
.effect = .Paralyze,
|
|
820
818
|
.bp = 0,
|
|
821
819
|
.type = .Grass,
|
|
822
|
-
.accuracy = 75,
|
|
820
|
+
.accuracy = percent(75),
|
|
823
821
|
.target = .Other,
|
|
824
822
|
},
|
|
825
823
|
// SleepPowder
|
|
@@ -827,7 +825,7 @@ pub const Move = enum(u8) {
|
|
|
827
825
|
.effect = .Sleep,
|
|
828
826
|
.bp = 0,
|
|
829
827
|
.type = .Grass,
|
|
830
|
-
.accuracy = 75,
|
|
828
|
+
.accuracy = percent(75),
|
|
831
829
|
.target = .Other,
|
|
832
830
|
},
|
|
833
831
|
// PetalDance
|
|
@@ -835,7 +833,7 @@ pub const Move = enum(u8) {
|
|
|
835
833
|
.effect = .Thrashing,
|
|
836
834
|
.bp = 70,
|
|
837
835
|
.type = .Grass,
|
|
838
|
-
.accuracy = 100,
|
|
836
|
+
.accuracy = percent(100),
|
|
839
837
|
.target = .RandomFoe,
|
|
840
838
|
},
|
|
841
839
|
// StringShot
|
|
@@ -843,7 +841,7 @@ pub const Move = enum(u8) {
|
|
|
843
841
|
.effect = .SpeedDown1,
|
|
844
842
|
.bp = 0,
|
|
845
843
|
.type = .Bug,
|
|
846
|
-
.accuracy = 95,
|
|
844
|
+
.accuracy = percent(95),
|
|
847
845
|
.target = .Foes,
|
|
848
846
|
},
|
|
849
847
|
// DragonRage
|
|
@@ -851,7 +849,7 @@ pub const Move = enum(u8) {
|
|
|
851
849
|
.effect = .SpecialDamage,
|
|
852
850
|
.bp = 1,
|
|
853
851
|
.type = .Dragon,
|
|
854
|
-
.accuracy = 100,
|
|
852
|
+
.accuracy = percent(100),
|
|
855
853
|
.target = .Other,
|
|
856
854
|
},
|
|
857
855
|
// FireSpin
|
|
@@ -859,7 +857,7 @@ pub const Move = enum(u8) {
|
|
|
859
857
|
.effect = .Binding,
|
|
860
858
|
.bp = 15,
|
|
861
859
|
.type = .Fire,
|
|
862
|
-
.accuracy = 70,
|
|
860
|
+
.accuracy = percent(70),
|
|
863
861
|
.target = .Other,
|
|
864
862
|
},
|
|
865
863
|
// ThunderShock
|
|
@@ -867,7 +865,7 @@ pub const Move = enum(u8) {
|
|
|
867
865
|
.effect = .ParalyzeChance1,
|
|
868
866
|
.bp = 40,
|
|
869
867
|
.type = .Electric,
|
|
870
|
-
.accuracy = 100,
|
|
868
|
+
.accuracy = percent(100),
|
|
871
869
|
.target = .Other,
|
|
872
870
|
},
|
|
873
871
|
// Thunderbolt
|
|
@@ -875,7 +873,7 @@ pub const Move = enum(u8) {
|
|
|
875
873
|
.effect = .ParalyzeChance1,
|
|
876
874
|
.bp = 95,
|
|
877
875
|
.type = .Electric,
|
|
878
|
-
.accuracy = 100,
|
|
876
|
+
.accuracy = percent(100),
|
|
879
877
|
.target = .Other,
|
|
880
878
|
},
|
|
881
879
|
// ThunderWave
|
|
@@ -883,7 +881,7 @@ pub const Move = enum(u8) {
|
|
|
883
881
|
.effect = .Paralyze,
|
|
884
882
|
.bp = 0,
|
|
885
883
|
.type = .Electric,
|
|
886
|
-
.accuracy = 100,
|
|
884
|
+
.accuracy = percent(100),
|
|
887
885
|
.target = .Other,
|
|
888
886
|
},
|
|
889
887
|
// Thunder
|
|
@@ -891,7 +889,7 @@ pub const Move = enum(u8) {
|
|
|
891
889
|
.effect = .ParalyzeChance1,
|
|
892
890
|
.bp = 120,
|
|
893
891
|
.type = .Electric,
|
|
894
|
-
.accuracy = 70,
|
|
892
|
+
.accuracy = percent(70),
|
|
895
893
|
.target = .Other,
|
|
896
894
|
},
|
|
897
895
|
// RockThrow
|
|
@@ -899,7 +897,7 @@ pub const Move = enum(u8) {
|
|
|
899
897
|
.effect = .None,
|
|
900
898
|
.bp = 50,
|
|
901
899
|
.type = .Rock,
|
|
902
|
-
.accuracy = 65,
|
|
900
|
+
.accuracy = percent(65),
|
|
903
901
|
.target = .Other,
|
|
904
902
|
},
|
|
905
903
|
// Earthquake
|
|
@@ -907,7 +905,7 @@ pub const Move = enum(u8) {
|
|
|
907
905
|
.effect = .None,
|
|
908
906
|
.bp = 100,
|
|
909
907
|
.type = .Ground,
|
|
910
|
-
.accuracy = 100,
|
|
908
|
+
.accuracy = percent(100),
|
|
911
909
|
.target = .AllOthers,
|
|
912
910
|
},
|
|
913
911
|
// Fissure
|
|
@@ -915,7 +913,7 @@ pub const Move = enum(u8) {
|
|
|
915
913
|
.effect = .OHKO,
|
|
916
914
|
.bp = 0,
|
|
917
915
|
.type = .Ground,
|
|
918
|
-
.accuracy = 30,
|
|
916
|
+
.accuracy = percent(30),
|
|
919
917
|
.target = .Other,
|
|
920
918
|
},
|
|
921
919
|
// Dig
|
|
@@ -923,7 +921,7 @@ pub const Move = enum(u8) {
|
|
|
923
921
|
.effect = .Charge,
|
|
924
922
|
.bp = 100,
|
|
925
923
|
.type = .Ground,
|
|
926
|
-
.accuracy = 100,
|
|
924
|
+
.accuracy = percent(100),
|
|
927
925
|
.target = .Other,
|
|
928
926
|
},
|
|
929
927
|
// Toxic
|
|
@@ -931,7 +929,7 @@ pub const Move = enum(u8) {
|
|
|
931
929
|
.effect = .Poison,
|
|
932
930
|
.bp = 0,
|
|
933
931
|
.type = .Poison,
|
|
934
|
-
.accuracy = 85,
|
|
932
|
+
.accuracy = percent(85),
|
|
935
933
|
.target = .Other,
|
|
936
934
|
},
|
|
937
935
|
// Confusion
|
|
@@ -939,7 +937,7 @@ pub const Move = enum(u8) {
|
|
|
939
937
|
.effect = .ConfusionChance,
|
|
940
938
|
.bp = 50,
|
|
941
939
|
.type = .Psychic,
|
|
942
|
-
.accuracy = 100,
|
|
940
|
+
.accuracy = percent(100),
|
|
943
941
|
.target = .Other,
|
|
944
942
|
},
|
|
945
943
|
// Psychic
|
|
@@ -947,7 +945,7 @@ pub const Move = enum(u8) {
|
|
|
947
945
|
.effect = .SpecialDownChance,
|
|
948
946
|
.bp = 90,
|
|
949
947
|
.type = .Psychic,
|
|
950
|
-
.accuracy = 100,
|
|
948
|
+
.accuracy = percent(100),
|
|
951
949
|
.target = .Other,
|
|
952
950
|
},
|
|
953
951
|
// Hypnosis
|
|
@@ -955,7 +953,7 @@ pub const Move = enum(u8) {
|
|
|
955
953
|
.effect = .Sleep,
|
|
956
954
|
.bp = 0,
|
|
957
955
|
.type = .Psychic,
|
|
958
|
-
.accuracy = 60,
|
|
956
|
+
.accuracy = percent(60),
|
|
959
957
|
.target = .Other,
|
|
960
958
|
},
|
|
961
959
|
// Meditate
|
|
@@ -963,7 +961,7 @@ pub const Move = enum(u8) {
|
|
|
963
961
|
.effect = .AttackUp1,
|
|
964
962
|
.bp = 0,
|
|
965
963
|
.type = .Psychic,
|
|
966
|
-
.accuracy = 100,
|
|
964
|
+
.accuracy = percent(100),
|
|
967
965
|
.target = .Self,
|
|
968
966
|
},
|
|
969
967
|
// Agility
|
|
@@ -971,7 +969,7 @@ pub const Move = enum(u8) {
|
|
|
971
969
|
.effect = .SpeedUp2,
|
|
972
970
|
.bp = 0,
|
|
973
971
|
.type = .Psychic,
|
|
974
|
-
.accuracy = 100,
|
|
972
|
+
.accuracy = percent(100),
|
|
975
973
|
.target = .Self,
|
|
976
974
|
},
|
|
977
975
|
// QuickAttack
|
|
@@ -979,7 +977,7 @@ pub const Move = enum(u8) {
|
|
|
979
977
|
.effect = .None,
|
|
980
978
|
.bp = 40,
|
|
981
979
|
.type = .Normal,
|
|
982
|
-
.accuracy = 100,
|
|
980
|
+
.accuracy = percent(100),
|
|
983
981
|
.target = .Other,
|
|
984
982
|
},
|
|
985
983
|
// Rage
|
|
@@ -987,7 +985,7 @@ pub const Move = enum(u8) {
|
|
|
987
985
|
.effect = .Rage,
|
|
988
986
|
.bp = 20,
|
|
989
987
|
.type = .Normal,
|
|
990
|
-
.accuracy = 100,
|
|
988
|
+
.accuracy = percent(100),
|
|
991
989
|
.target = .Other,
|
|
992
990
|
},
|
|
993
991
|
// Teleport
|
|
@@ -995,7 +993,7 @@ pub const Move = enum(u8) {
|
|
|
995
993
|
.effect = .SwitchAndTeleport,
|
|
996
994
|
.bp = 0,
|
|
997
995
|
.type = .Psychic,
|
|
998
|
-
.accuracy = 100,
|
|
996
|
+
.accuracy = percent(100),
|
|
999
997
|
.target = .Self,
|
|
1000
998
|
},
|
|
1001
999
|
// NightShade
|
|
@@ -1003,7 +1001,7 @@ pub const Move = enum(u8) {
|
|
|
1003
1001
|
.effect = .SpecialDamage,
|
|
1004
1002
|
.bp = 1,
|
|
1005
1003
|
.type = .Ghost,
|
|
1006
|
-
.accuracy = 100,
|
|
1004
|
+
.accuracy = percent(100),
|
|
1007
1005
|
.target = .Other,
|
|
1008
1006
|
},
|
|
1009
1007
|
// Mimic
|
|
@@ -1011,7 +1009,7 @@ pub const Move = enum(u8) {
|
|
|
1011
1009
|
.effect = .Mimic,
|
|
1012
1010
|
.bp = 0,
|
|
1013
1011
|
.type = .Normal,
|
|
1014
|
-
.accuracy = 100,
|
|
1012
|
+
.accuracy = percent(100),
|
|
1015
1013
|
.target = .Other,
|
|
1016
1014
|
},
|
|
1017
1015
|
// Screech
|
|
@@ -1019,7 +1017,7 @@ pub const Move = enum(u8) {
|
|
|
1019
1017
|
.effect = .DefenseDown2,
|
|
1020
1018
|
.bp = 0,
|
|
1021
1019
|
.type = .Normal,
|
|
1022
|
-
.accuracy = 85,
|
|
1020
|
+
.accuracy = percent(85),
|
|
1023
1021
|
.target = .Other,
|
|
1024
1022
|
},
|
|
1025
1023
|
// DoubleTeam
|
|
@@ -1027,7 +1025,7 @@ pub const Move = enum(u8) {
|
|
|
1027
1025
|
.effect = .EvasionUp1,
|
|
1028
1026
|
.bp = 0,
|
|
1029
1027
|
.type = .Normal,
|
|
1030
|
-
.accuracy = 100,
|
|
1028
|
+
.accuracy = percent(100),
|
|
1031
1029
|
.target = .Self,
|
|
1032
1030
|
},
|
|
1033
1031
|
// Recover
|
|
@@ -1035,7 +1033,7 @@ pub const Move = enum(u8) {
|
|
|
1035
1033
|
.effect = .Heal,
|
|
1036
1034
|
.bp = 0,
|
|
1037
1035
|
.type = .Normal,
|
|
1038
|
-
.accuracy = 100,
|
|
1036
|
+
.accuracy = percent(100),
|
|
1039
1037
|
.target = .Self,
|
|
1040
1038
|
},
|
|
1041
1039
|
// Harden
|
|
@@ -1043,7 +1041,7 @@ pub const Move = enum(u8) {
|
|
|
1043
1041
|
.effect = .DefenseUp1,
|
|
1044
1042
|
.bp = 0,
|
|
1045
1043
|
.type = .Normal,
|
|
1046
|
-
.accuracy = 100,
|
|
1044
|
+
.accuracy = percent(100),
|
|
1047
1045
|
.target = .Self,
|
|
1048
1046
|
},
|
|
1049
1047
|
// Minimize
|
|
@@ -1051,7 +1049,7 @@ pub const Move = enum(u8) {
|
|
|
1051
1049
|
.effect = .EvasionUp1,
|
|
1052
1050
|
.bp = 0,
|
|
1053
1051
|
.type = .Normal,
|
|
1054
|
-
.accuracy = 100,
|
|
1052
|
+
.accuracy = percent(100),
|
|
1055
1053
|
.target = .Self,
|
|
1056
1054
|
},
|
|
1057
1055
|
// Smokescreen
|
|
@@ -1059,7 +1057,7 @@ pub const Move = enum(u8) {
|
|
|
1059
1057
|
.effect = .AccuracyDown1,
|
|
1060
1058
|
.bp = 0,
|
|
1061
1059
|
.type = .Normal,
|
|
1062
|
-
.accuracy = 100,
|
|
1060
|
+
.accuracy = percent(100),
|
|
1063
1061
|
.target = .Other,
|
|
1064
1062
|
},
|
|
1065
1063
|
// ConfuseRay
|
|
@@ -1067,7 +1065,7 @@ pub const Move = enum(u8) {
|
|
|
1067
1065
|
.effect = .Confusion,
|
|
1068
1066
|
.bp = 0,
|
|
1069
1067
|
.type = .Ghost,
|
|
1070
|
-
.accuracy = 100,
|
|
1068
|
+
.accuracy = percent(100),
|
|
1071
1069
|
.target = .Other,
|
|
1072
1070
|
},
|
|
1073
1071
|
// Withdraw
|
|
@@ -1075,7 +1073,7 @@ pub const Move = enum(u8) {
|
|
|
1075
1073
|
.effect = .DefenseUp1,
|
|
1076
1074
|
.bp = 0,
|
|
1077
1075
|
.type = .Water,
|
|
1078
|
-
.accuracy = 100,
|
|
1076
|
+
.accuracy = percent(100),
|
|
1079
1077
|
.target = .Self,
|
|
1080
1078
|
},
|
|
1081
1079
|
// DefenseCurl
|
|
@@ -1083,7 +1081,7 @@ pub const Move = enum(u8) {
|
|
|
1083
1081
|
.effect = .DefenseUp1,
|
|
1084
1082
|
.bp = 0,
|
|
1085
1083
|
.type = .Normal,
|
|
1086
|
-
.accuracy = 100,
|
|
1084
|
+
.accuracy = percent(100),
|
|
1087
1085
|
.target = .Self,
|
|
1088
1086
|
},
|
|
1089
1087
|
// Barrier
|
|
@@ -1091,7 +1089,7 @@ pub const Move = enum(u8) {
|
|
|
1091
1089
|
.effect = .DefenseUp2,
|
|
1092
1090
|
.bp = 0,
|
|
1093
1091
|
.type = .Psychic,
|
|
1094
|
-
.accuracy = 100,
|
|
1092
|
+
.accuracy = percent(100),
|
|
1095
1093
|
.target = .Self,
|
|
1096
1094
|
},
|
|
1097
1095
|
// LightScreen
|
|
@@ -1099,7 +1097,7 @@ pub const Move = enum(u8) {
|
|
|
1099
1097
|
.effect = .LightScreen,
|
|
1100
1098
|
.bp = 0,
|
|
1101
1099
|
.type = .Psychic,
|
|
1102
|
-
.accuracy = 100,
|
|
1100
|
+
.accuracy = percent(100),
|
|
1103
1101
|
.target = .Self,
|
|
1104
1102
|
},
|
|
1105
1103
|
// Haze
|
|
@@ -1107,7 +1105,7 @@ pub const Move = enum(u8) {
|
|
|
1107
1105
|
.effect = .Haze,
|
|
1108
1106
|
.bp = 0,
|
|
1109
1107
|
.type = .Ice,
|
|
1110
|
-
.accuracy = 100,
|
|
1108
|
+
.accuracy = percent(100),
|
|
1111
1109
|
.target = .Self,
|
|
1112
1110
|
},
|
|
1113
1111
|
// Reflect
|
|
@@ -1115,7 +1113,7 @@ pub const Move = enum(u8) {
|
|
|
1115
1113
|
.effect = .Reflect,
|
|
1116
1114
|
.bp = 0,
|
|
1117
1115
|
.type = .Psychic,
|
|
1118
|
-
.accuracy = 100,
|
|
1116
|
+
.accuracy = percent(100),
|
|
1119
1117
|
.target = .Self,
|
|
1120
1118
|
},
|
|
1121
1119
|
// FocusEnergy
|
|
@@ -1123,7 +1121,7 @@ pub const Move = enum(u8) {
|
|
|
1123
1121
|
.effect = .FocusEnergy,
|
|
1124
1122
|
.bp = 0,
|
|
1125
1123
|
.type = .Normal,
|
|
1126
|
-
.accuracy = 100,
|
|
1124
|
+
.accuracy = percent(100),
|
|
1127
1125
|
.target = .Self,
|
|
1128
1126
|
},
|
|
1129
1127
|
// Bide
|
|
@@ -1131,7 +1129,7 @@ pub const Move = enum(u8) {
|
|
|
1131
1129
|
.effect = .Bide,
|
|
1132
1130
|
.bp = 0,
|
|
1133
1131
|
.type = .Normal,
|
|
1134
|
-
.accuracy = 100,
|
|
1132
|
+
.accuracy = percent(100),
|
|
1135
1133
|
.target = .Self,
|
|
1136
1134
|
},
|
|
1137
1135
|
// Metronome
|
|
@@ -1139,7 +1137,7 @@ pub const Move = enum(u8) {
|
|
|
1139
1137
|
.effect = .Metronome,
|
|
1140
1138
|
.bp = 0,
|
|
1141
1139
|
.type = .Normal,
|
|
1142
|
-
.accuracy = 100,
|
|
1140
|
+
.accuracy = percent(100),
|
|
1143
1141
|
.target = .Self,
|
|
1144
1142
|
},
|
|
1145
1143
|
// MirrorMove
|
|
@@ -1147,7 +1145,7 @@ pub const Move = enum(u8) {
|
|
|
1147
1145
|
.effect = .MirrorMove,
|
|
1148
1146
|
.bp = 0,
|
|
1149
1147
|
.type = .Flying,
|
|
1150
|
-
.accuracy = 100,
|
|
1148
|
+
.accuracy = percent(100),
|
|
1151
1149
|
.target = .Self,
|
|
1152
1150
|
},
|
|
1153
1151
|
// SelfDestruct
|
|
@@ -1155,7 +1153,7 @@ pub const Move = enum(u8) {
|
|
|
1155
1153
|
.effect = .Explode,
|
|
1156
1154
|
.bp = 130,
|
|
1157
1155
|
.type = .Normal,
|
|
1158
|
-
.accuracy = 100,
|
|
1156
|
+
.accuracy = percent(100),
|
|
1159
1157
|
.target = .Other,
|
|
1160
1158
|
},
|
|
1161
1159
|
// EggBomb
|
|
@@ -1163,7 +1161,7 @@ pub const Move = enum(u8) {
|
|
|
1163
1161
|
.effect = .None,
|
|
1164
1162
|
.bp = 100,
|
|
1165
1163
|
.type = .Normal,
|
|
1166
|
-
.accuracy = 75,
|
|
1164
|
+
.accuracy = percent(75),
|
|
1167
1165
|
.target = .Other,
|
|
1168
1166
|
},
|
|
1169
1167
|
// Lick
|
|
@@ -1171,7 +1169,7 @@ pub const Move = enum(u8) {
|
|
|
1171
1169
|
.effect = .ParalyzeChance2,
|
|
1172
1170
|
.bp = 20,
|
|
1173
1171
|
.type = .Ghost,
|
|
1174
|
-
.accuracy = 100,
|
|
1172
|
+
.accuracy = percent(100),
|
|
1175
1173
|
.target = .Other,
|
|
1176
1174
|
},
|
|
1177
1175
|
// Smog
|
|
@@ -1179,7 +1177,7 @@ pub const Move = enum(u8) {
|
|
|
1179
1177
|
.effect = .PoisonChance2,
|
|
1180
1178
|
.bp = 20,
|
|
1181
1179
|
.type = .Poison,
|
|
1182
|
-
.accuracy = 70,
|
|
1180
|
+
.accuracy = percent(70),
|
|
1183
1181
|
.target = .Other,
|
|
1184
1182
|
},
|
|
1185
1183
|
// Sludge
|
|
@@ -1187,7 +1185,7 @@ pub const Move = enum(u8) {
|
|
|
1187
1185
|
.effect = .PoisonChance2,
|
|
1188
1186
|
.bp = 65,
|
|
1189
1187
|
.type = .Poison,
|
|
1190
|
-
.accuracy = 100,
|
|
1188
|
+
.accuracy = percent(100),
|
|
1191
1189
|
.target = .Other,
|
|
1192
1190
|
},
|
|
1193
1191
|
// BoneClub
|
|
@@ -1195,7 +1193,7 @@ pub const Move = enum(u8) {
|
|
|
1195
1193
|
.effect = .FlinchChance1,
|
|
1196
1194
|
.bp = 65,
|
|
1197
1195
|
.type = .Ground,
|
|
1198
|
-
.accuracy = 85,
|
|
1196
|
+
.accuracy = percent(85),
|
|
1199
1197
|
.target = .Other,
|
|
1200
1198
|
},
|
|
1201
1199
|
// FireBlast
|
|
@@ -1203,7 +1201,7 @@ pub const Move = enum(u8) {
|
|
|
1203
1201
|
.effect = .BurnChance2,
|
|
1204
1202
|
.bp = 120,
|
|
1205
1203
|
.type = .Fire,
|
|
1206
|
-
.accuracy = 85,
|
|
1204
|
+
.accuracy = percent(85),
|
|
1207
1205
|
.target = .Other,
|
|
1208
1206
|
},
|
|
1209
1207
|
// Waterfall
|
|
@@ -1211,7 +1209,7 @@ pub const Move = enum(u8) {
|
|
|
1211
1209
|
.effect = .None,
|
|
1212
1210
|
.bp = 80,
|
|
1213
1211
|
.type = .Water,
|
|
1214
|
-
.accuracy = 100,
|
|
1212
|
+
.accuracy = percent(100),
|
|
1215
1213
|
.target = .Other,
|
|
1216
1214
|
},
|
|
1217
1215
|
// Clamp
|
|
@@ -1219,7 +1217,7 @@ pub const Move = enum(u8) {
|
|
|
1219
1217
|
.effect = .Binding,
|
|
1220
1218
|
.bp = 35,
|
|
1221
1219
|
.type = .Water,
|
|
1222
|
-
.accuracy = 75,
|
|
1220
|
+
.accuracy = percent(75),
|
|
1223
1221
|
.target = .Other,
|
|
1224
1222
|
},
|
|
1225
1223
|
// Swift
|
|
@@ -1227,7 +1225,7 @@ pub const Move = enum(u8) {
|
|
|
1227
1225
|
.effect = .Swift,
|
|
1228
1226
|
.bp = 60,
|
|
1229
1227
|
.type = .Normal,
|
|
1230
|
-
.accuracy = 100,
|
|
1228
|
+
.accuracy = percent(100),
|
|
1231
1229
|
.target = .Foes,
|
|
1232
1230
|
},
|
|
1233
1231
|
// SkullBash
|
|
@@ -1235,7 +1233,7 @@ pub const Move = enum(u8) {
|
|
|
1235
1233
|
.effect = .Charge,
|
|
1236
1234
|
.bp = 100,
|
|
1237
1235
|
.type = .Normal,
|
|
1238
|
-
.accuracy = 100,
|
|
1236
|
+
.accuracy = percent(100),
|
|
1239
1237
|
.target = .Other,
|
|
1240
1238
|
},
|
|
1241
1239
|
// SpikeCannon
|
|
@@ -1243,7 +1241,7 @@ pub const Move = enum(u8) {
|
|
|
1243
1241
|
.effect = .MultiHit,
|
|
1244
1242
|
.bp = 20,
|
|
1245
1243
|
.type = .Normal,
|
|
1246
|
-
.accuracy = 100,
|
|
1244
|
+
.accuracy = percent(100),
|
|
1247
1245
|
.target = .Other,
|
|
1248
1246
|
},
|
|
1249
1247
|
// Constrict
|
|
@@ -1251,7 +1249,7 @@ pub const Move = enum(u8) {
|
|
|
1251
1249
|
.effect = .SpeedDownChance,
|
|
1252
1250
|
.bp = 10,
|
|
1253
1251
|
.type = .Normal,
|
|
1254
|
-
.accuracy = 100,
|
|
1252
|
+
.accuracy = percent(100),
|
|
1255
1253
|
.target = .Other,
|
|
1256
1254
|
},
|
|
1257
1255
|
// Amnesia
|
|
@@ -1259,7 +1257,7 @@ pub const Move = enum(u8) {
|
|
|
1259
1257
|
.effect = .SpecialUp2,
|
|
1260
1258
|
.bp = 0,
|
|
1261
1259
|
.type = .Psychic,
|
|
1262
|
-
.accuracy = 100,
|
|
1260
|
+
.accuracy = percent(100),
|
|
1263
1261
|
.target = .Self,
|
|
1264
1262
|
},
|
|
1265
1263
|
// Kinesis
|
|
@@ -1267,7 +1265,7 @@ pub const Move = enum(u8) {
|
|
|
1267
1265
|
.effect = .AccuracyDown1,
|
|
1268
1266
|
.bp = 0,
|
|
1269
1267
|
.type = .Psychic,
|
|
1270
|
-
.accuracy = 80,
|
|
1268
|
+
.accuracy = percent(80),
|
|
1271
1269
|
.target = .Other,
|
|
1272
1270
|
},
|
|
1273
1271
|
// SoftBoiled
|
|
@@ -1275,7 +1273,7 @@ pub const Move = enum(u8) {
|
|
|
1275
1273
|
.effect = .Heal,
|
|
1276
1274
|
.bp = 0,
|
|
1277
1275
|
.type = .Normal,
|
|
1278
|
-
.accuracy = 100,
|
|
1276
|
+
.accuracy = percent(100),
|
|
1279
1277
|
.target = .Self,
|
|
1280
1278
|
},
|
|
1281
1279
|
// HighJumpKick
|
|
@@ -1283,7 +1281,7 @@ pub const Move = enum(u8) {
|
|
|
1283
1281
|
.effect = .JumpKick,
|
|
1284
1282
|
.bp = 85,
|
|
1285
1283
|
.type = .Fighting,
|
|
1286
|
-
.accuracy = 90,
|
|
1284
|
+
.accuracy = percent(90),
|
|
1287
1285
|
.target = .Other,
|
|
1288
1286
|
},
|
|
1289
1287
|
// Glare
|
|
@@ -1291,7 +1289,7 @@ pub const Move = enum(u8) {
|
|
|
1291
1289
|
.effect = .Paralyze,
|
|
1292
1290
|
.bp = 0,
|
|
1293
1291
|
.type = .Normal,
|
|
1294
|
-
.accuracy = 75,
|
|
1292
|
+
.accuracy = percent(75),
|
|
1295
1293
|
.target = .Other,
|
|
1296
1294
|
},
|
|
1297
1295
|
// DreamEater
|
|
@@ -1299,7 +1297,7 @@ pub const Move = enum(u8) {
|
|
|
1299
1297
|
.effect = .DreamEater,
|
|
1300
1298
|
.bp = 100,
|
|
1301
1299
|
.type = .Psychic,
|
|
1302
|
-
.accuracy = 100,
|
|
1300
|
+
.accuracy = percent(100),
|
|
1303
1301
|
.target = .Other,
|
|
1304
1302
|
},
|
|
1305
1303
|
// PoisonGas
|
|
@@ -1307,7 +1305,7 @@ pub const Move = enum(u8) {
|
|
|
1307
1305
|
.effect = .Poison,
|
|
1308
1306
|
.bp = 0,
|
|
1309
1307
|
.type = .Poison,
|
|
1310
|
-
.accuracy = 55,
|
|
1308
|
+
.accuracy = percent(55),
|
|
1311
1309
|
.target = .Other,
|
|
1312
1310
|
},
|
|
1313
1311
|
// Barrage
|
|
@@ -1315,7 +1313,7 @@ pub const Move = enum(u8) {
|
|
|
1315
1313
|
.effect = .MultiHit,
|
|
1316
1314
|
.bp = 15,
|
|
1317
1315
|
.type = .Normal,
|
|
1318
|
-
.accuracy = 85,
|
|
1316
|
+
.accuracy = percent(85),
|
|
1319
1317
|
.target = .Other,
|
|
1320
1318
|
},
|
|
1321
1319
|
// LeechLife
|
|
@@ -1323,7 +1321,7 @@ pub const Move = enum(u8) {
|
|
|
1323
1321
|
.effect = .DrainHP,
|
|
1324
1322
|
.bp = 20,
|
|
1325
1323
|
.type = .Bug,
|
|
1326
|
-
.accuracy = 100,
|
|
1324
|
+
.accuracy = percent(100),
|
|
1327
1325
|
.target = .Other,
|
|
1328
1326
|
},
|
|
1329
1327
|
// LovelyKiss
|
|
@@ -1331,7 +1329,7 @@ pub const Move = enum(u8) {
|
|
|
1331
1329
|
.effect = .Sleep,
|
|
1332
1330
|
.bp = 0,
|
|
1333
1331
|
.type = .Normal,
|
|
1334
|
-
.accuracy = 75,
|
|
1332
|
+
.accuracy = percent(75),
|
|
1335
1333
|
.target = .Other,
|
|
1336
1334
|
},
|
|
1337
1335
|
// SkyAttack
|
|
@@ -1339,7 +1337,7 @@ pub const Move = enum(u8) {
|
|
|
1339
1337
|
.effect = .Charge,
|
|
1340
1338
|
.bp = 140,
|
|
1341
1339
|
.type = .Flying,
|
|
1342
|
-
.accuracy = 90,
|
|
1340
|
+
.accuracy = percent(90),
|
|
1343
1341
|
.target = .Any,
|
|
1344
1342
|
},
|
|
1345
1343
|
// Transform
|
|
@@ -1347,7 +1345,7 @@ pub const Move = enum(u8) {
|
|
|
1347
1345
|
.effect = .Transform,
|
|
1348
1346
|
.bp = 0,
|
|
1349
1347
|
.type = .Normal,
|
|
1350
|
-
.accuracy = 100,
|
|
1348
|
+
.accuracy = percent(100),
|
|
1351
1349
|
.target = .Other,
|
|
1352
1350
|
},
|
|
1353
1351
|
// Bubble
|
|
@@ -1355,7 +1353,7 @@ pub const Move = enum(u8) {
|
|
|
1355
1353
|
.effect = .SpeedDownChance,
|
|
1356
1354
|
.bp = 20,
|
|
1357
1355
|
.type = .Water,
|
|
1358
|
-
.accuracy = 100,
|
|
1356
|
+
.accuracy = percent(100),
|
|
1359
1357
|
.target = .Other,
|
|
1360
1358
|
},
|
|
1361
1359
|
// DizzyPunch
|
|
@@ -1363,7 +1361,7 @@ pub const Move = enum(u8) {
|
|
|
1363
1361
|
.effect = .None,
|
|
1364
1362
|
.bp = 70,
|
|
1365
1363
|
.type = .Normal,
|
|
1366
|
-
.accuracy = 100,
|
|
1364
|
+
.accuracy = percent(100),
|
|
1367
1365
|
.target = .Other,
|
|
1368
1366
|
},
|
|
1369
1367
|
// Spore
|
|
@@ -1371,7 +1369,7 @@ pub const Move = enum(u8) {
|
|
|
1371
1369
|
.effect = .Sleep,
|
|
1372
1370
|
.bp = 0,
|
|
1373
1371
|
.type = .Grass,
|
|
1374
|
-
.accuracy = 100,
|
|
1372
|
+
.accuracy = percent(100),
|
|
1375
1373
|
.target = .Other,
|
|
1376
1374
|
},
|
|
1377
1375
|
// Flash
|
|
@@ -1379,7 +1377,7 @@ pub const Move = enum(u8) {
|
|
|
1379
1377
|
.effect = .AccuracyDown1,
|
|
1380
1378
|
.bp = 0,
|
|
1381
1379
|
.type = .Normal,
|
|
1382
|
-
.accuracy = 70,
|
|
1380
|
+
.accuracy = percent(70),
|
|
1383
1381
|
.target = .Other,
|
|
1384
1382
|
},
|
|
1385
1383
|
// Psywave
|
|
@@ -1387,7 +1385,7 @@ pub const Move = enum(u8) {
|
|
|
1387
1385
|
.effect = .SpecialDamage,
|
|
1388
1386
|
.bp = 1,
|
|
1389
1387
|
.type = .Psychic,
|
|
1390
|
-
.accuracy = 80,
|
|
1388
|
+
.accuracy = percent(80),
|
|
1391
1389
|
.target = .Other,
|
|
1392
1390
|
},
|
|
1393
1391
|
// Splash
|
|
@@ -1395,7 +1393,7 @@ pub const Move = enum(u8) {
|
|
|
1395
1393
|
.effect = .Splash,
|
|
1396
1394
|
.bp = 0,
|
|
1397
1395
|
.type = .Normal,
|
|
1398
|
-
.accuracy = 100,
|
|
1396
|
+
.accuracy = percent(100),
|
|
1399
1397
|
.target = .Self,
|
|
1400
1398
|
},
|
|
1401
1399
|
// AcidArmor
|
|
@@ -1403,7 +1401,7 @@ pub const Move = enum(u8) {
|
|
|
1403
1401
|
.effect = .DefenseUp2,
|
|
1404
1402
|
.bp = 0,
|
|
1405
1403
|
.type = .Poison,
|
|
1406
|
-
.accuracy = 100,
|
|
1404
|
+
.accuracy = percent(100),
|
|
1407
1405
|
.target = .Self,
|
|
1408
1406
|
},
|
|
1409
1407
|
// Crabhammer
|
|
@@ -1411,7 +1409,7 @@ pub const Move = enum(u8) {
|
|
|
1411
1409
|
.effect = .HighCritical,
|
|
1412
1410
|
.bp = 90,
|
|
1413
1411
|
.type = .Water,
|
|
1414
|
-
.accuracy = 85,
|
|
1412
|
+
.accuracy = percent(85),
|
|
1415
1413
|
.target = .Other,
|
|
1416
1414
|
},
|
|
1417
1415
|
// Explosion
|
|
@@ -1419,7 +1417,7 @@ pub const Move = enum(u8) {
|
|
|
1419
1417
|
.effect = .Explode,
|
|
1420
1418
|
.bp = 170,
|
|
1421
1419
|
.type = .Normal,
|
|
1422
|
-
.accuracy = 100,
|
|
1420
|
+
.accuracy = percent(100),
|
|
1423
1421
|
.target = .Other,
|
|
1424
1422
|
},
|
|
1425
1423
|
// FurySwipes
|
|
@@ -1427,7 +1425,7 @@ pub const Move = enum(u8) {
|
|
|
1427
1425
|
.effect = .MultiHit,
|
|
1428
1426
|
.bp = 18,
|
|
1429
1427
|
.type = .Normal,
|
|
1430
|
-
.accuracy = 80,
|
|
1428
|
+
.accuracy = percent(80),
|
|
1431
1429
|
.target = .Other,
|
|
1432
1430
|
},
|
|
1433
1431
|
// Bonemerang
|
|
@@ -1435,7 +1433,7 @@ pub const Move = enum(u8) {
|
|
|
1435
1433
|
.effect = .DoubleHit,
|
|
1436
1434
|
.bp = 50,
|
|
1437
1435
|
.type = .Ground,
|
|
1438
|
-
.accuracy = 90,
|
|
1436
|
+
.accuracy = percent(90),
|
|
1439
1437
|
.target = .Other,
|
|
1440
1438
|
},
|
|
1441
1439
|
// Rest
|
|
@@ -1443,7 +1441,7 @@ pub const Move = enum(u8) {
|
|
|
1443
1441
|
.effect = .Heal,
|
|
1444
1442
|
.bp = 0,
|
|
1445
1443
|
.type = .Psychic,
|
|
1446
|
-
.accuracy = 100,
|
|
1444
|
+
.accuracy = percent(100),
|
|
1447
1445
|
.target = .Self,
|
|
1448
1446
|
},
|
|
1449
1447
|
// RockSlide
|
|
@@ -1451,7 +1449,7 @@ pub const Move = enum(u8) {
|
|
|
1451
1449
|
.effect = .None,
|
|
1452
1450
|
.bp = 75,
|
|
1453
1451
|
.type = .Rock,
|
|
1454
|
-
.accuracy = 90,
|
|
1452
|
+
.accuracy = percent(90),
|
|
1455
1453
|
.target = .Other,
|
|
1456
1454
|
},
|
|
1457
1455
|
// HyperFang
|
|
@@ -1459,7 +1457,7 @@ pub const Move = enum(u8) {
|
|
|
1459
1457
|
.effect = .FlinchChance1,
|
|
1460
1458
|
.bp = 80,
|
|
1461
1459
|
.type = .Normal,
|
|
1462
|
-
.accuracy = 90,
|
|
1460
|
+
.accuracy = percent(90),
|
|
1463
1461
|
.target = .Other,
|
|
1464
1462
|
},
|
|
1465
1463
|
// Sharpen
|
|
@@ -1467,7 +1465,7 @@ pub const Move = enum(u8) {
|
|
|
1467
1465
|
.effect = .AttackUp1,
|
|
1468
1466
|
.bp = 0,
|
|
1469
1467
|
.type = .Normal,
|
|
1470
|
-
.accuracy = 100,
|
|
1468
|
+
.accuracy = percent(100),
|
|
1471
1469
|
.target = .Self,
|
|
1472
1470
|
},
|
|
1473
1471
|
// Conversion
|
|
@@ -1475,7 +1473,7 @@ pub const Move = enum(u8) {
|
|
|
1475
1473
|
.effect = .Conversion,
|
|
1476
1474
|
.bp = 0,
|
|
1477
1475
|
.type = .Normal,
|
|
1478
|
-
.accuracy = 100,
|
|
1476
|
+
.accuracy = percent(100),
|
|
1479
1477
|
.target = .Other,
|
|
1480
1478
|
},
|
|
1481
1479
|
// TriAttack
|
|
@@ -1483,7 +1481,7 @@ pub const Move = enum(u8) {
|
|
|
1483
1481
|
.effect = .None,
|
|
1484
1482
|
.bp = 80,
|
|
1485
1483
|
.type = .Normal,
|
|
1486
|
-
.accuracy = 100,
|
|
1484
|
+
.accuracy = percent(100),
|
|
1487
1485
|
.target = .Other,
|
|
1488
1486
|
},
|
|
1489
1487
|
// SuperFang
|
|
@@ -1491,7 +1489,7 @@ pub const Move = enum(u8) {
|
|
|
1491
1489
|
.effect = .SuperFang,
|
|
1492
1490
|
.bp = 1,
|
|
1493
1491
|
.type = .Normal,
|
|
1494
|
-
.accuracy = 90,
|
|
1492
|
+
.accuracy = percent(90),
|
|
1495
1493
|
.target = .Other,
|
|
1496
1494
|
},
|
|
1497
1495
|
// Slash
|
|
@@ -1499,7 +1497,7 @@ pub const Move = enum(u8) {
|
|
|
1499
1497
|
.effect = .HighCritical,
|
|
1500
1498
|
.bp = 70,
|
|
1501
1499
|
.type = .Normal,
|
|
1502
|
-
.accuracy = 100,
|
|
1500
|
+
.accuracy = percent(100),
|
|
1503
1501
|
.target = .Other,
|
|
1504
1502
|
},
|
|
1505
1503
|
// Substitute
|
|
@@ -1507,7 +1505,7 @@ pub const Move = enum(u8) {
|
|
|
1507
1505
|
.effect = .Substitute,
|
|
1508
1506
|
.bp = 0,
|
|
1509
1507
|
.type = .Normal,
|
|
1510
|
-
.accuracy = 100,
|
|
1508
|
+
.accuracy = percent(100),
|
|
1511
1509
|
.target = .Self,
|
|
1512
1510
|
},
|
|
1513
1511
|
// Struggle
|
|
@@ -1515,7 +1513,7 @@ pub const Move = enum(u8) {
|
|
|
1515
1513
|
.effect = .Recoil,
|
|
1516
1514
|
.bp = 50,
|
|
1517
1515
|
.type = .Normal,
|
|
1518
|
-
.accuracy = 100,
|
|
1516
|
+
.accuracy = percent(100),
|
|
1519
1517
|
.target = .RandomFoe,
|
|
1520
1518
|
},
|
|
1521
1519
|
};
|