pokemon-io-core 0.0.53 → 0.0.55

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 (55) hide show
  1. package/dist/api/battle.d.ts +26 -0
  2. package/dist/api/battle.js +2 -0
  3. package/dist/api/room.d.ts +21 -0
  4. package/dist/api/room.js +2 -0
  5. package/dist/api/socketTypes.d.ts +46 -0
  6. package/dist/api/socketTypes.js +1 -0
  7. package/dist/core/actions.d.ts +21 -0
  8. package/dist/core/actions.js +1 -0
  9. package/dist/core/amulets.d.ts +18 -0
  10. package/dist/core/amulets.js +1 -0
  11. package/dist/core/battleState.d.ts +39 -0
  12. package/dist/core/battleState.js +1 -0
  13. package/dist/core/engine.d.ts +45 -0
  14. package/dist/core/engine.js +869 -0
  15. package/dist/core/events.d.ts +67 -0
  16. package/dist/core/events.js +1 -0
  17. package/dist/core/fighters.d.ts +13 -0
  18. package/dist/core/fighters.js +1 -0
  19. package/dist/core/ids.d.ts +6 -0
  20. package/dist/core/ids.js +1 -0
  21. package/dist/core/index.d.ts +11 -0
  22. package/dist/core/index.js +11 -0
  23. package/dist/core/items.d.ts +12 -0
  24. package/dist/core/items.js +1 -0
  25. package/dist/core/moves.d.ts +73 -0
  26. package/dist/core/moves.js +2 -0
  27. package/dist/core/status.d.ts +11 -0
  28. package/dist/core/status.js +1 -0
  29. package/dist/core/types.d.ts +14 -0
  30. package/dist/core/types.js +1 -0
  31. package/dist/engine/index.d.ts +1 -0
  32. package/dist/engine/index.js +1 -0
  33. package/dist/engine/pokemonBattleService.d.ts +6 -0
  34. package/dist/engine/pokemonBattleService.js +32 -0
  35. package/dist/index.d.ts +6 -0
  36. package/dist/index.js +6 -0
  37. package/dist/skins/CombatSkin.d.ts +18 -0
  38. package/dist/skins/CombatSkin.js +1 -0
  39. package/dist/skins/index.d.ts +2 -0
  40. package/dist/skins/index.js +2 -0
  41. package/dist/skins/pokemon/fighters.d.ts +2 -0
  42. package/dist/skins/pokemon/fighters.js +174 -0
  43. package/dist/skins/pokemon/index.d.ts +6 -0
  44. package/dist/skins/pokemon/index.js +6 -0
  45. package/dist/skins/pokemon/items.d.ts +2 -0
  46. package/dist/skins/pokemon/items.js +143 -0
  47. package/dist/skins/pokemon/moves.d.ts +2 -0
  48. package/dist/skins/pokemon/moves.js +459 -0
  49. package/dist/skins/pokemon/pokemonSkin.d.ts +13 -0
  50. package/dist/skins/pokemon/pokemonSkin.js +91 -0
  51. package/dist/skins/pokemon/statuses.d.ts +2 -0
  52. package/dist/skins/pokemon/statuses.js +85 -0
  53. package/dist/skins/pokemon/types.d.ts +13 -0
  54. package/dist/skins/pokemon/types.js +97 -0
  55. package/package.json +2 -2
