diff --git a/core/fixme.md b/core/fixme.md index 08be114d..30084af6 100644 --- a/core/fixme.md +++ b/core/fixme.md @@ -1,5 +1,4 @@ # FIXME - check silence skill multiplier game ready not auto starting resolve phase diff --git a/core/src/game.rs b/core/src/game.rs index 86765287..31703a53 100644 --- a/core/src/game.rs +++ b/core/src/game.rs @@ -1709,6 +1709,37 @@ mod tests { })); } + + #[test] + fn purify_test() { + let mut game = create_2v2_test_game(); + let source_player_id = game.players[0].id; + let target_player_id = game.players[1].id; + let source = game.players[0].constructs[0].id; + let target = game.players[1].constructs[0].id; + + game.resolve(Cast::new(source, source_player_id, target, Skill::Decay)); + + // 3 for Decayed =/ + assert!(game.players[1].constructs[0].effects.len() == 3); + + game.resolve(Cast::new(target, target_player_id, target, Skill::Purify)); + + assert!(game.players[1].constructs[0].effects.len() == 1); + + let last = game.resolutions.len() - 1; + let resolutions = &game.resolutions[last]; + + assert!(resolutions.iter().any(|r| match r.event { + Event::Effect { construct, effect, duration: _, display: _ } => + construct == target && effect == Effect::Pure, + _ => false, + })); + + // Check for healing here + + } + #[test] fn invert_test() { let mut game = create_2v2_test_game();