diff --git a/core/fixme.md b/core/fixme.md index 53ce1e4f..5d2c38c6 100644 --- a/core/fixme.md +++ b/core/fixme.md @@ -1,5 +1,4 @@ # FIXME -last round of animations skipped cause no skill phase to add new vec check silence skill multiplier game ready not auto starting resolve phase diff --git a/core/src/game.rs b/core/src/game.rs index 7a7e7c01..f1ddcbd0 100644 --- a/core/src/game.rs +++ b/core/src/game.rs @@ -1705,6 +1705,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();