|
@ -102,7 +102,10 @@ impl ActualWorld { |
|
|
match mv {
|
|
|
match mv {
|
|
|
Move::Noop => {}
|
|
|
Move::Noop => {}
|
|
|
Move::TryTag(other_id) => {
|
|
|
Move::TryTag(other_id) => {
|
|
|
// FIXME check distance
|
|
|
|
|
|
|
|
|
let my_pos = self.state.agent_positions.get(&id).unwrap();
|
|
|
|
|
|
let other_pos = self.state.agent_positions.get(&other_id).unwrap();
|
|
|
|
|
|
assert!((my_pos.x - other_pos.x).abs() <= 1);
|
|
|
|
|
|
assert!((my_pos.y - other_pos.y).abs() <= 1);
|
|
|
assert_eq!(self.state.tagged, id);
|
|
|
assert_eq!(self.state.tagged, id);
|
|
|
assert_ne!(self.state.tagged_by, Some(*other_id));
|
|
|
assert_ne!(self.state.tagged_by, Some(*other_id));
|
|
|
assert!(
|
|
|
assert!(
|
|
@ -111,7 +114,8 @@ impl ActualWorld { |
|
|
);
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
Move::TryMove(dir) => {
|
|
|
Move::TryMove(dir) => {
|
|
|
// FIXME check speed
|
|
|
|
|
|
|
|
|
assert!(dir.x.abs() <= 1);
|
|
|
|
|
|
assert!(dir.y.abs() <= 1);
|
|
|
let pos = self.state.agent_positions.get(&id).unwrap();
|
|
|
let pos = self.state.agent_positions.get(&id).unwrap();
|
|
|
let size = &self.size;
|
|
|
let size = &self.size;
|
|
|
assert!(pos.x + dir.x > 0);
|
|
|
assert!(pos.x + dir.x > 0);
|
|
|