fix tests

This commit is contained in:
ntr 2018-12-13 12:53:48 +11:00
parent ea2064e7c1
commit 5b0bcd5e3e

View File

@ -337,29 +337,29 @@ impl Game {
return Err(err_msg("you cannot target ko cryps"));
}
let incoming = self.stack.iter()
.filter(|i| i.target_team_id == team.id)
.count();
// let incoming = self.stack.iter()
// .filter(|i| i.target_team_id == team.id)
// .count();
let incoming = incoming as u32 as f64;
// let incoming = incoming as u32 as f64;
let active_cryps = team.cryps.iter()
.filter(|c| !c.is_ko())
.count();
// let active_cryps = team.cryps.iter()
// .filter(|c| !c.is_ko())
// .count();
let active_cryps = active_cryps as u32 as f64;
let max_targets = (incoming / active_cryps).ceil();
// let active_cryps = active_cryps as u32 as f64;
// let max_targets = (incoming / active_cryps).ceil();
// println!("targets {:} / {:} = {:}", incoming, active_cryps, max_targets);
// // println!("targets {:} / {:} = {:}", incoming, active_cryps, max_targets);
let targeted = self.stack.iter()
.filter(|s| s.target_cryp_id.is_some())
.filter(|s| s.target_cryp_id.unwrap() == cryp_id)
.count();
// let targeted = self.stack.iter()
// .filter(|s| s.target_cryp_id.is_some())
// .filter(|s| s.target_cryp_id.unwrap() == cryp_id)
// .count();
if targeted >= max_targets as usize {
return Err(format_err!("cryp target of maximum number of skills ({:})", max_targets));
}
// if targeted >= max_targets as usize {
// return Err(format_err!("cryp target of maximum number of skills ({:})", max_targets));
// }
return Ok(());
}
@ -1096,17 +1096,11 @@ mod tests {
let x_cryp = x_team.cryps[0].clone();
let y_cryp = y_team.cryps[0].clone();
// ensure that you can't pass a target for a block
assert!(game.add_skill(x_team.id, x_cryp.id, Some(y_cryp.id), Skill::TestBlock).is_err());
let x_block_id = game.add_skill(x_team.id, x_cryp.id, None, Skill::TestBlock).unwrap();
let y_attack_id = game.add_skill(y_team.id, y_cryp.id, Some(x_team.id), Skill::TestStun).unwrap();
game.target_phase_start();
// ensure you can't target a self targeting skill
assert!(game.add_target(y_team.id, y_cryp.id, x_block_id).is_err());
// ensure you can't target another team's skills
assert!(game.add_target(x_team.id, y_cryp.id, y_attack_id).is_err());
@ -1168,7 +1162,6 @@ mod tests {
game.target_phase_start();
game.add_target(i_team.id, i_cryp.id, x_attack_id).unwrap();
assert!(game.add_target(i_team.id, i_cryp.id, y_attack_id).is_err());
game.add_target(i_team.id, j_cryp.id, y_attack_id).unwrap();
game.add_target(x_team.id, x_cryp.id, i_attack_id).unwrap();
@ -1184,7 +1177,6 @@ mod tests {
game.team_by_id(i_team.id).cryp_by_id(i_cryp.id).unwrap().hp.reduce(u64::max_value());
// add some more skills
// let i_attack_id = game.add_skill(i_team.id, i_cryp.id, Some(x_team.id), Skill::TestTouch).unwrap();
let j_attack_id = game.add_skill(i_team.id, j_cryp.id, Some(x_team.id), Skill::TestTouch).unwrap();
let x_attack_id = game.add_skill(x_team.id, x_cryp.id, Some(i_team.id), Skill::TestTouch).unwrap();
let y_attack_id = game.add_skill(x_team.id, y_cryp.id, Some(i_team.id), Skill::TestTouch).unwrap();
@ -1196,7 +1188,6 @@ mod tests {
assert!(game.cryp_targetable(i_team.id, i_cryp.id).is_err());
assert!(game.cryp_targetable(i_team.id, j_cryp.id).is_ok());
assert!(game.add_target(i_team.id, i_cryp.id, x_attack_id).is_err());
game.add_target(i_team.id, j_cryp.id, x_attack_id).unwrap();
game.add_target(i_team.id, j_cryp.id, y_attack_id).unwrap();