Merge branch 'release/1.11.0' of ssh://git.mnml.gg:40022/~/mnml into release/1.11.0
This commit is contained in:
commit
e4adb83060
@ -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),
|
||||
};
|
||||
}
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user