Merge branch 'release/1.11.0' of ssh://git.mnml.gg:40022/~/mnml into release/1.11.0

This commit is contained in:
Mashy 2019-12-19 15:05:37 +10:00
commit e4adb83060
3 changed files with 48 additions and 1 deletions

View File

@ -1014,7 +1014,7 @@ impl Construct {
match meta {
Some(EffectMeta::CastOnHit(skill)) =>
casts.push(Cast::new(self.id, self.account, cast.target, *skill)),
casts.push(Cast::new(self.id, self.account, cast.source, *skill)),
_ => panic!("no electrify skill {:?}", meta),
};
}

View File

@ -2168,6 +2168,46 @@ mod tests {
}));
}
#[test]
fn electrify_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::Electrify));
game.resolve(Cast::new(source, player_id, target, Skill::Blast));
let last = game.resolutions.len() - 1;
let resolutions = &game.resolutions[last];
assert!(resolutions.iter().any(|r| match r.event {
Event::Damage { construct, colour, amount, mitigation: _, display: _ } =>
construct == source && amount > 0 && colour == Colour::Blue,
_ => false,
}));
}
#[test]
fn counter_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::Counter));
game.resolve(Cast::new(source, player_id, target, Skill::Strike));
let last = game.resolutions.len() - 1;
let resolutions = &game.resolutions[last];
assert!(resolutions.iter().any(|r| match r.event {
Event::Damage { construct, colour, amount, mitigation: _, display: _ } =>
construct == source && amount > 0 && colour == Colour::Red,
_ => false,
}));
}
#[test]
fn absorb_test() {
let mut game = create_2v2_test_game();

View File

@ -1691,6 +1691,13 @@ fn electrocute(cast: Cast, game: &mut Game, values: Electrocute) {
Some(EffectMeta::CastTick { source: cast.source, target: cast.target, skill: Skill::ElectrocuteTick, speed: cast.speed, amount }) },
},
);
game.action(cast,
Action::Damage {
construct: cast.target,
colour: Colour::Blue,
amount,
},
);
}
fn electrocute_tick(cast: Cast, game: &mut Game) {