veloren_common/comp/
pool.rs1use crate::{
2 combat::Attack,
3 comp::ability::Dodgeable,
4 resources::{Secs, Time},
5 uid::Uid,
6};
7use serde::{Deserialize, Serialize};
8use specs::Component;
9
10#[derive(Clone, Debug, Serialize, Deserialize)]
11pub struct PoolProperties {
12 pub attack: Attack,
13 pub radius: f32,
15 pub tick_dur: Secs,
17 pub duration: Secs,
19 #[serde(default)]
20 pub dodgeable: Dodgeable,
21}
22
23#[derive(Clone, Debug, Serialize, Deserialize)]
27pub struct Pool {
28 pub properties: PoolProperties,
29 pub start_time: Time,
30 pub last_tick: Time,
31 pub owner: Option<Uid>,
32}
33
34impl Component for Pool {
35 type Storage = specs::DerefFlaggedStorage<Self, specs::DenseVecStorage<Self>>;
36}