diff --git a/core/fixme.md b/core/fixme.md index e5c25e0a..b7d4f7d4 100644 --- a/core/fixme.md +++ b/core/fixme.md @@ -3,4 +3,5 @@ check silence skill multiplier game ready not auto starting resolve phase purify conditional healing -set static speed for dot ticks \ No newline at end of file +set static speed for dot ticks +infinite counter loop \ No newline at end of file diff --git a/core/src/game.rs b/core/src/game.rs index eb767c31..fac35282 100644 --- a/core/src/game.rs +++ b/core/src/game.rs @@ -1893,6 +1893,21 @@ mod tests { } == 320.pct(Skill::Blast.multiplier()) - 125); } + #[test] + fn multi_reflect_test() { + let mut game = create_2v2_test_game(); + let player_id = game.players[0].id; + let source = game.players[0].constructs[0].id; + let target = game.players[1].constructs[0].id; + + game.resolve(Cast::new(source, player_id, source, Skill::Reflect), vec![]); + game.resolve(Cast::new(target, player_id, target, Skill::Reflect), vec![]); + game.resolve(Cast::new(source, player_id, target, Skill::Blast), vec![]); + + assert!(game.players[0].constructs[0].is_ko() == false); + assert!(game.players[1].constructs[0].is_ko() == false); + } + #[test] fn multi_counter_test() { let mut game = create_2v2_test_game(); @@ -1903,7 +1918,7 @@ mod tests { game.resolve(Cast::new(source, player_id, source, Skill::Counter), vec![]); game.resolve(Cast::new(target, player_id, target, Skill::Counter), vec![]); game.resolve(Cast::new(source, player_id, target, Skill::Attack), vec![]); - + assert!(game.players[0].constructs[0].is_ko() == false); assert!(game.players[1].constructs[0].is_ko() == false); }