use crate::shared::*; use bevy::utils::Duration; use serde::Deserialize; use serde::Serialize; use std::default::Default; #[derive(Component, Message, Serialize, Deserialize, Clone, Copy, PartialEq, Debug, Default)] pub struct Cooldown(pub [Duration; 7]); pub struct BaseCooldown(pub [Duration; 7]); impl BaseCooldown { pub fn from_champion(champion: Champion) -> Self { match champion { Champion::Meele => { BaseCooldown([0.75, 5., 5., 10., 25., 50., 50.].map(Duration::from_secs_f32)) } Champion::Ranged => { BaseCooldown([1.25, 5., 5., 10., 25., 50., 50.].map(Duration::from_secs_f32)) } } } }