firecore_battle/default_engine/item/
execution.rs

1use firecore_pokedex::item::usage::ItemExecution;
2use serde::{Deserialize, Serialize};
3
4use pokedex::{ailment::Ailment, pokemon::Health};
5
6#[derive(Debug, Clone, Deserialize, Serialize)]
7#[serde(deny_unknown_fields)]
8pub enum BattleItemExecution {
9    Normal(ItemExecution),
10    Script,
11    Pokeball,
12}
13
14#[derive(Debug, Clone, Deserialize, Serialize)]
15#[serde(deny_unknown_fields)]
16pub enum ItemCondition {
17    Fainted,
18}
19
20#[derive(Debug, Clone, Deserialize, Serialize)]
21#[serde(deny_unknown_fields)]
22pub enum ItemAction {
23    CurePokemon(Option<Ailment>),
24    HealPokemon(Health),
25}
26
27impl Default for BattleItemExecution {
28    fn default() -> Self {
29        Self::Normal(ItemExecution::None)
30    }
31}