pokemon-io-core 0.0.42 → 0.0.43

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.
@@ -12,8 +12,8 @@ const dbg = (...args) => {
12
12
  const DEFAULT_RULES = {
13
13
  baseCritChance: 0.05,
14
14
  critPerStat: 0.002,
15
- critMultiplier: 1.5,
16
- stabMultiplier: 1.5,
15
+ critMultiplier: 1.3,
16
+ stabMultiplier: 1.2,
17
17
  randomMinDamageFactor: 0.85,
18
18
  randomMaxDamageFactor: 1.0,
19
19
  };
@@ -1,5 +1,5 @@
1
1
  import type { TypeId } from "./ids";
2
- export type Effectiveness = 0 | 0.5 | 1 | 2;
2
+ export type Effectiveness = 0 | 0.75 | 1 | 1.25;
3
3
  export interface TypeDefinition {
4
4
  id: TypeId;
5
5
  displayName: string;
@@ -3,7 +3,7 @@ export const POKEMON_MOVES = [
3
3
  // =====================================================
4
4
  // FUEGO
5
5
  // =====================================================
6
- // 1) Nuke fuego: mucho daño, se nerfea el ataque especial
6
+ // 1) Nuke fuego
7
7
  {
8
8
  id: "overheat",
9
9
  name: "Sofoco Ígneo",
@@ -12,11 +12,11 @@ export const POKEMON_MOVES = [
12
12
  maxPP: 5,
13
13
  priority: 0,
14
14
  effects: [
15
- { kind: "damage", basePower: 130 },
16
- { kind: "damage", flatAmount: 10, target: "self" }, // se quema a sí mismo el ataque
15
+ { kind: "damage", basePower: 80 },
16
+ { kind: "damage", flatAmount: 10, target: "self" }, // coste: se hace daño
17
17
  ],
18
18
  },
19
- // 2) Golpe estable fuego
19
+ // 2) Golpe estable fuerte fuego
20
20
  {
21
21
  id: "flamethrower",
22
22
  name: "Lanzallamas",
@@ -24,7 +24,7 @@ export const POKEMON_MOVES = [
24
24
  accuracy: 100,
25
25
  maxPP: 15,
26
26
  priority: 0,
27
- effects: [{ kind: "damage", basePower: 90 }],
27
+ effects: [{ kind: "damage", basePower: 60 }],
28
28
  },
29
29
  // 3) Daño bajo + quemar
30
30
  {
@@ -35,7 +35,7 @@ export const POKEMON_MOVES = [
35
35
  maxPP: 25,
36
36
  priority: 0,
37
37
  effects: [
38
- { kind: "damage", basePower: 50 },
38
+ { kind: "damage", basePower: 40 },
39
39
  { kind: "apply_status", statusId: "burn" },
40
40
  ],
41
41
  },
@@ -48,7 +48,7 @@ export const POKEMON_MOVES = [
48
48
  maxPP: 10,
49
49
  priority: 0,
50
50
  effects: [
51
- { kind: "heal", target: "self", amount: 30 },
51
+ { kind: "heal", target: "self", amount: 22 },
52
52
  {
53
53
  kind: "clear_status",
54
54
  target: "self",
@@ -64,7 +64,7 @@ export const POKEMON_MOVES = [
64
64
  accuracy: 100,
65
65
  maxPP: 20,
66
66
  priority: 0,
67
- effects: [{ kind: "damage", basePower: 70 }],
67
+ effects: [{ kind: "damage", basePower: 50 }],
68
68
  },
69
69
  // 6) Cura simple
70
70
  {
@@ -74,7 +74,7 @@ export const POKEMON_MOVES = [
74
74
  accuracy: 100,
75
75
  maxPP: 15,
76
76
  priority: 0,
77
- effects: [{ kind: "heal", target: "self", amount: 25 }],
77
+ effects: [{ kind: "heal", target: "self", amount: 18 }],
78
78
  },
79
79
  // =====================================================
80
80
  // AGUA
@@ -88,11 +88,11 @@ export const POKEMON_MOVES = [
88
88
  maxPP: 5,
89
89
  priority: 0,
90
90
  effects: [
91
- { kind: "damage", basePower: 130 },
92
- { kind: "modify_stats", offenseDelta: -15 }, // coste “oculto”
91
+ { kind: "damage", basePower: 80 },
92
+ { kind: "modify_stats", offenseDelta: -15 },
93
93
  ],
94
94
  },
95
- // 2) Golpe estable agua
95
+ // 2) Golpe estable fuerte agua
96
96
  {
97
97
  id: "surf",
98
98
  name: "Surf",
@@ -100,7 +100,7 @@ export const POKEMON_MOVES = [
100
100
  accuracy: 100,
101
101
  maxPP: 15,
102
102
  priority: 0,
103
- effects: [{ kind: "damage", basePower: 90 }],
103
+ effects: [{ kind: "damage", basePower: 60 }],
104
104
  },
105
105
  // 3) Daño bajo + escaldado
106
106
  {
@@ -111,7 +111,7 @@ export const POKEMON_MOVES = [
111
111
  maxPP: 20,
112
112
  priority: 0,
113
113
  effects: [
114
- { kind: "damage", basePower: 60 },
114
+ { kind: "damage", basePower: 40 },
115
115
  { kind: "apply_status", statusId: "scalded" },
116
116
  ],
117
117
  },
@@ -124,7 +124,7 @@ export const POKEMON_MOVES = [
124
124
  maxPP: 10,
125
125
  priority: 0,
126
126
  effects: [
127
- { kind: "heal", target: "self", amount: 30 },
127
+ { kind: "heal", target: "self", amount: 22 },
128
128
  {
129
129
  kind: "clear_status",
130
130
  target: "self",
@@ -140,7 +140,7 @@ export const POKEMON_MOVES = [
140
140
  accuracy: 100,
141
141
  maxPP: 20,
142
142
  priority: 0,
143
- effects: [{ kind: "damage", basePower: 75 }],
143
+ effects: [{ kind: "damage", basePower: 50 }],
144
144
  },
145
145
  // 6) Curación simple
146
146
  {
@@ -150,7 +150,7 @@ export const POKEMON_MOVES = [
150
150
  accuracy: 100,
151
151
  maxPP: 15,
152
152
  priority: 0,
153
- effects: [{ kind: "heal", target: "self", amount: 25 }],
153
+ effects: [{ kind: "heal", target: "self", amount: 18 }],
154
154
  },
155
155
  // =====================================================
156
156
  // PLANTA
@@ -164,11 +164,11 @@ export const POKEMON_MOVES = [
164
164
  maxPP: 5,
165
165
  priority: 0,
166
166
  effects: [
167
- { kind: "damage", basePower: 130 },
167
+ { kind: "damage", basePower: 80 },
168
168
  { kind: "modify_stats", offenseDelta: -20 },
169
169
  ],
170
170
  },
171
- // 2) Golpe estable planta
171
+ // 2) Golpe estable fuerte planta
172
172
  {
173
173
  id: "energy_ball",
174
174
  name: "Energibola",
@@ -176,9 +176,9 @@ export const POKEMON_MOVES = [
176
176
  accuracy: 100,
177
177
  maxPP: 15,
178
178
  priority: 0,
179
- effects: [{ kind: "damage", basePower: 90 }],
179
+ effects: [{ kind: "damage", basePower: 60 }],
180
180
  },
181
- // 3) Daño bajo + enredado (leeches)
181
+ // 3) Daño bajo + enredado
182
182
  {
183
183
  id: "leech_seed",
184
184
  name: "Drenadoras",
@@ -187,7 +187,7 @@ export const POKEMON_MOVES = [
187
187
  maxPP: 20,
188
188
  priority: 0,
189
189
  effects: [
190
- { kind: "damage", basePower: 50 },
190
+ { kind: "damage", basePower: 40 },
191
191
  { kind: "apply_status", statusId: "entangled" },
192
192
  ],
193
193
  },
@@ -200,7 +200,7 @@ export const POKEMON_MOVES = [
200
200
  maxPP: 10,
201
201
  priority: 0,
202
202
  effects: [
203
- { kind: "heal", target: "self", amount: 30 },
203
+ { kind: "heal", target: "self", amount: 22 },
204
204
  {
205
205
  kind: "clear_status",
206
206
  target: "self",
@@ -216,7 +216,7 @@ export const POKEMON_MOVES = [
216
216
  accuracy: 100,
217
217
  maxPP: 20,
218
218
  priority: 0,
219
- effects: [{ kind: "damage", basePower: 80 }],
219
+ effects: [{ kind: "damage", basePower: 50 }],
220
220
  },
221
221
  // 6) Curación simple
222
222
  {
@@ -226,10 +226,10 @@ export const POKEMON_MOVES = [
226
226
  accuracy: 100,
227
227
  maxPP: 15,
228
228
  priority: 0,
229
- effects: [{ kind: "heal", target: "self", amount: 25 }],
229
+ effects: [{ kind: "heal", target: "self", amount: 18 }],
230
230
  },
231
231
  // =====================================================
232
- // PSIQUICO
232
+ // PSÍQUICO
233
233
  // =====================================================
234
234
  // 1) Nuke psíquico
235
235
  {
@@ -240,11 +240,11 @@ export const POKEMON_MOVES = [
240
240
  maxPP: 5,
241
241
  priority: 0,
242
242
  effects: [
243
- { kind: "damage", basePower: 130 },
243
+ { kind: "damage", basePower: 80 },
244
244
  { kind: "modify_stats", offenseDelta: -20 },
245
245
  ],
246
246
  },
247
- // 2) Golpe estable psíquico
247
+ // 2) Golpe estable fuerte psíquico
248
248
  {
249
249
  id: "psychic",
250
250
  name: "Psíquico",
@@ -252,9 +252,9 @@ export const POKEMON_MOVES = [
252
252
  accuracy: 100,
253
253
  maxPP: 15,
254
254
  priority: 0,
255
- effects: [{ kind: "damage", basePower: 90 }],
255
+ effects: [{ kind: "damage", basePower: 60 }],
256
256
  },
257
- // 3) Daño bajo + bloqueo mental (hard CC)
257
+ // 3) Daño bajo + hard CC
258
258
  {
259
259
  id: "mind_spike",
260
260
  name: "Puñal Mental",
@@ -263,7 +263,7 @@ export const POKEMON_MOVES = [
263
263
  maxPP: 15,
264
264
  priority: 0,
265
265
  effects: [
266
- { kind: "damage", basePower: 50 },
266
+ { kind: "damage", basePower: 40 },
267
267
  { kind: "apply_status", statusId: "mind_break" },
268
268
  ],
269
269
  },
@@ -276,7 +276,7 @@ export const POKEMON_MOVES = [
276
276
  maxPP: 10,
277
277
  priority: 0,
278
278
  effects: [
279
- { kind: "heal", target: "self", amount: 30 },
279
+ { kind: "heal", target: "self", amount: 22 },
280
280
  {
281
281
  kind: "clear_status",
282
282
  target: "self",
@@ -292,7 +292,7 @@ export const POKEMON_MOVES = [
292
292
  accuracy: 100,
293
293
  maxPP: 20,
294
294
  priority: 0,
295
- effects: [{ kind: "damage", basePower: 80 }],
295
+ effects: [{ kind: "damage", basePower: 50 }],
296
296
  },
297
297
  // 6) Curación simple
298
298
  {
@@ -302,7 +302,7 @@ export const POKEMON_MOVES = [
302
302
  accuracy: 100,
303
303
  maxPP: 15,
304
304
  priority: 0,
305
- effects: [{ kind: "heal", target: "self", amount: 25 }],
305
+ effects: [{ kind: "heal", target: "self", amount: 18 }],
306
306
  },
307
307
  // =====================================================
308
308
  // ROCA
@@ -316,11 +316,11 @@ export const POKEMON_MOVES = [
316
316
  maxPP: 5,
317
317
  priority: 0,
318
318
  effects: [
319
- { kind: "damage", basePower: 140 },
319
+ { kind: "damage", basePower: 80 },
320
320
  { kind: "modify_stats", offenseDelta: -20 },
321
321
  ],
322
322
  },
323
- // 2) Golpe estable roca
323
+ // 2) Golpe estable fuerte roca
324
324
  {
325
325
  id: "stone_edge",
326
326
  name: "Roca Afilada",
@@ -328,9 +328,9 @@ export const POKEMON_MOVES = [
328
328
  accuracy: 90,
329
329
  maxPP: 10,
330
330
  priority: 0,
331
- effects: [{ kind: "damage", basePower: 100 }],
331
+ effects: [{ kind: "damage", basePower: 60 }],
332
332
  },
333
- // 3) Daño bajo + petrificado
333
+ // 3) Daño medio + petrificado
334
334
  {
335
335
  id: "rock_slide",
336
336
  name: "Avalancha",
@@ -339,7 +339,7 @@ export const POKEMON_MOVES = [
339
339
  maxPP: 15,
340
340
  priority: 0,
341
341
  effects: [
342
- { kind: "damage", basePower: 75 },
342
+ { kind: "damage", basePower: 50 },
343
343
  { kind: "apply_status", statusId: "petrified" },
344
344
  ],
345
345
  },
@@ -352,7 +352,7 @@ export const POKEMON_MOVES = [
352
352
  maxPP: 10,
353
353
  priority: 0,
354
354
  effects: [
355
- { kind: "heal", target: "self", amount: 30 },
355
+ { kind: "heal", target: "self", amount: 22 },
356
356
  {
357
357
  kind: "clear_status",
358
358
  target: "self",
@@ -368,7 +368,7 @@ export const POKEMON_MOVES = [
368
368
  accuracy: 100,
369
369
  maxPP: 20,
370
370
  priority: 0,
371
- effects: [{ kind: "damage", basePower: 80 }],
371
+ effects: [{ kind: "damage", basePower: 50 }],
372
372
  },
373
373
  // 6) Curación simple
374
374
  {
@@ -378,7 +378,7 @@ export const POKEMON_MOVES = [
378
378
  accuracy: 100,
379
379
  maxPP: 15,
380
380
  priority: 0,
381
- effects: [{ kind: "heal", target: "self", amount: 25 }],
381
+ effects: [{ kind: "heal", target: "self", amount: 18 }],
382
382
  },
383
383
  // =====================================================
384
384
  // ELÉCTRICO
@@ -392,11 +392,11 @@ export const POKEMON_MOVES = [
392
392
  maxPP: 5,
393
393
  priority: 0,
394
394
  effects: [
395
- { kind: "damage", basePower: 130 },
395
+ { kind: "damage", basePower: 80 },
396
396
  { kind: "modify_stats", offenseDelta: -15 },
397
397
  ],
398
398
  },
399
- // 2) Golpe estable eléctrico
399
+ // 2) Golpe estable fuerte eléctrico
400
400
  {
401
401
  id: "thunderbolt",
402
402
  name: "Rayo",
@@ -404,9 +404,9 @@ export const POKEMON_MOVES = [
404
404
  accuracy: 100,
405
405
  maxPP: 15,
406
406
  priority: 0,
407
- effects: [{ kind: "damage", basePower: 90 }],
407
+ effects: [{ kind: "damage", basePower: 60 }],
408
408
  },
409
- // 3) Daño bajo + electrocutado
409
+ // 3) Daño bajo + shocked
410
410
  {
411
411
  id: "thunder_wave",
412
412
  name: "Onda Trueno",
@@ -415,7 +415,7 @@ export const POKEMON_MOVES = [
415
415
  maxPP: 20,
416
416
  priority: 0,
417
417
  effects: [
418
- { kind: "damage", basePower: 50 },
418
+ { kind: "damage", basePower: 40 },
419
419
  { kind: "apply_status", statusId: "shocked" },
420
420
  ],
421
421
  },
@@ -428,7 +428,7 @@ export const POKEMON_MOVES = [
428
428
  maxPP: 10,
429
429
  priority: 0,
430
430
  effects: [
431
- { kind: "heal", target: "self", amount: 30 },
431
+ { kind: "heal", target: "self", amount: 22 },
432
432
  {
433
433
  kind: "clear_status",
434
434
  target: "self",
@@ -444,7 +444,7 @@ export const POKEMON_MOVES = [
444
444
  accuracy: 100,
445
445
  maxPP: 20,
446
446
  priority: 0,
447
- effects: [{ kind: "damage", basePower: 80 }],
447
+ effects: [{ kind: "damage", basePower: 50 }],
448
448
  },
449
449
  // 6) Curación simple
450
450
  {
@@ -454,6 +454,6 @@ export const POKEMON_MOVES = [
454
454
  accuracy: 100,
455
455
  maxPP: 15,
456
456
  priority: 0,
457
- effects: [{ kind: "heal", target: "self", amount: 25 }],
457
+ effects: [{ kind: "heal", target: "self", amount: 18 }],
458
458
  },
459
459
  ];
@@ -49,42 +49,42 @@ export const POKEMON_TYPE_MATRIX = {
49
49
  [POKEMON_TYPE_IDS.rock]: 1,
50
50
  },
51
51
  [POKEMON_TYPE_IDS.fire]: {
52
- [POKEMON_TYPE_IDS.fire]: 0.5,
53
- [POKEMON_TYPE_IDS.water]: 0.5,
54
- [POKEMON_TYPE_IDS.grass]: 2,
52
+ [POKEMON_TYPE_IDS.fire]: 0.75,
53
+ [POKEMON_TYPE_IDS.water]: 0.75,
54
+ [POKEMON_TYPE_IDS.grass]: 1.25,
55
55
  [POKEMON_TYPE_IDS.electric]: 1,
56
56
  [POKEMON_TYPE_IDS.psychic]: 1,
57
57
  [POKEMON_TYPE_IDS.rock]: 1,
58
58
  },
59
59
  [POKEMON_TYPE_IDS.water]: {
60
- [POKEMON_TYPE_IDS.fire]: 2,
61
- [POKEMON_TYPE_IDS.water]: 0.5,
62
- [POKEMON_TYPE_IDS.grass]: 0.5,
60
+ [POKEMON_TYPE_IDS.fire]: 1.25,
61
+ [POKEMON_TYPE_IDS.water]: 0.75,
62
+ [POKEMON_TYPE_IDS.grass]: 0.75,
63
63
  [POKEMON_TYPE_IDS.electric]: 1,
64
64
  [POKEMON_TYPE_IDS.psychic]: 1,
65
65
  [POKEMON_TYPE_IDS.rock]: 1,
66
66
  },
67
67
  [POKEMON_TYPE_IDS.grass]: {
68
- [POKEMON_TYPE_IDS.fire]: 0.5,
69
- [POKEMON_TYPE_IDS.water]: 2,
70
- [POKEMON_TYPE_IDS.grass]: 0.5,
68
+ [POKEMON_TYPE_IDS.fire]: 0.75,
69
+ [POKEMON_TYPE_IDS.water]: 1.25,
70
+ [POKEMON_TYPE_IDS.grass]: 0.75,
71
71
  [POKEMON_TYPE_IDS.electric]: 1,
72
72
  [POKEMON_TYPE_IDS.psychic]: 1,
73
73
  [POKEMON_TYPE_IDS.rock]: 1,
74
74
  },
75
75
  [POKEMON_TYPE_IDS.psychic]: {
76
76
  [POKEMON_TYPE_IDS.fire]: 1,
77
- [POKEMON_TYPE_IDS.water]: 2,
78
- [POKEMON_TYPE_IDS.grass]: 0.5,
79
- [POKEMON_TYPE_IDS.electric]: 0.5,
77
+ [POKEMON_TYPE_IDS.water]: 1.25,
78
+ [POKEMON_TYPE_IDS.grass]: 0.75,
79
+ [POKEMON_TYPE_IDS.electric]: 0.75,
80
80
  [POKEMON_TYPE_IDS.psychic]: 1,
81
81
  [POKEMON_TYPE_IDS.rock]: 1,
82
82
  },
83
83
  [POKEMON_TYPE_IDS.rock]: {
84
84
  [POKEMON_TYPE_IDS.fire]: 1,
85
- [POKEMON_TYPE_IDS.water]: 2,
86
- [POKEMON_TYPE_IDS.grass]: 0.5,
87
- [POKEMON_TYPE_IDS.electric]: 0.5,
85
+ [POKEMON_TYPE_IDS.water]: 1.25,
86
+ [POKEMON_TYPE_IDS.grass]: 0.75,
87
+ [POKEMON_TYPE_IDS.electric]: 0.75,
88
88
  [POKEMON_TYPE_IDS.psychic]: 1,
89
89
  [POKEMON_TYPE_IDS.rock]: 1,
90
90
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pokemon-io-core",
3
- "version": "0.0.42",
3
+ "version": "0.0.43",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "type": "module",