veloren/common/src/comp/ability.rs

35 lines
961 B
Rust
Raw Normal View History

2020-01-01 17:16:29 +00:00
use crate::comp;
use specs::{Component, FlaggedStorage, HashMapStorage, VecStorage};
#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize, Eq, Hash)]
pub enum AbilityActionKind {
Primary,
Secondary,
Dodge,
Block,
// UpdatePool?
}
impl Default for AbilityActionKind {
fn default() -> Self {
Self::Primary
}
}
#[derive(Clone, Copy, Debug, Default, PartialEq, Serialize, Deserialize, Eq, Hash)]
pub struct AbilityAction(pub AbilityActionKind);
impl Component for AbilityAction {
type Storage = FlaggedStorage<Self, VecStorage<Self>>;
}
#[derive(Copy, Clone, Debug, Default, Serialize, Deserialize)]
pub struct AbilityPool {
pub primary: Option<comp::CharacterState>,
pub secondary: Option<comp::CharacterState>,
pub block: Option<comp::CharacterState>,
pub dodge: Option<comp::CharacterState>,
2020-01-01 17:16:29 +00:00
}
impl Component for AbilityPool {
2020-01-07 15:49:08 +00:00
type Storage = FlaggedStorage<Self, HashMapStorage<Self>>;
2020-01-01 17:16:29 +00:00
}