pokemon-io-core 0.0.22 → 0.0.23

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,10 +1,11 @@
1
1
  import type { ItemId } from "./ids";
2
- import type { EffectDefinition } from "./moves";
2
+ import type { EffectDefinition, TargetKind } from "./moves";
3
3
  export type ItemCategory = "damage" | "heal_shield" | "status_buff";
4
4
  export interface ItemDefinition {
5
5
  id: ItemId;
6
6
  name: string;
7
7
  category: ItemCategory;
8
+ target: TargetKind;
8
9
  maxUses: number;
9
10
  image: string;
10
11
  effects: EffectDefinition[];
@@ -1,7 +1,8 @@
1
- import type { MoveId, TypeId, StatusId } from "./ids";
1
+ import type { MoveId, StatusId, TypeId } from "./ids";
2
+ import { StatusKind } from "./status";
2
3
  export type MoveKind = "damage" | "heal" | "status" | "hybrid";
3
4
  export type TargetKind = "self" | "enemy";
4
- export type EffectKind = "damage" | "heal" | "shield" | "modify_stats" | "apply_status" | "modify_hit_chance" | "modify_crit_chance" | "modify_priority" | "modify_effective_speed";
5
+ export type EffectKind = "damage" | "heal" | "shield" | "modify_stats" | "apply_status" | "clear_status" | "modify_hit_chance" | "modify_crit_chance" | "modify_priority" | "modify_effective_speed";
5
6
  export interface DamageEffect {
6
7
  kind: "damage";
7
8
  amount: number;
@@ -28,6 +29,22 @@ export interface ApplyStatusEffect {
28
29
  kind: "apply_status";
29
30
  statusId: StatusId;
30
31
  }
32
+ export interface ClearStatusEffect {
33
+ kind: "clear_status";
34
+ statusIds?: StatusId[];
35
+ /**
36
+ * Filtros opcionales por tipo de estado (hard_cc / soft).
37
+ * Ejemplo: una berry que limpia solo debuffs “soft”.
38
+ */
39
+ kinds?: StatusKind[];
40
+ /**
41
+ * Si quieres que limpie TODO sin importar id ni tipo:
42
+ * - statusIds === undefined
43
+ * - kinds === undefined
44
+ * - clearAll === true
45
+ */
46
+ clearAll?: boolean;
47
+ }
31
48
  export interface ModifyHitChanceEffect {
32
49
  kind: "modify_hit_chance";
33
50
  delta: number;
@@ -44,7 +61,7 @@ export interface ModifyEffectiveSpeedEffect {
44
61
  kind: "modify_effective_speed";
45
62
  multiplier: number;
46
63
  }
47
- export type EffectDefinition = DamageEffect | HealEffect | ShieldEffect | ModifyStatsEffect | ApplyStatusEffect | ModifyHitChanceEffect | ModifyCritChanceEffect | ModifyPriorityEffect | ModifyEffectiveSpeedEffect;
64
+ export type EffectDefinition = DamageEffect | HealEffect | ShieldEffect | ClearStatusEffect | ModifyStatsEffect | ApplyStatusEffect | ModifyHitChanceEffect | ModifyCritChanceEffect | ModifyPriorityEffect | ModifyEffectiveSpeedEffect;
48
65
  export interface MoveDefinition {
49
66
  id: MoveId;
50
67
  name: string;
@@ -1,53 +1,143 @@
1
1
  export const POKEMON_ITEMS = [
2
- {
3
- id: "potion",
4
- name: "Poción",
5
- category: "heal_shield",
6
- maxUses: 2,
7
- effects: [{ kind: "heal", amount: 30 }],
8
- image: 'antidote',
9
- },
10
2
  {
11
3
  id: "super_potion",
12
4
  name: "Super Poción",
13
5
  category: "heal_shield",
6
+ target: "self",
14
7
  maxUses: 1,
15
- effects: [{ kind: "heal", amount: 60 }],
16
- image: 'hiper-potion',
8
+ effects: [{ kind: "heal", amount: 50 }],
9
+ image: "hiper-potion",
10
+ },
11
+ {
12
+ id: "potion",
13
+ name: "Poción",
14
+ category: "heal_shield",
15
+ target: "self",
16
+ maxUses: 2,
17
+ effects: [{ kind: "heal", amount: 25 }],
18
+ image: "potion",
17
19
  },
18
20
  {
19
21
  id: "apple",
20
22
  name: "Manzana",
21
23
  category: "heal_shield",
24
+ target: "self",
22
25
  maxUses: 3,
23
- effects: [{ kind: "heal", amount: 60 }],
24
- image: 'fancy-apple',
26
+ effects: [{ kind: "heal", amount: 17 }],
27
+ image: "fancy-apple",
25
28
  },
26
29
  {
27
30
  id: "mushroom",
28
31
  name: "Seta",
29
32
  category: "heal_shield",
30
- maxUses: 3,
31
- effects: [{ kind: "heal", amount: 60 }],
32
- image: 'mushroom',
33
+ target: "self",
34
+ maxUses: 4,
35
+ effects: [{ kind: "heal", amount: 14 }],
36
+ image: "mushroom",
33
37
  },
34
38
  {
35
- id: "yellow-dust",
36
- name: "Cristal amarillo",
37
- category: "heal_shield",
39
+ id: "shotgun",
40
+ name: "Escopeta",
41
+ target: "enemy",
42
+ category: "damage",
43
+ maxUses: 2,
44
+ effects: [
45
+ { kind: "damage", amount: 15 },
46
+ { kind: "apply_status", statusId: "burn" },
47
+ ],
48
+ image: "shotgun",
49
+ },
50
+ {
51
+ id: "pistol",
52
+ name: "Pistola",
53
+ category: "damage",
54
+ target: "enemy",
55
+ maxUses: 4,
56
+ effects: [
57
+ { kind: "damage", amount: 8 },
58
+ { kind: "apply_status", statusId: "burn" },
59
+ ],
60
+ image: "pistol",
61
+ },
62
+ {
63
+ id: "riffle",
64
+ name: "Rifle",
65
+ target: "enemy",
66
+ category: "damage",
38
67
  maxUses: 3,
39
- effects: [{ kind: "heal", amount: 60 }],
40
- image: 'fire-stone',
68
+ effects: [
69
+ { kind: "damage", amount: 10 },
70
+ { kind: "apply_status", statusId: "burn" },
71
+ ],
72
+ image: "riffle",
41
73
  },
42
74
  {
43
- id: "burn_bomb",
44
- name: "Bomba de Fuego",
75
+ id: "sniper",
76
+ name: "Sniper",
77
+ target: "enemy",
45
78
  category: "damage",
46
79
  maxUses: 1,
47
80
  effects: [
48
- { kind: "damage", amount: 20 },
81
+ { kind: "damage", amount: 30 },
49
82
  { kind: "apply_status", statusId: "burn" },
50
83
  ],
51
- image: 'hiper-potion',
84
+ image: "sniper",
85
+ },
86
+ {
87
+ id: "blue-berry",
88
+ name: "Baya azul",
89
+ category: "status_buff",
90
+ maxUses: 1,
91
+ target: "self",
92
+ effects: [
93
+ {
94
+ kind: "clear_status",
95
+ statusIds: ["burn"], // cura QUEMADURA
96
+ },
97
+ ],
98
+ image: "blue-berry",
99
+ },
100
+ {
101
+ id: "pink-berry",
102
+ name: "Baya rosa",
103
+ category: "status_buff",
104
+ maxUses: 1,
105
+ target: "self",
106
+ effects: [
107
+ {
108
+ kind: "clear_status",
109
+ statusIds: ["poison"], // cura VENENO
110
+ },
111
+ ],
112
+ image: "pink-berry",
113
+ },
114
+ {
115
+ id: "yellow-berry",
116
+ name: "Baya amarilla",
117
+ category: "status_buff",
118
+ maxUses: 1,
119
+ target: "self",
120
+ effects: [
121
+ {
122
+ kind: "clear_status",
123
+ statusIds: ["paralysis"], // cura PARÁLISIS
124
+ },
125
+ ],
126
+ image: "yellow-berry",
127
+ },
128
+ {
129
+ id: "green-berry",
130
+ name: "Baya verde",
131
+ category: "status_buff",
132
+ maxUses: 1,
133
+ target: "self",
134
+ effects: [
135
+ {
136
+ kind: "clear_status",
137
+ statusIds: ["burn", "poison"], // por ejemplo: limpia quemadura o veneno
138
+ kinds: ["soft"], // redundante pero semántico
139
+ },
140
+ ],
141
+ image: "green-berry",
52
142
  },
53
143
  ];
@@ -3,19 +3,39 @@ export const POKEMON_STATUSES = [
3
3
  id: "burn",
4
4
  name: "Quemado",
5
5
  kind: "soft",
6
+ minDurationTurns: 3,
7
+ maxDurationTurns: 5,
8
+ effectsPerStack: [
9
+ { kind: "damage", amount: 6 }, // DoT
10
+ { kind: "modify_stats", offenseDelta: -10 } // pega menos
11
+ ]
12
+ },
13
+ {
14
+ id: "poison",
15
+ name: "Envenenado",
16
+ kind: "soft",
17
+ minDurationTurns: 3,
18
+ maxDurationTurns: 5,
19
+ effectsPerStack: [
20
+ { kind: "damage", amount: 8 }
21
+ ]
22
+ },
23
+ {
24
+ id: "paralysis",
25
+ name: "Paralizado",
26
+ kind: "soft",
6
27
  minDurationTurns: 2,
7
28
  maxDurationTurns: 4,
8
29
  effectsPerStack: [
9
- // DoT ligero
10
- { kind: "damage", amount: 10 }
30
+ { kind: "modify_effective_speed", multiplier: 0.5 }
11
31
  ]
12
32
  },
13
33
  {
14
- id: "stun",
15
- name: "Aturdido",
34
+ id: "sleep",
35
+ name: "Dormido",
16
36
  kind: "hard_cc",
17
37
  minDurationTurns: 1,
18
- maxDurationTurns: 1,
19
- effectsPerStack: []
38
+ maxDurationTurns: 3,
39
+ effectsPerStack: [] // el hard_cc lo interpreta el motor
20
40
  }
21
41
  ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pokemon-io-core",
3
- "version": "0.0.22",
3
+ "version": "0.0.23",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "type": "module",