1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
//! actions the player can instruct the Warrior to take /// Certain `Action`s are done one tile away, and must be done either /// while facing forwards or backwards. #[derive(Clone, Copy, Debug, PartialEq)] pub enum Direction { Forward, Backward, } impl Default for Direction { fn default() -> Direction { Direction::Forward } } /// Certain [`Warrior`](crate::warrior::Warrior) methods correlate to /// an `Action`. Each turn only one action can be taken. If an action /// is not successful, then the turn is wasted! #[derive(Clone, Copy, Debug, PartialEq)] pub enum Action { /// walk forward one tile Walk(Direction), /// attack an enemy unit one tile away Attack(Direction), /// rest to regain 10% HP Rest, /// rescue a captive one tile away Rescue(Direction), /// rotate 180 degrees Pivot(Direction), /// fire an arrow up to three tiles Shoot(Direction), }