@codehawks/agent-battle-arena-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +112 -0
  2. package/dist/data/creatures.d.ts +6 -0
  3. package/dist/data/creatures.d.ts.map +1 -0
  4. package/dist/data/creatures.js +524 -0
  5. package/dist/data/creatures.js.map +1 -0
  6. package/dist/data/moves.d.ts +5 -0
  7. package/dist/data/moves.d.ts.map +1 -0
  8. package/dist/data/moves.js +1034 -0
  9. package/dist/data/moves.js.map +1 -0
  10. package/dist/data/sprites.d.ts +6 -0
  11. package/dist/data/sprites.d.ts.map +1 -0
  12. package/dist/data/sprites.js +5 -0
  13. package/dist/data/sprites.js.map +1 -0
  14. package/dist/data/types.d.ts +115 -0
  15. package/dist/data/types.d.ts.map +1 -0
  16. package/dist/data/types.js +29 -0
  17. package/dist/data/types.js.map +1 -0
  18. package/dist/engine/ai.d.ts +4 -0
  19. package/dist/engine/ai.d.ts.map +1 -0
  20. package/dist/engine/ai.js +138 -0
  21. package/dist/engine/ai.js.map +1 -0
  22. package/dist/engine/battle.d.ts +12 -0
  23. package/dist/engine/battle.d.ts.map +1 -0
  24. package/dist/engine/battle.js +313 -0
  25. package/dist/engine/battle.js.map +1 -0
  26. package/dist/engine/damage.d.ts +14 -0
  27. package/dist/engine/damage.d.ts.map +1 -0
  28. package/dist/engine/damage.js +51 -0
  29. package/dist/engine/damage.js.map +1 -0
  30. package/dist/engine/effects.d.ts +9 -0
  31. package/dist/engine/effects.d.ts.map +1 -0
  32. package/dist/engine/effects.js +99 -0
  33. package/dist/engine/effects.js.map +1 -0
  34. package/dist/engine/typeChart.d.ts +7 -0
  35. package/dist/engine/typeChart.d.ts.map +1 -0
  36. package/dist/engine/typeChart.js +73 -0
  37. package/dist/engine/typeChart.js.map +1 -0
  38. package/dist/index.d.ts +3 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +14 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/server.d.ts +3 -0
  43. package/dist/server.d.ts.map +1 -0
  44. package/dist/server.js +97 -0
  45. package/dist/server.js.map +1 -0
  46. package/dist/tools/getMoveInfo.d.ts +4 -0
  47. package/dist/tools/getMoveInfo.d.ts.map +1 -0
  48. package/dist/tools/getMoveInfo.js +33 -0
  49. package/dist/tools/getMoveInfo.js.map +1 -0
  50. package/dist/tools/getSprites.d.ts +2 -0
  51. package/dist/tools/getSprites.d.ts.map +1 -0
  52. package/dist/tools/getSprites.js +15 -0
  53. package/dist/tools/getSprites.js.map +1 -0
  54. package/dist/tools/getState.d.ts +2 -0
  55. package/dist/tools/getState.d.ts.map +1 -0
  56. package/dist/tools/getState.js +18 -0
  57. package/dist/tools/getState.js.map +1 -0
  58. package/dist/tools/listCreatures.d.ts +4 -0
  59. package/dist/tools/listCreatures.d.ts.map +1 -0
  60. package/dist/tools/listCreatures.js +36 -0
  61. package/dist/tools/listCreatures.js.map +1 -0
  62. package/dist/tools/makeMove.d.ts +4 -0
  63. package/dist/tools/makeMove.d.ts.map +1 -0
  64. package/dist/tools/makeMove.js +21 -0
  65. package/dist/tools/makeMove.js.map +1 -0
  66. package/dist/tools/startBattle.d.ts +6 -0
  67. package/dist/tools/startBattle.d.ts.map +1 -0
  68. package/dist/tools/startBattle.js +22 -0
  69. package/dist/tools/startBattle.js.map +1 -0
  70. package/dist/utils/rng.d.ts +11 -0
  71. package/dist/utils/rng.d.ts.map +1 -0
  72. package/dist/utils/rng.js +26 -0
  73. package/dist/utils/rng.js.map +1 -0
  74. package/package.json +45 -0
