pokemon-io-core 0.0.34 → 0.0.36

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.
@@ -1,45 +1,34 @@
1
1
  import { POKEMON_TYPE_IDS } from "./types";
2
2
  export const POKEMON_MOVES = [
3
+ // =====================================================
4
+ // FUEGO
5
+ // =====================================================
6
+ // 1) Nuke fuego: mucho daño, se nerfea el ataque especial
3
7
  {
4
- id: "tackle",
5
- name: "Placaje",
8
+ id: "overheat",
9
+ name: "Sofoco Ígneo",
6
10
  typeId: POKEMON_TYPE_IDS.fire,
7
- accuracy: 100,
8
- maxPP: 35,
11
+ accuracy: 85,
12
+ maxPP: 5,
9
13
  priority: 0,
10
14
  effects: [
11
- {
12
- kind: "damage",
13
- target: "enemy",
14
- basePower: 40,
15
- },
16
- {
17
- kind: "apply_status",
18
- target: "enemy",
19
- statusId: "poison",
20
- },
15
+ { kind: "damage", basePower: 130 },
16
+ { kind: "modify_stats", offenseDelta: -20 }, // se quema a sí mismo el ataque
21
17
  ],
22
18
  },
19
+ // 2) Golpe estable fuego
23
20
  {
24
- id: "fire_fang",
25
- name: "Colmillo Ígneo",
21
+ id: "flamethrower",
22
+ name: "Lanzallamas",
26
23
  typeId: POKEMON_TYPE_IDS.fire,
27
- accuracy: 95,
24
+ accuracy: 100,
28
25
  maxPP: 15,
29
26
  priority: 0,
30
27
  effects: [
31
- {
32
- kind: "damage",
33
- target: "enemy",
34
- basePower: 65,
35
- },
36
- {
37
- kind: "apply_status",
38
- target: "enemy",
39
- statusId: "burn",
40
- },
28
+ { kind: "damage", basePower: 90 },
41
29
  ],
42
30
  },
31
+ // 3) Daño bajo + quemar
43
32
  {
44
33
  id: "ember",
45
34
  name: "Ascuas",
@@ -48,226 +37,459 @@ export const POKEMON_MOVES = [
48
37
  maxPP: 25,
49
38
  priority: 0,
50
39
  effects: [
40
+ { kind: "damage", basePower: 50 },
41
+ { kind: "apply_status", statusId: "burn" },
42
+ ],
43
+ },
44
+ // 4) Cura + limpia estados blandos
45
+ {
46
+ id: "purifying_flame",
47
+ name: "Llama Purificadora",
48
+ typeId: POKEMON_TYPE_IDS.fire,
49
+ accuracy: 100,
50
+ maxPP: 10,
51
+ priority: 0,
52
+ effects: [
53
+ { kind: "heal", target: "self", amount: 30 },
51
54
  {
52
- kind: "damage",
53
- target: "enemy",
54
- basePower: 20,
55
- },
56
- {
57
- kind: "apply_status",
58
- target: "enemy",
59
- statusId: "burn",
55
+ kind: "clear_status",
56
+ target: "self",
57
+ kinds: ["soft"],
60
58
  },
61
59
  ],
62
60
  },
61
+ // 5) Golpe medio estable
63
62
  {
64
- id: "water_gun",
65
- name: "Pistola Agua",
63
+ id: "fire_claw",
64
+ name: "Garra Ígnea",
65
+ typeId: POKEMON_TYPE_IDS.fire,
66
+ accuracy: 100,
67
+ maxPP: 20,
68
+ priority: 0,
69
+ effects: [
70
+ { kind: "damage", basePower: 70 },
71
+ ],
72
+ },
73
+ // 6) Cura simple
74
+ {
75
+ id: "healing_warmth",
76
+ name: "Calor Reconfortante",
77
+ typeId: POKEMON_TYPE_IDS.fire,
78
+ accuracy: 100,
79
+ maxPP: 15,
80
+ priority: 0,
81
+ effects: [
82
+ { kind: "heal", target: "self", amount: 25 },
83
+ ],
84
+ },
85
+ // =====================================================
86
+ // AGUA
87
+ // =====================================================
88
+ // 1) Nuke agua
89
+ {
90
+ id: "hydro_cannon",
91
+ name: "Cañón Hidro",
92
+ typeId: POKEMON_TYPE_IDS.water,
93
+ accuracy: 85,
94
+ maxPP: 5,
95
+ priority: 0,
96
+ effects: [
97
+ { kind: "damage", basePower: 130 },
98
+ { kind: "modify_stats", offenseDelta: -15 }, // coste “oculto”
99
+ ],
100
+ },
101
+ // 2) Golpe estable agua
102
+ {
103
+ id: "surf",
104
+ name: "Surf",
66
105
  typeId: POKEMON_TYPE_IDS.water,
67
106
  accuracy: 100,
68
- maxPP: 25,
107
+ maxPP: 15,
69
108
  priority: 0,
70
109
  effects: [
71
- {
72
- kind: "apply_status",
73
- target: "enemy",
74
- statusId: "poison",
75
- },
110
+ { kind: "damage", basePower: 90 },
76
111
  ],
77
112
  },
113
+ // 3) Daño bajo + escaldado
78
114
  {
79
- id: "water_gun2",
80
- name: "Hidropulso",
115
+ id: "scald",
116
+ name: "Escaldar",
81
117
  typeId: POKEMON_TYPE_IDS.water,
82
118
  accuracy: 100,
83
- maxPP: 25,
119
+ maxPP: 20,
84
120
  priority: 0,
85
121
  effects: [
86
- {
87
- kind: "damage",
88
- target: "enemy",
89
- basePower: 40,
90
- },
122
+ { kind: "damage", basePower: 60 },
123
+ { kind: "apply_status", statusId: "scalded" },
91
124
  ],
92
125
  },
126
+ // 4) Curación + limpiar estados
93
127
  {
94
- id: "water_gun3",
95
- name: "Llover",
128
+ id: "aqua_purify",
129
+ name: "Aguas Purificadoras",
96
130
  typeId: POKEMON_TYPE_IDS.water,
97
131
  accuracy: 100,
98
- maxPP: 25,
132
+ maxPP: 10,
99
133
  priority: 0,
100
134
  effects: [
135
+ { kind: "heal", target: "self", amount: 30 },
101
136
  {
102
- kind: "damage",
103
- target: "enemy",
104
- basePower: 40,
137
+ kind: "clear_status",
138
+ target: "self",
139
+ kinds: ["soft"],
105
140
  },
106
141
  ],
107
142
  },
143
+ // 5) Golpe medio estable
108
144
  {
109
- id: "water_gun4",
110
- name: "Wet",
145
+ id: "wave_crash",
146
+ name: "Oleada Feroz",
111
147
  typeId: POKEMON_TYPE_IDS.water,
112
148
  accuracy: 100,
113
- maxPP: 25,
149
+ maxPP: 20,
114
150
  priority: 0,
115
151
  effects: [
116
- {
117
- kind: "damage",
118
- target: "enemy",
119
- basePower: 40,
120
- },
152
+ { kind: "damage", basePower: 75 },
153
+ ],
154
+ },
155
+ // 6) Curación simple
156
+ {
157
+ id: "healing_rain",
158
+ name: "Lluvia Curativa",
159
+ typeId: POKEMON_TYPE_IDS.water,
160
+ accuracy: 100,
161
+ maxPP: 15,
162
+ priority: 0,
163
+ effects: [
164
+ { kind: "heal", target: "self", amount: 25 },
121
165
  ],
122
166
  },
167
+ // =====================================================
168
+ // PLANTA
169
+ // =====================================================
170
+ // 1) Nuke planta
123
171
  {
124
- id: "vine_whip",
125
- name: "Látigo Cepa",
172
+ id: "leaf_storm",
173
+ name: "Tormenta de Hojas",
174
+ typeId: POKEMON_TYPE_IDS.grass,
175
+ accuracy: 90,
176
+ maxPP: 5,
177
+ priority: 0,
178
+ effects: [
179
+ { kind: "damage", basePower: 130 },
180
+ { kind: "modify_stats", offenseDelta: -20 },
181
+ ],
182
+ },
183
+ // 2) Golpe estable planta
184
+ {
185
+ id: "energy_ball",
186
+ name: "Energibola",
126
187
  typeId: POKEMON_TYPE_IDS.grass,
127
188
  accuracy: 100,
128
- maxPP: 25,
189
+ maxPP: 15,
129
190
  priority: 0,
130
191
  effects: [
131
- {
132
- kind: "damage",
133
- target: "enemy",
134
- basePower: 45,
135
- },
192
+ { kind: "damage", basePower: 90 },
136
193
  ],
137
194
  },
195
+ // 3) Daño bajo + enredado (leeches)
138
196
  {
139
- id: "vine_whip2",
140
- name: "Hierbita",
197
+ id: "leech_seed",
198
+ name: "Drenadoras",
141
199
  typeId: POKEMON_TYPE_IDS.grass,
142
200
  accuracy: 100,
143
- maxPP: 25,
201
+ maxPP: 20,
144
202
  priority: 0,
145
203
  effects: [
146
- {
147
- kind: "damage",
148
- target: "enemy",
149
- basePower: 45,
150
- },
204
+ { kind: "damage", basePower: 50 },
205
+ { kind: "apply_status", statusId: "entangled" },
151
206
  ],
152
207
  },
208
+ // 4) Curación + limpiar estados
153
209
  {
154
- id: "vine_whip3",
155
- name: "Buena flor",
210
+ id: "nature_purify",
211
+ name: "Purificación Natural",
156
212
  typeId: POKEMON_TYPE_IDS.grass,
157
213
  accuracy: 100,
158
- maxPP: 25,
214
+ maxPP: 10,
159
215
  priority: 0,
160
216
  effects: [
217
+ { kind: "heal", target: "self", amount: 30 },
161
218
  {
162
- kind: "damage",
163
- target: "enemy",
164
- basePower: 45,
219
+ kind: "clear_status",
220
+ target: "self",
221
+ kinds: ["soft"],
165
222
  },
166
223
  ],
167
224
  },
225
+ // 5) Golpe medio estable
168
226
  {
169
- id: "vine_whip4",
170
- name: "Recurrente",
227
+ id: "power_whip",
228
+ name: "Látigo Poderoso",
171
229
  typeId: POKEMON_TYPE_IDS.grass,
172
230
  accuracy: 100,
173
- maxPP: 25,
231
+ maxPP: 20,
232
+ priority: 0,
233
+ effects: [
234
+ { kind: "damage", basePower: 80 },
235
+ ],
236
+ },
237
+ // 6) Curación simple
238
+ {
239
+ id: "regrowth",
240
+ name: "Rebrote",
241
+ typeId: POKEMON_TYPE_IDS.grass,
242
+ accuracy: 100,
243
+ maxPP: 15,
174
244
  priority: 0,
175
245
  effects: [
246
+ { kind: "heal", target: "self", amount: 25 },
247
+ ],
248
+ },
249
+ // =====================================================
250
+ // PSIQUICO
251
+ // =====================================================
252
+ // 1) Nuke psíquico
253
+ {
254
+ id: "psycho_boost",
255
+ name: "Psicoimpulso",
256
+ typeId: POKEMON_TYPE_IDS.psychic,
257
+ accuracy: 90,
258
+ maxPP: 5,
259
+ priority: 0,
260
+ effects: [
261
+ { kind: "damage", basePower: 130 },
262
+ { kind: "modify_stats", offenseDelta: -20 },
263
+ ],
264
+ },
265
+ // 2) Golpe estable psíquico
266
+ {
267
+ id: "psychic",
268
+ name: "Psíquico",
269
+ typeId: POKEMON_TYPE_IDS.psychic,
270
+ accuracy: 100,
271
+ maxPP: 15,
272
+ priority: 0,
273
+ effects: [
274
+ { kind: "damage", basePower: 90 },
275
+ ],
276
+ },
277
+ // 3) Daño bajo + bloqueo mental (hard CC)
278
+ {
279
+ id: "mind_spike",
280
+ name: "Puñal Mental",
281
+ typeId: POKEMON_TYPE_IDS.psychic,
282
+ accuracy: 100,
283
+ maxPP: 15,
284
+ priority: 0,
285
+ effects: [
286
+ { kind: "damage", basePower: 50 },
287
+ { kind: "apply_status", statusId: "mind_break" },
288
+ ],
289
+ },
290
+ // 4) Curación + limpiar estados
291
+ {
292
+ id: "aura_cleanse",
293
+ name: "Limpieza Áurica",
294
+ typeId: POKEMON_TYPE_IDS.psychic,
295
+ accuracy: 100,
296
+ maxPP: 10,
297
+ priority: 0,
298
+ effects: [
299
+ { kind: "heal", target: "self", amount: 30 },
176
300
  {
177
- kind: "damage",
178
- target: "enemy",
179
- basePower: 45,
301
+ kind: "clear_status",
302
+ target: "self",
303
+ kinds: ["soft"],
180
304
  },
181
305
  ],
182
306
  },
307
+ // 5) Golpe medio estable
183
308
  {
184
- id: "thunder_shock",
185
- name: "Impactrueno",
186
- typeId: POKEMON_TYPE_IDS.electric,
309
+ id: "psyshock",
310
+ name: "Psicocarga",
311
+ typeId: POKEMON_TYPE_IDS.psychic,
312
+ accuracy: 100,
313
+ maxPP: 20,
314
+ priority: 0,
315
+ effects: [
316
+ { kind: "damage", basePower: 80 },
317
+ ],
318
+ },
319
+ // 6) Curación simple
320
+ {
321
+ id: "healing_mind",
322
+ name: "Mente Serena",
323
+ typeId: POKEMON_TYPE_IDS.psychic,
324
+ accuracy: 100,
325
+ maxPP: 15,
326
+ priority: 0,
327
+ effects: [
328
+ { kind: "heal", target: "self", amount: 25 },
329
+ ],
330
+ },
331
+ // =====================================================
332
+ // ROCA
333
+ // =====================================================
334
+ // 1) Nuke roca
335
+ {
336
+ id: "rock_wrecker",
337
+ name: "Destroza Rocas",
338
+ typeId: POKEMON_TYPE_IDS.rock,
339
+ accuracy: 85,
340
+ maxPP: 5,
341
+ priority: 0,
342
+ effects: [
343
+ { kind: "damage", basePower: 140 },
344
+ { kind: "modify_stats", offenseDelta: -20 },
345
+ ],
346
+ },
347
+ // 2) Golpe estable roca
348
+ {
349
+ id: "stone_edge",
350
+ name: "Roca Afilada",
351
+ typeId: POKEMON_TYPE_IDS.rock,
352
+ accuracy: 90,
353
+ maxPP: 10,
354
+ priority: 0,
355
+ effects: [
356
+ { kind: "damage", basePower: 100 },
357
+ ],
358
+ },
359
+ // 3) Daño bajo + petrificado
360
+ {
361
+ id: "rock_slide",
362
+ name: "Avalancha",
363
+ typeId: POKEMON_TYPE_IDS.rock,
364
+ accuracy: 100,
365
+ maxPP: 15,
366
+ priority: 0,
367
+ effects: [
368
+ { kind: "damage", basePower: 75 },
369
+ { kind: "apply_status", statusId: "petrified" },
370
+ ],
371
+ },
372
+ // 4) Curación + limpiar estados
373
+ {
374
+ id: "sand_cleanse",
375
+ name: "Purga de Arena",
376
+ typeId: POKEMON_TYPE_IDS.rock,
187
377
  accuracy: 100,
188
- maxPP: 30,
378
+ maxPP: 10,
189
379
  priority: 0,
190
380
  effects: [
381
+ { kind: "heal", target: "self", amount: 30 },
191
382
  {
192
- kind: "damage",
193
- target: "enemy",
194
- basePower: 40,
383
+ kind: "clear_status",
384
+ target: "self",
385
+ kinds: ["soft"],
195
386
  },
196
387
  ],
197
388
  },
389
+ // 5) Golpe medio estable
390
+ {
391
+ id: "power_gem",
392
+ name: "Joya de Luz",
393
+ typeId: POKEMON_TYPE_IDS.rock,
394
+ accuracy: 100,
395
+ maxPP: 20,
396
+ priority: 0,
397
+ effects: [
398
+ { kind: "damage", basePower: 80 },
399
+ ],
400
+ },
401
+ // 6) Curación simple
402
+ {
403
+ id: "healing_mineral",
404
+ name: "Mineral Curativo",
405
+ typeId: POKEMON_TYPE_IDS.rock,
406
+ accuracy: 100,
407
+ maxPP: 15,
408
+ priority: 0,
409
+ effects: [
410
+ { kind: "heal", target: "self", amount: 25 },
411
+ ],
412
+ },
413
+ // =====================================================
414
+ // ELÉCTRICO
415
+ // =====================================================
416
+ // 1) Nuke eléctrico
198
417
  {
199
- id: "thunder_shock2",
418
+ id: "bolt_strike",
419
+ name: "Impacto Voltio",
420
+ typeId: POKEMON_TYPE_IDS.electric,
421
+ accuracy: 85,
422
+ maxPP: 5,
423
+ priority: 0,
424
+ effects: [
425
+ { kind: "damage", basePower: 130 },
426
+ { kind: "modify_stats", offenseDelta: -15 },
427
+ ],
428
+ },
429
+ // 2) Golpe estable eléctrico
430
+ {
431
+ id: "thunderbolt",
200
432
  name: "Rayo",
201
433
  typeId: POKEMON_TYPE_IDS.electric,
202
434
  accuracy: 100,
203
- maxPP: 30,
435
+ maxPP: 15,
204
436
  priority: 0,
205
437
  effects: [
206
- {
207
- kind: "damage",
208
- target: "enemy",
209
- basePower: 40,
210
- },
438
+ { kind: "damage", basePower: 90 },
211
439
  ],
212
440
  },
441
+ // 3) Daño bajo + electrocutado
213
442
  {
214
- id: "thunder_shock3",
215
- name: "Tormenta",
443
+ id: "thunder_wave",
444
+ name: "Onda Trueno",
216
445
  typeId: POKEMON_TYPE_IDS.electric,
217
446
  accuracy: 100,
218
- maxPP: 30,
447
+ maxPP: 20,
219
448
  priority: 0,
220
449
  effects: [
221
- {
222
- kind: "damage",
223
- target: "enemy",
224
- basePower: 40,
225
- },
450
+ { kind: "damage", basePower: 50 },
451
+ { kind: "apply_status", statusId: "shocked" },
226
452
  ],
227
453
  },
454
+ // 4) Curación + limpiar estados
228
455
  {
229
- id: "thunder_shock4",
230
- name: "Lluvia de rayos",
456
+ id: "static_field",
457
+ name: "Campo Estático",
231
458
  typeId: POKEMON_TYPE_IDS.electric,
232
459
  accuracy: 100,
233
- maxPP: 30,
460
+ maxPP: 10,
234
461
  priority: 0,
235
462
  effects: [
463
+ { kind: "heal", target: "self", amount: 30 },
236
464
  {
237
- kind: "damage",
238
- target: "enemy",
239
- basePower: 40,
465
+ kind: "clear_status",
466
+ target: "self",
467
+ kinds: ["soft"],
240
468
  },
241
469
  ],
242
470
  },
471
+ // 5) Golpe medio estable
243
472
  {
244
- id: "think",
245
- name: "Rayada mental",
246
- typeId: POKEMON_TYPE_IDS.psychic,
473
+ id: "wild_charge",
474
+ name: "Carga Salvaje",
475
+ typeId: POKEMON_TYPE_IDS.electric,
247
476
  accuracy: 100,
248
- maxPP: 30,
477
+ maxPP: 20,
249
478
  priority: 0,
250
479
  effects: [
251
- {
252
- kind: "damage",
253
- target: "enemy",
254
- basePower: 40,
255
- },
480
+ { kind: "damage", basePower: 80 },
256
481
  ],
257
482
  },
483
+ // 6) Curación simple
258
484
  {
259
- id: "think2",
260
- name: "Psicoterapia",
261
- typeId: POKEMON_TYPE_IDS.psychic,
485
+ id: "healing_spark",
486
+ name: "Chispa Sanadora",
487
+ typeId: POKEMON_TYPE_IDS.electric,
262
488
  accuracy: 100,
263
- maxPP: 30,
489
+ maxPP: 15,
264
490
  priority: 0,
265
491
  effects: [
266
- {
267
- kind: "damage",
268
- target: "enemy",
269
- basePower: 40,
270
- },
492
+ { kind: "heal", target: "self", amount: 25 },
271
493
  ],
272
494
  },
273
495
  ];
@@ -1,2 +1,2 @@
1
- import { StatusDefinition } from "../../core";
1
+ import type { StatusDefinition } from "../../core";
2
2
  export declare const POKEMON_STATUSES: StatusDefinition[];
@@ -1,4 +1,5 @@
1
1
  export const POKEMON_STATUSES = [
2
+ // FUEGO – Quemadura
2
3
  {
3
4
  id: "burn",
4
5
  name: "Quemado",
@@ -6,57 +7,79 @@ export const POKEMON_STATUSES = [
6
7
  minDurationTurns: 3,
7
8
  maxDurationTurns: 5,
8
9
  effectsPerStack: [
10
+ // DoT de fuego
9
11
  {
10
- // Daño plano por turno
11
12
  kind: "damage",
12
- target: "self",
13
+ // el motor lo interpreta como daño plano por turno
13
14
  flatAmount: 6,
14
15
  },
16
+ ],
17
+ },
18
+ // AGUA – Escaldado / Empapado
19
+ {
20
+ id: "scalded",
21
+ name: "Escaldado",
22
+ kind: "soft",
23
+ minDurationTurns: 3,
24
+ maxDurationTurns: 5,
25
+ effectsPerStack: [
15
26
  {
16
- // Baja el ataque mientras dure el estado
17
- kind: "modify_stats",
18
- target: "self",
19
- offenseDelta: -10,
27
+ kind: "damage",
28
+ flatAmount: 5,
20
29
  },
21
30
  ],
22
31
  },
32
+ // PLANTA – Enredado
23
33
  {
24
- id: "poison",
25
- name: "Envenenado",
34
+ id: "entangled",
35
+ name: "Enredado",
26
36
  kind: "soft",
27
37
  minDurationTurns: 3,
28
38
  maxDurationTurns: 5,
29
39
  effectsPerStack: [
30
40
  {
31
41
  kind: "damage",
32
- target: "self",
33
- flatAmount: 8,
42
+ flatAmount: 4,
34
43
  },
35
44
  ],
36
45
  },
46
+ // PSIQUICO – Bloqueo mental (hard CC)
37
47
  {
38
- id: "paralysis",
39
- name: "Paralizado",
48
+ id: "mind_break",
49
+ name: "Bloqueo Mental",
50
+ kind: "hard_cc",
51
+ minDurationTurns: 1,
52
+ maxDurationTurns: 2,
53
+ effectsPerStack: [
54
+ // El hard_cc ya lo interpreta el motor, no hace falta daño
55
+ ],
56
+ },
57
+ // ROCA – Petrificado
58
+ {
59
+ id: "petrified",
60
+ name: "Petrificado",
40
61
  kind: "soft",
41
62
  minDurationTurns: 2,
42
63
  maxDurationTurns: 4,
43
64
  effectsPerStack: [
44
65
  {
45
- kind: "modify_effective_speed",
46
- target: "self",
47
- multiplier: 0.5,
66
+ kind: "damage",
67
+ flatAmount: 5,
48
68
  },
49
69
  ],
50
70
  },
71
+ // ELÉCTRICO – Electrocutado
51
72
  {
52
- id: "sleep",
53
- name: "Dormido",
54
- kind: "hard_cc",
55
- minDurationTurns: 1,
56
- maxDurationTurns: 3,
73
+ id: "shocked",
74
+ name: "Electrocutado",
75
+ kind: "soft",
76
+ minDurationTurns: 2,
77
+ maxDurationTurns: 4,
57
78
  effectsPerStack: [
58
- // El motor interpreta hard_cc y bloquea la acción;
59
- // no necesitas más efectos aquí de momento.
79
+ {
80
+ kind: "damage",
81
+ flatAmount: 5,
82
+ },
60
83
  ],
61
84
  },
62
85
  ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pokemon-io-core",
3
- "version": "0.0.34",
3
+ "version": "0.0.36",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "type": "module",