From c5209135dd2032ba86a5ca3ad0647c33007970e1 Mon Sep 17 00:00:00 2001 From: tom barrett Date: Fri, 6 Apr 2018 02:43:03 -0500 Subject: -made seperate targeting file --- src/targeting.rs | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/targeting.rs (limited to 'src/targeting.rs') diff --git a/src/targeting.rs b/src/targeting.rs new file mode 100644 index 0000000..754e7a4 --- /dev/null +++ b/src/targeting.rs @@ -0,0 +1,60 @@ +use std::time::SystemTime; + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub enum TargetingStatus { + None, + Targeting, + Targeted, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct Targeting { + target : Option, + status : TargetingStatus, + time : u64, + start : Option, +} + +impl Targeting { + pub fn new() -> Targeting { + Targeting { + target : None, + status : TargetingStatus::None, + time : 3, + start : None, + } + } + + pub fn process(&mut self) { + match self.start { + Some(time) => { + if time.elapsed().unwrap().as_secs() > self.time { + self.status = TargetingStatus::Targeted; + self.start = None; + } + } + None => (), + } + } + pub fn give_target(&mut self, target : Option) { + self.target = target; + match self.target { + Some(_) => { + self.status = TargetingStatus::Targeting; + self.start = Some(SystemTime::now()); + }, + None => { + self.status = TargetingStatus::None; + self.start = None; + } + } + } + + pub fn get_target(&self) -> Option { + self.target.clone() + } + + pub fn get_status(&self) -> TargetingStatus { + self.status.clone() + } +} -- cgit v1.2.3