diff --git a/core/src/game.rs b/core/src/game.rs index 566a4f66..9f290de7 100644 --- a/core/src/game.rs +++ b/core/src/game.rs @@ -1719,7 +1719,7 @@ mod tests { game.resolve(Cast::new(source, source_player_id, target, Skill::Decay), vec![]); - // 3 for Decayed =/ + // don't mention 3 we volvo now assert!(game.players[1].constructs[0].effects.len() == 3); game.resolve(Cast::new(target, target_player_id, target, Skill::Purify), vec![]); @@ -1862,5 +1862,30 @@ mod tests { }, _ => false, })); + + assert!(match game.players[1].constructs[0].effects[0].meta { + Some(EffectMeta::AddedDamage(d)) => d, + _ => 0 + // 320 base blue power and 125 base blue life + } == 320.pct(Skill::Blast.multiplier()) - 125); + + } + + #[test] + fn absorb_multi_damage_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, target, Skill::Blast), vec![]); + game.resolve(Cast::new(source, player_id, target, Skill::Blast), vec![]); + game.resolve(Cast::new(source, player_id, target, Skill::Absorb), vec![]); + + assert!(match game.players[1].constructs[0].effects[0].meta { + Some(EffectMeta::AddedDamage(d)) => d, + _ => 0 + // 320 base blue power and 125 base blue life + } == 320.pct(Skill::Blast.multiplier()) - 125); } }