summaryrefslogtreecommitdiff
path: root/src/controls.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/controls.rs')
-rw-r--r--src/controls.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/controls.rs b/src/controls.rs
index 29d45a0..d7471e5 100644
--- a/src/controls.rs
+++ b/src/controls.rs
@@ -44,7 +44,8 @@ pub enum Control {
Move(Direction),
Take(Option<usize>),
Drop(usize),
- Use(usize)
+ Use(usize),
+ Attack(Vec<Direction>)
}
@@ -59,6 +60,13 @@ impl Control {
"take" => Some(Control::Take(val.get(1)?.as_u64().map(|idx| idx as usize))),
"drop" => Some(Control::Drop(val.get(1)?.as_u64().unwrap_or(0) as usize)),
"use" => Some(Control::Use(val.get(1)?.as_u64().unwrap_or(0) as usize)),
+ "attack" => Some(Control::Attack({
+ let mut directions = Vec::new();
+ for dir in val.get(1)?.as_array()? {
+ directions.push(Direction::from_json(dir)?);
+ }
+ directions
+ })),
_ => None
}
} else {None}