core_rust/core/game/utils/
unit.rs1#[derive(Debug, Clone, Copy)]
3pub struct Unit {
4 x: usize,
5 y: usize,
6 movement_points: i8,
7 symbol: char,
8}
9
10impl Default for Unit {
11 fn default() -> Self {
12 Self::new()
13 }
14}
15
16impl Unit {
17 pub fn new() -> Self {
19 Unit {
20 x: 0,
21 y: 0,
22 movement_points: 1,
23 symbol: '@',
24 }
25 }
26
27 pub fn get_symbol(self) -> char {
29 self.symbol
30 }
31
32 pub fn deduct_movement(&mut self) {
34 self.movement_points -= 1;
35 }
36
37 pub fn get_movement(self) -> i8 {
39 self.movement_points
40 }
41
42 pub fn reset_movement(&mut self) {
44 self.movement_points = 1;
45 }
46
47 pub fn get_position(self) -> (usize, usize) {
49 (self.x, self.y)
50 }
51
52 pub fn set_position(&mut self, x: usize, y: usize) {
54 self.x = x;
55 self.y = y;
56 }
57}