@@ -0,0 +1,85 @@
1
+ export const POKEMON_STATUSES = [
2
+ // FUEGO – Quemadura
3
+ {
4
+ id: "burn",
5
+ name: "Quemado",
6
+ kind: "soft",
7
+ minDurationTurns: 3,
8
+ maxDurationTurns: 5,
9
+ effectsPerStack: [
10
+ // DoT de fuego
11
+ {
12
+ kind: "damage",
13
+ // el motor lo interpreta como daño plano por turno
14
+ flatAmount: 6,
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: [
26
+ {
27
+ kind: "damage",
28
+ flatAmount: 5,
29
+ },
30
+ ],
31
+ },
32
+ // PLANTA – Enredado
33
+ {
34
+ id: "entangled",
35
+ name: "Enredado",
36
+ kind: "soft",
37
+ minDurationTurns: 3,
38
+ maxDurationTurns: 5,
39
+ effectsPerStack: [
40
+ {
41
+ kind: "damage",
42
+ flatAmount: 4,
43
+ },
44
+ ],
45
+ },
46
+ // PSIQUICO – Bloqueo mental (hard CC)
47
+ {
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",
61
+ kind: "soft",
62
+ minDurationTurns: 2,
63
+ maxDurationTurns: 4,
64
+ effectsPerStack: [
65
+ {
66
+ kind: "damage",
67
+ flatAmount: 5,
68
+ },
69
+ ],
70
+ },
71
+ // ELÉCTRICO – Electrocutado
72
+ {
73
+ id: "shocked",
74
+ name: "Electrocutado",
75
+ kind: "soft",
76
+ minDurationTurns: 2,
77
+ maxDurationTurns: 4,
78
+ effectsPerStack: [
79
+ {
80
+ kind: "damage",
81
+ flatAmount: 5,
82
+ },
83
+ ],
84
+ },
85
+ ];
@@ -0,0 +1,13 @@
1
+ import type { TypeDefinition, TypeEffectivenessMatrix, TypeId } from "../../core";
2
+ export declare const POKEMON_TYPE_IDS: {
3
+ readonly fire: "fire";
4
+ readonly water: "water";
5
+ readonly grass: "grass";
6
+ readonly electric: "electric";
7
+ readonly psychic: "psychic";
8
+ readonly rock: "rock";
9
+ };
10
+ export type PokemonTypeId = (typeof POKEMON_TYPE_IDS)[keyof typeof POKEMON_TYPE_IDS];
11
+ export declare const POKEMON_TYPES: TypeDefinition[];
12
+ export declare const POKEMON_TYPE_MATRIX: TypeEffectivenessMatrix;
13
+ export declare const getPokemonTypeEffectiveness: (attackerTypeId: TypeId, defenderTypeId: TypeId) => number;
@@ -0,0 +1,97 @@
1
+ export const POKEMON_TYPE_IDS = {
2
+ fire: "fire",
3
+ water: "water",
4
+ grass: "grass",
5
+ electric: "electric",
6
+ psychic: "psychic",
7
+ rock: "rock",
8
+ };
9
+ export const POKEMON_TYPES = [
10
+ {
11
+ id: POKEMON_TYPE_IDS.fire,
12
+ displayName: "Fuego",
13
+ color: "#EE8130",
14
+ },
15
+ {
16
+ id: POKEMON_TYPE_IDS.water,
17
+ displayName: "Agua",
18
+ color: "#25a8fa",
19
+ },
20
+ {
21
+ id: POKEMON_TYPE_IDS.grass,
22
+ displayName: "Planta",
23
+ color: "#7AC74C",
24
+ },
25
+ {
26
+ id: POKEMON_TYPE_IDS.electric,
27
+ displayName: "Eléctrico",
28
+ color: "#F7D02C",
29
+ },
30
+ {
31
+ id: POKEMON_TYPE_IDS.psychic,
32
+ displayName: "Psíquico",
33
+ color: "#e54fff",
34
+ },
35
+ {
36
+ id: POKEMON_TYPE_IDS.rock,
37
+ displayName: "Roca",
38
+ color: "#787878",
39
+ },
40
+ ];
41
+ // Matriz muy simplificada, inspirada en Pokémon
42
+ export const POKEMON_TYPE_MATRIX = {
43
+ [POKEMON_TYPE_IDS.electric]: {
44
+ [POKEMON_TYPE_IDS.electric]: 1,
45
+ [POKEMON_TYPE_IDS.fire]: 1,
46
+ [POKEMON_TYPE_IDS.water]: 1,
47
+ [POKEMON_TYPE_IDS.grass]: 1,
48
+ [POKEMON_TYPE_IDS.psychic]: 1,
49
+ [POKEMON_TYPE_IDS.rock]: 1,
50
+ },
51
+ [POKEMON_TYPE_IDS.fire]: {
52
+ [POKEMON_TYPE_IDS.fire]: 0.75,
53
+ [POKEMON_TYPE_IDS.water]: 0.75,
54
+ [POKEMON_TYPE_IDS.grass]: 1.25,
55
+ [POKEMON_TYPE_IDS.electric]: 1,
56
+ [POKEMON_TYPE_IDS.psychic]: 1,
57
+ [POKEMON_TYPE_IDS.rock]: 1,
58
+ },
59
+ [POKEMON_TYPE_IDS.water]: {
60
+ [POKEMON_TYPE_IDS.fire]: 1.25,
61
+ [POKEMON_TYPE_IDS.water]: 0.75,
62
+ [POKEMON_TYPE_IDS.grass]: 0.75,
63
+ [POKEMON_TYPE_IDS.electric]: 1,
64
+ [POKEMON_TYPE_IDS.psychic]: 1,
65
+ [POKEMON_TYPE_IDS.rock]: 1,
66
+ },
67
+ [POKEMON_TYPE_IDS.grass]: {
68
+ [POKEMON_TYPE_IDS.fire]: 0.75,
69
+ [POKEMON_TYPE_IDS.water]: 1.25,
70
+ [POKEMON_TYPE_IDS.grass]: 0.75,
71
+ [POKEMON_TYPE_IDS.electric]: 1,
72
+ [POKEMON_TYPE_IDS.psychic]: 1,
73
+ [POKEMON_TYPE_IDS.rock]: 1,
74
+ },
75
+ [POKEMON_TYPE_IDS.psychic]: {
76
+ [POKEMON_TYPE_IDS.fire]: 1,
77
+ [POKEMON_TYPE_IDS.water]: 1.25,
78
+ [POKEMON_TYPE_IDS.grass]: 0.75,
79
+ [POKEMON_TYPE_IDS.electric]: 0.75,
80
+ [POKEMON_TYPE_IDS.psychic]: 1,
81
+ [POKEMON_TYPE_IDS.rock]: 1,
82
+ },
83
+ [POKEMON_TYPE_IDS.rock]: {
84
+ [POKEMON_TYPE_IDS.fire]: 1,
85
+ [POKEMON_TYPE_IDS.water]: 1.25,
86
+ [POKEMON_TYPE_IDS.grass]: 0.75,
87
+ [POKEMON_TYPE_IDS.electric]: 0.75,
88
+ [POKEMON_TYPE_IDS.psychic]: 1,
89
+ [POKEMON_TYPE_IDS.rock]: 1,
90
+ },
91
+ };
92
+ export const getPokemonTypeEffectiveness = (attackerTypeId, defenderTypeId) => {
93
+ const row = POKEMON_TYPE_MATRIX[attackerTypeId];
94
+ if (!row)
95
+ return 1;
96
+ return row[defenderTypeId] ?? 1;
97
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pokemon-io-core",
3
- "version": "0.0.53",
3
+ "version": "0.0.55",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -62,4 +62,4 @@
62
62
  "@types/node": "^24.10.2",
63
63
  "typescript": "^5.9.3"
64
64
  }
65
- }
65
+ }