lemon_mbl/traits/
monster_data_access.rs

1use crate::enums::monster_elemental_type::MonsterElementalType;
2use crate::enums::monster_flag::MonsterFlag;
3use crate::enums::monster_physical_type::MonsterPhysicalType;
4
5pub trait MonsterDataAccess {
6    fn get_id(&self) -> u16;
7    fn get_internal_name(&self) -> &str;
8    fn get_vitality(&self) -> u32;
9    fn get_potential(&self) -> u32;
10    fn get_control(&self) -> u32;
11    fn get_strength(&self) -> u32;
12    fn get_resilience(&self) -> u32;
13    fn get_speed(&self) -> u32;
14    fn get_technique(&self) -> u32;
15    fn get_agility(&self) -> u32;
16    fn get_vigilance(&self) -> u32;
17    fn get_focus(&self) -> u32;
18    fn get_flags(&self) -> &[MonsterFlag];
19    fn has_flag(&self, flag: MonsterFlag) -> bool;
20    fn get_physical_types(&self) -> &[MonsterPhysicalType];
21    fn has_physical_type(&self, physical_type: MonsterPhysicalType) -> bool;
22    fn get_elemental_types(&self) -> &[MonsterElementalType];
23    fn has_elemental_type(&self, elemental_type: MonsterElementalType) -> bool;
24}