@@ -0,0 +1,1034 @@
1
+ export const ALL_MOVES = {
2
+ // === ELECTRIC ===
3
+ 'Thunder Strike': {
4
+ name: 'Thunder Strike',
5
+ type: 'electric',
6
+ power: 80,
7
+ accuracy: 90,
8
+ pp: 10,
9
+ effect: null,
10
+ description: 'A powerful bolt of lightning crashes down on the target.',
11
+ },
12
+ 'Static Shield': {
13
+ name: 'Static Shield',
14
+ type: 'electric',
15
+ power: 0,
16
+ accuracy: 100,
17
+ pp: 5,
18
+ effect: { type: 'stat_boost', target: 'self', stat: 'defense', stages: 1 },
19
+ description: 'Wraps the user in crackling static, raising defense.',
20
+ },
21
+ 'Overcharge': {
22
+ name: 'Overcharge',
23
+ type: 'electric',
24
+ power: 120,
25
+ accuracy: 70,
26
+ pp: 5,
27
+ effect: { type: 'recoil', target: 'self', recoilPercent: 25 },
28
+ description: 'Unleashes all stored energy at once. The recoil is brutal.',
29
+ },
30
+ 'Spark Jab': {
31
+ name: 'Spark Jab',
32
+ type: 'electric',
33
+ power: 55,
34
+ accuracy: 100,
35
+ pp: 20,
36
+ effect: null,
37
+ description: 'A quick jab of electricity. Never misses.',
38
+ },
39
+ // === EARTH ===
40
+ 'Rock Slam': {
41
+ name: 'Rock Slam',
42
+ type: 'earth',
43
+ power: 80,
44
+ accuracy: 85,
45
+ pp: 10,
46
+ effect: null,
47
+ description: 'Hurls a massive boulder at the target.',
48
+ },
49
+ 'Burrow': {
50
+ name: 'Burrow',
51
+ type: 'earth',
52
+ power: 70,
53
+ accuracy: 95,
54
+ pp: 15,
55
+ effect: null,
56
+ description: 'Digs underground and strikes from below.',
57
+ },
58
+ 'Earthquake': {
59
+ name: 'Earthquake',
60
+ type: 'earth',
61
+ power: 110,
62
+ accuracy: 75,
63
+ pp: 5,
64
+ effect: null,
65
+ description: 'Shakes the entire battlefield with devastating force.',
66
+ },
67
+ 'Sand Veil': {
68
+ name: 'Sand Veil',
69
+ type: 'earth',
70
+ power: 0,
71
+ accuracy: 100,
72
+ pp: 10,
73
+ effect: { type: 'stat_boost', target: 'self', stat: 'defense', stages: 1 },
74
+ description: 'Kicks up a wall of sand, raising defense.',
75
+ },
76
+ // === WATER ===
77
+ 'Hydro Blast': {
78
+ name: 'Hydro Blast',
79
+ type: 'water',
80
+ power: 85,
81
+ accuracy: 90,
82
+ pp: 10,
83
+ effect: null,
84
+ description: 'A concentrated blast of pressurized water.',
85
+ },
86
+ 'Bubble Shield': {
87
+ name: 'Bubble Shield',
88
+ type: 'water',
89
+ power: 0,
90
+ accuracy: 100,
91
+ pp: 5,
92
+ effect: { type: 'stat_boost', target: 'self', stat: 'defense', stages: 1 },
93
+ description: 'Encases the user in a protective bubble.',
94
+ },
95
+ 'Tidal Wave': {
96
+ name: 'Tidal Wave',
97
+ type: 'water',
98
+ power: 110,
99
+ accuracy: 75,
100
+ pp: 5,
101
+ effect: null,
102
+ description: 'Summons a massive wave to crash over the battlefield.',
103
+ },
104
+ 'Heal Pulse': {
105
+ name: 'Heal Pulse',
106
+ type: 'normal',
107
+ power: 0,
108
+ accuracy: 100,
109
+ pp: 5,
110
+ effect: { type: 'heal', target: 'self', healPercent: 30 },
111
+ description: 'Channels restorative energy to heal wounds.',
112
+ },
113
+ // === FIRE ===
114
+ 'Fire Fang': {
115
+ name: 'Fire Fang',
116
+ type: 'fire',
117
+ power: 85,
118
+ accuracy: 90,
119
+ pp: 10,
120
+ effect: null,
121
+ description: 'Bites down with flame-coated fangs.',
122
+ },
123
+ 'Inferno': {
124
+ name: 'Inferno',
125
+ type: 'fire',
126
+ power: 120,
127
+ accuracy: 70,
128
+ pp: 5,
129
+ effect: { type: 'status', target: 'opponent', status: 'burned', chance: 30 },
130
+ description: 'Engulfs the target in an all-consuming blaze. May burn.',
131
+ },
132
+ 'Heat Up': {
133
+ name: 'Heat Up',
134
+ type: 'fire',
135
+ power: 0,
136
+ accuracy: 100,
137
+ pp: 5,
138
+ effect: { type: 'stat_boost', target: 'self', stat: 'attack', stages: 1 },
139
+ description: 'Raises body temperature to increase attack power.',
140
+ },
141
+ 'Flame Whip': {
142
+ name: 'Flame Whip',
143
+ type: 'fire',
144
+ power: 65,
145
+ accuracy: 100,
146
+ pp: 15,
147
+ effect: null,
148
+ description: 'Lashes out with a tendril of fire.',
149
+ },
150
+ // === AIR ===
151
+ 'Gale Force': {
152
+ name: 'Gale Force',
153
+ type: 'air',
154
+ power: 80,
155
+ accuracy: 90,
156
+ pp: 10,
157
+ effect: null,
158
+ description: 'Unleashes a powerful gust of cutting wind.',
159
+ },
160
+ 'Tailwind': {
161
+ name: 'Tailwind',
162
+ type: 'air',
163
+ power: 0,
164
+ accuracy: 100,
165
+ pp: 5,
166
+ effect: { type: 'stat_boost', target: 'self', stat: 'speed', stages: 1 },
167
+ description: 'Summons a favourable wind to boost speed.',
168
+ },
169
+ 'Aerial Ace': {
170
+ name: 'Aerial Ace',
171
+ type: 'air',
172
+ power: 60,
173
+ accuracy: 100,
174
+ pp: 15,
175
+ effect: null,
176
+ description: 'A swift diving strike. Never misses.',
177
+ },
178
+ 'Tempest': {
179
+ name: 'Tempest',
180
+ type: 'air',
181
+ power: 110,
182
+ accuracy: 75,
183
+ pp: 5,
184
+ effect: null,
185
+ description: 'Summons a devastating storm on the battlefield.',
186
+ },
187
+ // === PLANT ===
188
+ 'Vine Whip': {
189
+ name: 'Vine Whip',
190
+ type: 'plant',
191
+ power: 75,
192
+ accuracy: 95,
193
+ pp: 15,
194
+ effect: null,
195
+ description: 'Strikes with tough, thorny vines.',
196
+ },
197
+ 'Spore Cloud': {
198
+ name: 'Spore Cloud',
199
+ type: 'plant',
200
+ power: 0,
201
+ accuracy: 80,
202
+ pp: 10,
203
+ effect: { type: 'status', target: 'opponent', status: 'poisoned', chance: 100 },
204
+ description: 'Releases a cloud of toxic spores. Poisons the target.',
205
+ },
206
+ 'Root Heal': {
207
+ name: 'Root Heal',
208
+ type: 'normal',
209
+ power: 0,
210
+ accuracy: 100,
211
+ pp: 5,
212
+ effect: { type: 'heal', target: 'self', healPercent: 30 },
213
+ description: 'Draws energy from deep roots to restore health.',
214
+ },
215
+ 'Solar Beam': {
216
+ name: 'Solar Beam',
217
+ type: 'plant',
218
+ power: 120,
219
+ accuracy: 75,
220
+ pp: 5,
221
+ effect: null,
222
+ description: 'Channels sunlight into a devastating beam of energy.',
223
+ },
224
+ // === LIGHT ===
225
+ 'Prismatic Beam': {
226
+ name: 'Prismatic Beam',
227
+ type: 'light',
228
+ power: 80,
229
+ accuracy: 90,
230
+ pp: 10,
231
+ effect: null,
232
+ description: 'Fires a brilliant beam of refracted light.',
233
+ },
234
+ 'Flash Blind': {
235
+ name: 'Flash Blind',
236
+ type: 'light',
237
+ power: 0,
238
+ accuracy: 85,
239
+ pp: 10,
240
+ effect: { type: 'stat_lower', target: 'opponent', stat: 'speed', stages: 1 },
241
+ description: 'A blinding flash that disorients the target, lowering speed.',
242
+ },
243
+ 'Holy Light': {
244
+ name: 'Holy Light',
245
+ type: 'normal',
246
+ power: 0,
247
+ accuracy: 100,
248
+ pp: 5,
249
+ effect: { type: 'heal', target: 'self', healPercent: 25 },
250
+ description: 'Bathes the user in sacred light, restoring health.',
251
+ },
252
+ 'Radiant Burst': {
253
+ name: 'Radiant Burst',
254
+ type: 'light',
255
+ power: 110,
256
+ accuracy: 80,
257
+ pp: 5,
258
+ effect: null,
259
+ description: 'Releases an explosion of concentrated light energy.',
260
+ },
261
+ // === SHADOW ===
262
+ 'Shadow Bite': {
263
+ name: 'Shadow Bite',
264
+ type: 'shadow',
265
+ power: 85,
266
+ accuracy: 90,
267
+ pp: 10,
268
+ effect: { type: 'high_crit', target: 'self', critBonus: 15 },
269
+ description: 'Bites from the shadows. High critical hit chance.',
270
+ },
271
+ 'Dark Pulse': {
272
+ name: 'Dark Pulse',
273
+ type: 'shadow',
274
+ power: 75,
275
+ accuracy: 95,
276
+ pp: 15,
277
+ effect: null,
278
+ description: 'Releases a wave of dark energy.',
279
+ },
280
+ 'Night Slash': {
281
+ name: 'Night Slash',
282
+ type: 'shadow',
283
+ power: 70,
284
+ accuracy: 100,
285
+ pp: 15,
286
+ effect: { type: 'high_crit', target: 'self', critBonus: 15 },
287
+ description: 'Slashes under the cover of darkness. High crit chance.',
288
+ },
289
+ 'Void Strike': {
290
+ name: 'Void Strike',
291
+ type: 'shadow',
292
+ power: 120,
293
+ accuracy: 75,
294
+ pp: 5,
295
+ effect: null,
296
+ description: 'Strikes with the force of the void itself.',
297
+ },
298
+ // === METAL ===
299
+ 'Iron Slam': {
300
+ name: 'Iron Slam',
301
+ type: 'metal',
302
+ power: 80,
303
+ accuracy: 90,
304
+ pp: 10,
305
+ effect: null,
306
+ description: 'Slams the target with a heavy iron appendage.',
307
+ },
308
+ 'Steel Wall': {
309
+ name: 'Steel Wall',
310
+ type: 'metal',
311
+ power: 0,
312
+ accuracy: 100,
313
+ pp: 10,
314
+ effect: { type: 'stat_boost', target: 'self', stat: 'defense', stages: 2 },
315
+ description: 'Hardens the body to steel. Sharply raises defense.',
316
+ },
317
+ 'Metal Claw': {
318
+ name: 'Metal Claw',
319
+ type: 'metal',
320
+ power: 60,
321
+ accuracy: 100,
322
+ pp: 20,
323
+ effect: null,
324
+ description: 'Rakes the target with metallic claws.',
325
+ },
326
+ 'Iron Crusher': {
327
+ name: 'Iron Crusher',
328
+ type: 'metal',
329
+ power: 110,
330
+ accuracy: 80,
331
+ pp: 5,
332
+ effect: { type: 'stat_lower', target: 'opponent', stat: 'defense', stages: 1 },
333
+ description: 'A crushing blow that cracks the target\'s armour.',
334
+ },
335
+ // === ICE ===
336
+ 'Ice Fang': {
337
+ name: 'Ice Fang',
338
+ type: 'ice',
339
+ power: 80,
340
+ accuracy: 90,
341
+ pp: 10,
342
+ effect: { type: 'status', target: 'opponent', status: 'frozen', chance: 20 },
343
+ description: 'Bites with ice-cold fangs. May freeze the target.',
344
+ },
345
+ 'Frost Breath': {
346
+ name: 'Frost Breath',
347
+ type: 'ice',
348
+ power: 60,
349
+ accuracy: 95,
350
+ pp: 15,
351
+ effect: null,
352
+ description: 'Exhales a chilling breath of frost.',
353
+ },
354
+ 'Blizzard': {
355
+ name: 'Blizzard',
356
+ type: 'ice',
357
+ power: 110,
358
+ accuracy: 70,
359
+ pp: 5,
360
+ effect: { type: 'status', target: 'opponent', status: 'frozen', chance: 30 },
361
+ description: 'Summons a raging blizzard. May freeze the target.',
362
+ },
363
+ 'Chill Aura': {
364
+ name: 'Chill Aura',
365
+ type: 'ice',
366
+ power: 0,
367
+ accuracy: 100,
368
+ pp: 5,
369
+ effect: { type: 'stat_lower', target: 'opponent', stat: 'speed', stages: 1 },
370
+ description: 'Radiates intense cold, slowing the target.',
371
+ },
372
+ // === POISON ===
373
+ 'Toxic Sting': {
374
+ name: 'Toxic Sting',
375
+ type: 'poison',
376
+ power: 70,
377
+ accuracy: 95,
378
+ pp: 15,
379
+ effect: { type: 'status', target: 'opponent', status: 'poisoned', chance: 30 },
380
+ description: 'A venomous sting. May poison the target.',
381
+ },
382
+ 'Acid Spray': {
383
+ name: 'Acid Spray',
384
+ type: 'poison',
385
+ power: 80,
386
+ accuracy: 90,
387
+ pp: 10,
388
+ effect: { type: 'stat_lower', target: 'opponent', stat: 'defense', stages: 1 },
389
+ description: 'Sprays corrosive acid that lowers the target\'s defense.',
390
+ },
391
+ 'Poison Cloud': {
392
+ name: 'Poison Cloud',
393
+ type: 'poison',
394
+ power: 0,
395
+ accuracy: 85,
396
+ pp: 10,
397
+ effect: { type: 'status', target: 'opponent', status: 'poisoned', chance: 100 },
398
+ description: 'Blankets the area in toxic gas. Poisons the target.',
399
+ },
400
+ 'Venom Burst': {
401
+ name: 'Venom Burst',
402
+ type: 'poison',
403
+ power: 110,
404
+ accuracy: 80,
405
+ pp: 5,
406
+ effect: null,
407
+ description: 'Explodes with concentrated venom.',
408
+ },
409
+ // === PLASMA ===
410
+ 'Plasma Bolt': {
411
+ name: 'Plasma Bolt',
412
+ type: 'plasma',
413
+ power: 85,
414
+ accuracy: 90,
415
+ pp: 10,
416
+ effect: null,
417
+ description: 'Fires a superheated bolt of plasma.',
418
+ },
419
+ 'Energy Surge': {
420
+ name: 'Energy Surge',
421
+ type: 'plasma',
422
+ power: 0,
423
+ accuracy: 100,
424
+ pp: 5,
425
+ effect: { type: 'stat_boost', target: 'self', stat: 'attack', stages: 1 },
426
+ description: 'Channels raw energy to boost attack power.',
427
+ },
428
+ 'Nova Flash': {
429
+ name: 'Nova Flash',
430
+ type: 'plasma',
431
+ power: 120,
432
+ accuracy: 70,
433
+ pp: 5,
434
+ effect: { type: 'recoil', target: 'self', recoilPercent: 25 },
435
+ description: 'Releases a devastating nova. The recoil is punishing.',
436
+ },
437
+ 'Pulse Wave': {
438
+ name: 'Pulse Wave',
439
+ type: 'plasma',
440
+ power: 65,
441
+ accuracy: 100,
442
+ pp: 15,
443
+ effect: null,
444
+ description: 'Sends out a steady wave of plasma energy.',
445
+ },
446
+ // === NORMAL (shared) ===
447
+ 'Quick Slash': {
448
+ name: 'Quick Slash',
449
+ type: 'normal',
450
+ power: 50,
451
+ accuracy: 100,
452
+ pp: 20,
453
+ effect: null,
454
+ description: 'A swift, reliable physical strike.',
455
+ },
456
+ 'Harden': {
457
+ name: 'Harden',
458
+ type: 'normal',
459
+ power: 0,
460
+ accuracy: 100,
461
+ pp: 10,
462
+ effect: { type: 'stat_boost', target: 'self', stat: 'defense', stages: 1 },
463
+ description: 'Tenses every muscle to raise defense.',
464
+ },
465
+ // === ELECTRIC (new) ===
466
+ 'Discharge': {
467
+ name: 'Discharge',
468
+ type: 'electric',
469
+ power: 75,
470
+ accuracy: 90,
471
+ pp: 10,
472
+ effect: { type: 'status', target: 'opponent', status: 'paralyzed', chance: 20 },
473
+ description: 'Releases electricity in all directions. May paralyze.',
474
+ },
475
+ 'Chain Lightning': {
476
+ name: 'Chain Lightning',
477
+ type: 'electric',
478
+ power: 65,
479
+ accuracy: 95,
480
+ pp: 15,
481
+ effect: null,
482
+ description: 'A bolt that arcs between targets. Reliable damage.',
483
+ },
484
+ 'Volt Tackle': {
485
+ name: 'Volt Tackle',
486
+ type: 'electric',
487
+ power: 90,
488
+ accuracy: 85,
489
+ pp: 10,
490
+ effect: { type: 'recoil', target: 'self', recoilPercent: 20 },
491
+ description: 'A reckless full-body charge wreathed in electricity.',
492
+ },
493
+ 'Lightning Rod': {
494
+ name: 'Lightning Rod',
495
+ type: 'electric',
496
+ power: 0,
497
+ accuracy: 100,
498
+ pp: 5,
499
+ effect: { type: 'stat_boost', target: 'self', stat: 'speed', stages: 1 },
500
+ description: 'Channels ambient static to boost speed.',
501
+ },
502
+ // === EARTH (new) ===
503
+ 'Mud Shot': {
504
+ name: 'Mud Shot',
505
+ type: 'earth',
506
+ power: 55,
507
+ accuracy: 95,
508
+ pp: 15,
509
+ effect: { type: 'stat_lower', target: 'opponent', stat: 'speed', stages: 1 },
510
+ description: 'Hurls a glob of mud that slows the target.',
511
+ },
512
+ 'Tremor': {
513
+ name: 'Tremor',
514
+ type: 'earth',
515
+ power: 65,
516
+ accuracy: 100,
517
+ pp: 15,
518
+ effect: null,
519
+ description: 'Sends a shockwave through the ground. Never misses.',
520
+ },
521
+ 'Stone Edge': {
522
+ name: 'Stone Edge',
523
+ type: 'earth',
524
+ power: 100,
525
+ accuracy: 80,
526
+ pp: 5,
527
+ effect: { type: 'high_crit', target: 'self', critBonus: 15 },
528
+ description: 'Jagged stones erupt beneath the target. High crit chance.',
529
+ },
530
+ 'Quicksand': {
531
+ name: 'Quicksand',
532
+ type: 'earth',
533
+ power: 0,
534
+ accuracy: 85,
535
+ pp: 10,
536
+ effect: { type: 'stat_lower', target: 'opponent', stat: 'speed', stages: 1 },
537
+ description: 'Traps the target in sinking sand, lowering speed.',
538
+ },
539
+ 'Boulder Toss': {
540
+ name: 'Boulder Toss',
541
+ type: 'earth',
542
+ power: 90,
543
+ accuracy: 85,
544
+ pp: 10,
545
+ effect: null,
546
+ description: 'Lobs a massive boulder at the target.',
547
+ },
548
+ // === WATER (new) ===
549
+ 'Aqua Jet': {
550
+ name: 'Aqua Jet',
551
+ type: 'water',
552
+ power: 45,
553
+ accuracy: 100,
554
+ pp: 20,
555
+ effect: null,
556
+ description: 'A lightning-fast jet of water. Always strikes first.',
557
+ },
558
+ 'Whirlpool': {
559
+ name: 'Whirlpool',
560
+ type: 'water',
561
+ power: 60,
562
+ accuracy: 90,
563
+ pp: 15,
564
+ effect: null,
565
+ description: 'Traps the target in a swirling vortex of water.',
566
+ },
567
+ 'Steam Blast': {
568
+ name: 'Steam Blast',
569
+ type: 'water',
570
+ power: 90,
571
+ accuracy: 85,
572
+ pp: 10,
573
+ effect: null,
574
+ description: 'Blasts the target with superheated steam.',
575
+ },
576
+ 'Rain Dance': {
577
+ name: 'Rain Dance',
578
+ type: 'water',
579
+ power: 0,
580
+ accuracy: 100,
581
+ pp: 5,
582
+ effect: { type: 'stat_boost', target: 'self', stat: 'attack', stages: 1 },
583
+ description: 'Summons rain that empowers water attacks.',
584
+ },
585
+ 'Torrent': {
586
+ name: 'Torrent',
587
+ type: 'water',
588
+ power: 100,
589
+ accuracy: 80,
590
+ pp: 5,
591
+ effect: null,
592
+ description: 'Unleashes a devastating torrent of water.',
593
+ },
594
+ // === FIRE (new) ===
595
+ 'Ember': {
596
+ name: 'Ember',
597
+ type: 'fire',
598
+ power: 50,
599
+ accuracy: 100,
600
+ pp: 20,
601
+ effect: null,
602
+ description: 'A small but reliable burst of flame.',
603
+ },
604
+ 'Flame Burst': {
605
+ name: 'Flame Burst',
606
+ type: 'fire',
607
+ power: 75,
608
+ accuracy: 90,
609
+ pp: 15,
610
+ effect: null,
611
+ description: 'An explosion of fire that engulfs the target.',
612
+ },
613
+ 'Wildfire': {
614
+ name: 'Wildfire',
615
+ type: 'fire',
616
+ power: 100,
617
+ accuracy: 80,
618
+ pp: 5,
619
+ effect: { type: 'status', target: 'opponent', status: 'burned', chance: 20 },
620
+ description: 'Spreads uncontrollable flames. May burn.',
621
+ },
622
+ 'Scorch': {
623
+ name: 'Scorch',
624
+ type: 'fire',
625
+ power: 0,
626
+ accuracy: 90,
627
+ pp: 10,
628
+ effect: { type: 'status', target: 'opponent', status: 'burned', chance: 100 },
629
+ description: 'Sears the target with intense heat. Burns guaranteed.',
630
+ },
631
+ 'Fire Wall': {
632
+ name: 'Fire Wall',
633
+ type: 'fire',
634
+ power: 0,
635
+ accuracy: 100,
636
+ pp: 5,
637
+ effect: { type: 'stat_boost', target: 'self', stat: 'defense', stages: 1 },
638
+ description: 'Creates a wall of fire that raises defense.',
639
+ },
640
+ // === AIR (new) ===
641
+ 'Wind Slash': {
642
+ name: 'Wind Slash',
643
+ type: 'air',
644
+ power: 55,
645
+ accuracy: 100,
646
+ pp: 20,
647
+ effect: null,
648
+ description: 'A razor-sharp blade of wind. Never misses.',
649
+ },
650
+ 'Cyclone': {
651
+ name: 'Cyclone',
652
+ type: 'air',
653
+ power: 90,
654
+ accuracy: 85,
655
+ pp: 10,
656
+ effect: null,
657
+ description: 'Summons a violent cyclone to batter the target.',
658
+ },
659
+ 'Downdraft': {
660
+ name: 'Downdraft',
661
+ type: 'air',
662
+ power: 0,
663
+ accuracy: 90,
664
+ pp: 10,
665
+ effect: { type: 'stat_lower', target: 'opponent', stat: 'defense', stages: 1 },
666
+ description: 'A crushing downward gust that weakens defenses.',
667
+ },
668
+ 'Jetstream': {
669
+ name: 'Jetstream',
670
+ type: 'air',
671
+ power: 70,
672
+ accuracy: 95,
673
+ pp: 15,
674
+ effect: null,
675
+ description: 'Rides the jetstream for a swift aerial strike.',
676
+ },
677
+ 'Hurricane': {
678
+ name: 'Hurricane',
679
+ type: 'air',
680
+ power: 120,
681
+ accuracy: 70,
682
+ pp: 5,
683
+ effect: null,
684
+ description: 'Summons a catastrophic hurricane. Devastating but inaccurate.',
685
+ },
686
+ // === PLANT (new) ===
687
+ 'Leaf Blade': {
688
+ name: 'Leaf Blade',
689
+ type: 'plant',
690
+ power: 80,
691
+ accuracy: 95,
692
+ pp: 10,
693
+ effect: { type: 'high_crit', target: 'self', critBonus: 15 },
694
+ description: 'Slashes with a razor-sharp leaf. High crit chance.',
695
+ },
696
+ 'Thorn Barrage': {
697
+ name: 'Thorn Barrage',
698
+ type: 'plant',
699
+ power: 65,
700
+ accuracy: 100,
701
+ pp: 15,
702
+ effect: null,
703
+ description: 'Fires a volley of sharp thorns. Never misses.',
704
+ },
705
+ 'Nature\'s Wrath': {
706
+ name: 'Nature\'s Wrath',
707
+ type: 'plant',
708
+ power: 110,
709
+ accuracy: 80,
710
+ pp: 5,
711
+ effect: null,
712
+ description: 'Channels the fury of nature into a devastating attack.',
713
+ },
714
+ 'Photosynthesis': {
715
+ name: 'Photosynthesis',
716
+ type: 'normal',
717
+ power: 0,
718
+ accuracy: 100,
719
+ pp: 5,
720
+ effect: { type: 'heal', target: 'self', healPercent: 25 },
721
+ description: 'Absorbs sunlight to restore health.',
722
+ },
723
+ 'Growth': {
724
+ name: 'Growth',
725
+ type: 'plant',
726
+ power: 0,
727
+ accuracy: 100,
728
+ pp: 5,
729
+ effect: { type: 'stat_boost', target: 'self', stat: 'attack', stages: 1 },
730
+ description: 'Grows rapidly, boosting attack power.',
731
+ },
732
+ // === LIGHT (new) ===
733
+ 'Light Beam': {
734
+ name: 'Light Beam',
735
+ type: 'light',
736
+ power: 65,
737
+ accuracy: 100,
738
+ pp: 15,
739
+ effect: null,
740
+ description: 'A focused beam of pure light. Never misses.',
741
+ },
742
+ 'Starfall': {
743
+ name: 'Starfall',
744
+ type: 'light',
745
+ power: 90,
746
+ accuracy: 85,
747
+ pp: 10,
748
+ effect: null,
749
+ description: 'Calls down a rain of starlight on the target.',
750
+ },
751
+ 'Purify': {
752
+ name: 'Purify',
753
+ type: 'normal',
754
+ power: 0,
755
+ accuracy: 100,
756
+ pp: 5,
757
+ effect: { type: 'heal', target: 'self', healPercent: 20 },
758
+ description: 'Purifies the body with holy energy, restoring health.',
759
+ },
760
+ 'Dazzle': {
761
+ name: 'Dazzle',
762
+ type: 'light',
763
+ power: 0,
764
+ accuracy: 90,
765
+ pp: 10,
766
+ effect: { type: 'stat_lower', target: 'opponent', stat: 'attack', stages: 1 },
767
+ description: 'A brilliant flash that disorients, lowering attack.',
768
+ },
769
+ 'Solar Flare': {
770
+ name: 'Solar Flare',
771
+ type: 'light',
772
+ power: 120,
773
+ accuracy: 70,
774
+ pp: 5,
775
+ effect: null,
776
+ description: 'Unleashes the power of a miniature sun.',
777
+ },
778
+ // === SHADOW (new) ===
779
+ 'Shadow Claw': {
780
+ name: 'Shadow Claw',
781
+ type: 'shadow',
782
+ power: 65,
783
+ accuracy: 100,
784
+ pp: 15,
785
+ effect: null,
786
+ description: 'Slashes with claws made of solidified shadow.',
787
+ },
788
+ 'Dread Pulse': {
789
+ name: 'Dread Pulse',
790
+ type: 'shadow',
791
+ power: 90,
792
+ accuracy: 85,
793
+ pp: 10,
794
+ effect: null,
795
+ description: 'Emits a wave of pure dread and dark energy.',
796
+ },
797
+ 'Abyss Strike': {
798
+ name: 'Abyss Strike',
799
+ type: 'shadow',
800
+ power: 100,
801
+ accuracy: 80,
802
+ pp: 5,
803
+ effect: null,
804
+ description: 'Strikes from the depths of the abyss.',
805
+ },
806
+ 'Dark Shroud': {
807
+ name: 'Dark Shroud',
808
+ type: 'shadow',
809
+ power: 0,
810
+ accuracy: 100,
811
+ pp: 5,
812
+ effect: { type: 'stat_boost', target: 'self', stat: 'defense', stages: 1 },
813
+ description: 'Wraps the user in protective shadows.',
814
+ },
815
+ // === METAL (new) ===
816
+ 'Steel Spike': {
817
+ name: 'Steel Spike',
818
+ type: 'metal',
819
+ power: 65,
820
+ accuracy: 100,
821
+ pp: 15,
822
+ effect: null,
823
+ description: 'Launches a sharp steel spike. Never misses.',
824
+ },
825
+ 'Rivet Shot': {
826
+ name: 'Rivet Shot',
827
+ type: 'metal',
828
+ power: 75,
829
+ accuracy: 95,
830
+ pp: 15,
831
+ effect: null,
832
+ description: 'Fires superheated rivets at the target.',
833
+ },
834
+ 'Forge': {
835
+ name: 'Forge',
836
+ type: 'metal',
837
+ power: 0,
838
+ accuracy: 100,
839
+ pp: 5,
840
+ effect: { type: 'stat_boost', target: 'self', stat: 'attack', stages: 1 },
841
+ description: 'Reforges the body to increase attack power.',
842
+ },
843
+ 'Shrapnel Blast': {
844
+ name: 'Shrapnel Blast',
845
+ type: 'metal',
846
+ power: 100,
847
+ accuracy: 80,
848
+ pp: 5,
849
+ effect: null,
850
+ description: 'Detonates a spray of razor-sharp metal fragments.',
851
+ },
852
+ 'Alloy Shield': {
853
+ name: 'Alloy Shield',
854
+ type: 'metal',
855
+ power: 0,
856
+ accuracy: 100,
857
+ pp: 5,
858
+ effect: { type: 'stat_boost', target: 'self', stat: 'defense', stages: 1 },
859
+ description: 'Coats the body in a tough alloy, raising defense.',
860
+ },
861
+ // === ICE (new) ===
862
+ 'Icicle Spear': {
863
+ name: 'Icicle Spear',
864
+ type: 'ice',
865
+ power: 55,
866
+ accuracy: 100,
867
+ pp: 20,
868
+ effect: null,
869
+ description: 'Hurls sharp icicles at the target. Never misses.',
870
+ },
871
+ 'Glacial Crush': {
872
+ name: 'Glacial Crush',
873
+ type: 'ice',
874
+ power: 90,
875
+ accuracy: 85,
876
+ pp: 10,
877
+ effect: null,
878
+ description: 'Drops a massive block of ice on the target.',
879
+ },
880
+ 'Permafrost': {
881
+ name: 'Permafrost',
882
+ type: 'ice',
883
+ power: 0,
884
+ accuracy: 85,
885
+ pp: 10,
886
+ effect: { type: 'stat_lower', target: 'opponent', stat: 'speed', stages: 1 },
887
+ description: 'Freezes the ground beneath the target, lowering speed.',
888
+ },
889
+ 'Hailstorm': {
890
+ name: 'Hailstorm',
891
+ type: 'ice',
892
+ power: 100,
893
+ accuracy: 80,
894
+ pp: 5,
895
+ effect: null,
896
+ description: 'Summons a brutal hailstorm on the battlefield.',
897
+ },
898
+ 'Shatter': {
899
+ name: 'Shatter',
900
+ type: 'ice',
901
+ power: 75,
902
+ accuracy: 95,
903
+ pp: 15,
904
+ effect: null,
905
+ description: 'Shatters the air itself with extreme cold.',
906
+ },
907
+ // === POISON (new) ===
908
+ 'Sludge Bomb': {
909
+ name: 'Sludge Bomb',
910
+ type: 'poison',
911
+ power: 85,
912
+ accuracy: 90,
913
+ pp: 10,
914
+ effect: null,
915
+ description: 'Hurls a glob of toxic sludge at the target.',
916
+ },
917
+ 'Noxious Fumes': {
918
+ name: 'Noxious Fumes',
919
+ type: 'poison',
920
+ power: 0,
921
+ accuracy: 90,
922
+ pp: 10,
923
+ effect: { type: 'stat_lower', target: 'opponent', stat: 'attack', stages: 1 },
924
+ description: 'Releases choking fumes that weaken the target.',
925
+ },
926
+ 'Venom Fang': {
927
+ name: 'Venom Fang',
928
+ type: 'poison',
929
+ power: 65,
930
+ accuracy: 100,
931
+ pp: 15,
932
+ effect: { type: 'status', target: 'opponent', status: 'poisoned', chance: 20 },
933
+ description: 'Bites with venomous fangs. May poison.',
934
+ },
935
+ 'Plague Strike': {
936
+ name: 'Plague Strike',
937
+ type: 'poison',
938
+ power: 100,
939
+ accuracy: 80,
940
+ pp: 5,
941
+ effect: null,
942
+ description: 'A devastating strike infused with plague energy.',
943
+ },
944
+ // === PLASMA (new) ===
945
+ 'Ion Beam': {
946
+ name: 'Ion Beam',
947
+ type: 'plasma',
948
+ power: 70,
949
+ accuracy: 95,
950
+ pp: 15,
951
+ effect: null,
952
+ description: 'Fires a concentrated beam of ionized particles.',
953
+ },
954
+ 'Particle Storm': {
955
+ name: 'Particle Storm',
956
+ type: 'plasma',
957
+ power: 90,
958
+ accuracy: 85,
959
+ pp: 10,
960
+ effect: null,
961
+ description: 'Unleashes a storm of supercharged particles.',
962
+ },
963
+ 'Fusion Blast': {
964
+ name: 'Fusion Blast',
965
+ type: 'plasma',
966
+ power: 100,
967
+ accuracy: 80,
968
+ pp: 5,
969
+ effect: null,
970
+ description: 'Releases energy from nuclear fusion. Devastating.',
971
+ },
972
+ 'Plasma Shield': {
973
+ name: 'Plasma Shield',
974
+ type: 'plasma',
975
+ power: 0,
976
+ accuracy: 100,
977
+ pp: 5,
978
+ effect: { type: 'stat_boost', target: 'self', stat: 'defense', stages: 1 },
979
+ description: 'Creates a barrier of plasma energy for protection.',
980
+ },
981
+ // === NORMAL (new) ===
982
+ 'Tackle': {
983
+ name: 'Tackle',
984
+ type: 'normal',
985
+ power: 40,
986
+ accuracy: 100,
987
+ pp: 25,
988
+ effect: null,
989
+ description: 'A basic full-body tackle. Very reliable.',
990
+ },
991
+ 'Headbutt': {
992
+ name: 'Headbutt',
993
+ type: 'normal',
994
+ power: 60,
995
+ accuracy: 95,
996
+ pp: 15,
997
+ effect: null,
998
+ description: 'A solid headbutt. Good balance of power and accuracy.',
999
+ },
1000
+ 'Body Slam': {
1001
+ name: 'Body Slam',
1002
+ type: 'normal',
1003
+ power: 75,
1004
+ accuracy: 90,
1005
+ pp: 10,
1006
+ effect: { type: 'status', target: 'opponent', status: 'paralyzed', chance: 20 },
1007
+ description: 'Slams into the target with full weight. May paralyze.',
1008
+ },
1009
+ 'Recover': {
1010
+ name: 'Recover',
1011
+ type: 'normal',
1012
+ power: 0,
1013
+ accuracy: 100,
1014
+ pp: 5,
1015
+ effect: { type: 'heal', target: 'self', healPercent: 30 },
1016
+ description: 'Concentrates to restore a large amount of health.',
1017
+ },
1018
+ 'Focus': {
1019
+ name: 'Focus',
1020
+ type: 'normal',
1021
+ power: 0,
1022
+ accuracy: 100,
1023
+ pp: 5,
1024
+ effect: { type: 'stat_boost', target: 'self', stat: 'attack', stages: 1 },
1025
+ description: 'Focuses the mind, raising attack power.',
1026
+ },
1027
+ };
1028
+ export function getMove(name) {
1029
+ return ALL_MOVES[name];
1030
+ }
1031
+ export function getMovesByType(type) {
1032
+ return Object.values(ALL_MOVES).filter(m => m.type === type);
1033
+ }
1034
+ //# sourceMappingURL=moves.js.map