pokemon-io-core 0.0.54 → 0.0.56
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/dist/api/battle.d.ts +26 -0
- package/dist/api/battle.js +2 -0
- package/dist/api/room.d.ts +21 -0
- package/dist/api/room.js +2 -0
- package/dist/api/socketTypes.d.ts +46 -0
- package/dist/api/socketTypes.js +1 -0
- package/dist/core/actions.d.ts +21 -0
- package/dist/core/actions.js +1 -0
- package/dist/core/amulets.d.ts +18 -0
- package/dist/core/amulets.js +1 -0
- package/dist/core/battleState.d.ts +39 -0
- package/dist/core/battleState.js +1 -0
- package/dist/core/engine.d.ts +45 -0
- package/dist/core/engine.js +869 -0
- package/dist/core/events.d.ts +67 -0
- package/dist/core/events.js +1 -0
- package/dist/core/fighters.d.ts +13 -0
- package/dist/core/fighters.js +1 -0
- package/dist/core/ids.d.ts +6 -0
- package/dist/core/ids.js +1 -0
- package/dist/core/index.d.ts +11 -0
- package/dist/core/index.js +11 -0
- package/dist/core/items.d.ts +12 -0
- package/dist/core/items.js +1 -0
- package/dist/core/moves.d.ts +73 -0
- package/dist/core/moves.js +2 -0
- package/dist/core/status.d.ts +11 -0
- package/dist/core/status.js +1 -0
- package/dist/core/types.d.ts +14 -0
- package/dist/core/types.js +1 -0
- package/dist/engine/index.d.ts +1 -0
- package/dist/engine/index.js +1 -0
- package/dist/engine/pokemonBattleService.d.ts +6 -0
- package/dist/engine/pokemonBattleService.js +32 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +6 -0
- package/dist/skins/CombatSkin.d.ts +18 -0
- package/dist/skins/CombatSkin.js +1 -0
- package/dist/skins/index.d.ts +2 -0
- package/dist/skins/index.js +2 -0
- package/dist/skins/pokemon/fighters.d.ts +2 -0
- package/dist/skins/pokemon/fighters.js +174 -0
- package/dist/skins/pokemon/index.d.ts +6 -0
- package/dist/skins/pokemon/index.js +6 -0
- package/dist/skins/pokemon/items.d.ts +2 -0
- package/dist/skins/pokemon/items.js +143 -0
- package/dist/skins/pokemon/moves.d.ts +2 -0
- package/dist/skins/pokemon/moves.js +459 -0
- package/dist/skins/pokemon/pokemonSkin.d.ts +13 -0
- package/dist/skins/pokemon/pokemonSkin.js +91 -0
- package/dist/skins/pokemon/statuses.d.ts +2 -0
- package/dist/skins/pokemon/statuses.js +85 -0
- package/dist/skins/pokemon/types.d.ts +13 -0
- package/dist/skins/pokemon/types.js +97 -0
- package/package.json +7 -7
|
@@ -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.
|
|
3
|
+
"version": "0.0.56",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -50,11 +50,11 @@
|
|
|
50
50
|
]
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
|
-
"scripts": {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
},
|
|
53
|
+
"scripts": {
|
|
54
|
+
"build": "tsc -p .",
|
|
55
|
+
"prepublishOnly": "pnpm run build",
|
|
56
|
+
"publish": "npm publish --access public"
|
|
57
|
+
},
|
|
58
58
|
"keywords": [],
|
|
59
59
|
"author": "",
|
|
60
60
|
"license": "ISC",
|
|
@@ -62,4 +62,4 @@
|
|
|
62
62
|
"@types/node": "^24.10.2",
|
|
63
63
|
"typescript": "^5.9.3"
|
|
64
64
|
}
|
|
65
|
-
}
|
|
65
|
+
}
|