diff --git a/src/purerust/src/src.rs b/src/purerust/src/src.rs index 47b5018..288d3c4 100755 --- a/src/purerust/src/src.rs +++ b/src/purerust/src/src.rs @@ -180,8 +180,8 @@ pub mod battle { self.teams[w_team_idx] = w_team.to_owned(); } - Move::Swap(to_idx) => { - let mut team = self.teams[to_idx.team].clone(); + Move::Swap(team_idx, mon_idx) => { + let mut team = self.teams[team_idx].clone(); team.mons = team .mons .iter() @@ -191,8 +191,8 @@ pub mod battle { m }) .collect(); - team.mons[to_idx.mon].out = true; - self.teams[to_idx.team] = team; + team.mons[mon_idx].out = true; + self.teams[team_idx] = team; } }; }); @@ -214,7 +214,7 @@ pub mod battle { i, match &self.q[i] { Move::Pass(_) => 0, - Move::Swap(_) => -10, + Move::Swap(_, _) => -10, Move::Attack(r_team, _) => self.teams[r_team.to_owned()] .mons .iter() @@ -372,17 +372,11 @@ pub mod battle { } } - #[derive(Clone, Debug)] - pub struct Idx { - pub team: usize, - pub mon: usize, - } - #[derive(Clone, Debug)] pub enum Move { Pass(usize), Attack(usize, usize), - Swap(Idx), + Swap(usize, usize), } } @@ -418,7 +412,7 @@ mod mon_tests { // team0mon0 swaps with team0mon0 // team1mon0 attacks team0 engine.enqueue(battle::Move::Attack(1, 0)); - engine.enqueue(battle::Move::Swap(battle::Idx { team: 0, mon: 1 })); + engine.enqueue(battle::Move::Swap(0, 1)); engine.exec(); assert_eq!(6, engine.teams()[0].mons()[0].damage()); assert_eq!(1, engine.teams()[0].mons()[1].damage());