PkmnLib_rs/src/dynamic_data/choices/mod.rs

33 lines
763 B
Rust
Raw Normal View History

2022-06-03 14:35:18 +00:00
use crate::dynamic_data::models::learned_move::LearnedMove;
use crate::dynamic_data::models::pokemon::Pokemon;
#[derive(Debug)]
pub enum TurnChoice<'a> {
Move {
user: &'a Pokemon<'a>,
used_move: Box<LearnedMove<'a>>,
target_side: u8,
target_index: u8,
},
Item {
user: &'a Pokemon<'a>,
},
Switch {
user: &'a Pokemon<'a>,
},
Flee {
user: &'a Pokemon<'a>,
2022-06-03 14:35:18 +00:00
},
}
impl<'a> TurnChoice<'a> {
pub fn user(&self) -> &'a Pokemon<'a> {
match self {
TurnChoice::Move { user, .. } => user,
TurnChoice::Item { user, .. } => user,
TurnChoice::Switch { user, .. } => user,
TurnChoice::Flee { user, .. } => user,
2022-06-03 14:35:18 +00:00
}
}
}